+ The material of this course is also covered in my other course about web design and development with HTML5 & CSS3. Scroll to the bottom of this page to check out that course, too! If you're already taking my other course, you already have all it takes to start designing beautiful websites today!
+
+
+
+ "Best web design course: If you're interested in web design, but want more than just a "how to use WordPress" course, I highly recommend this one." โ Florian Giusti
+
+
+
+ "Very helpful to us left-brained people: I am familiar with HTML, CSS, jQuery, and Twitter Bootstrap, but I needed instruction in web design. This course gave me practical, impactful techniques for making websites more beautiful and engaging." โ Susan Darlene Cain
+
`,
+ content: [
+ {
+ title: 'Course Content',
+ status: '2/5',
+ time: '4.4 min',
+ id: 'section1',
+ topics: [
+ { title: 'Welcome to this course', time: '2.4 min', isCompleted: true },
+ { title: 'Watch before you start', time: '4.8 min', isCompleted: true },
+ { title: 'Basic Design theory', time: '5.9 min', isCompleted: false },
+ { title: 'Basic Fundamentals', time: '3.6 min', isCompleted: false },
+ { title: 'What is ui/ux', time: '10.6 min', isCompleted: false },
+ ],
+ },
+ {
+ title: 'Web design for Developers',
+ status: '0/4',
+ time: '4.8 min',
+ id: 'section2',
+ topics: [
+ { title: 'How to use Pages in Figma', time: '8:31 min', isCompleted: false },
+ { title: 'What is Lo Fi Wireframe', time: '2 min', isCompleted: false },
+ { title: 'How to use color in Figma', time: '5.9 min', isCompleted: false },
+ { title: 'Frames vs Groups in Figma', time: '3.6 min', isCompleted: false },
+ ],
+ },
+ {
+ title: 'Build Beautiful Websites!',
+ status: '0/4',
+ time: '4.4 min',
+ id: 'section3',
+ topics: [
+ { title: 'Section & Div Block', time: '3:53 min', isCompleted: false },
+ { title: 'Read-Only Version of Chat App', time: '2:03 min', isCompleted: false },
+ { title: 'Webflow Autosave', time: '8 min', isCompleted: false },
+ { title: 'Canvas Settings', time: '3 min', isCompleted: false },
+ { title: 'HTML Tags', time: '10 min', isCompleted: false },
+ { title: 'Footer (Chat App)', time: '9:10 min', isCompleted: false },
+ ],
+ },
+ {
+ title: 'Final Project',
+ status: '0/3',
+ time: '4.4 min',
+ id: 'section4',
+ topics: [
+ { title: 'Responsive Blog Site', time: '10:00 min', isCompleted: false },
+ { title: 'Responsive Portfolio', time: '13:00 min', isCompleted: false },
+ { title: 'Basic Design theory', time: '15 min', isCompleted: false },
+ ],
+ },
+ ],
+ },
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/academy/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/academy/index.ts
new file mode 100644
index 0000000..0e1d867
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/academy/index.ts
@@ -0,0 +1,81 @@
+import is from '@sindresorhus/is'
+import { destr } from 'destr'
+import { HttpResponse, http } from 'msw'
+import { db } from '@db/apps/academy/db'
+import { paginateArray } from '@api-utils/paginateArray'
+
+export const handlerAppsAcademy = [
+
+ // ๐ Course
+ http.get(('/api/apps/academy/courses'), ({ request }) => {
+ const url = new URL(request.url)
+
+ const q = url.searchParams.get('q')
+ const label = url.searchParams.get('label') || 'All Courses'
+ const hideCompleted = url.searchParams.get('hideCompleted')
+ const page = url.searchParams.get('page')
+ const itemsPerPage = url.searchParams.get('itemsPerPage')
+ const sortBy = url.searchParams.get('sortBy')
+ const orderBy = url.searchParams.get('orderBy')
+
+ const searchQuery = is.string(q) ? q : undefined
+ const queryLowered = (searchQuery ?? '').toString().toLowerCase()
+
+ const parsedHideCompleted = destr(hideCompleted)
+ const hideCompletedLocal = is.boolean(parsedHideCompleted) ? parsedHideCompleted : false
+
+ const parsedSortBy = destr(sortBy)
+ const sortByLocal = is.string(parsedSortBy) ? parsedSortBy : ''
+
+ const parsedOrderBy = destr(orderBy)
+ const orderByLocal = is.string(parsedOrderBy) ? parsedOrderBy : ''
+
+ const parsedItemsPerPage = destr(itemsPerPage)
+ const parsedPage = destr(page)
+
+ const itemsPerPageLocal = is.number(parsedItemsPerPage) ? parsedItemsPerPage : 10
+ const pageLocal = is.number(parsedPage) ? parsedPage : 1
+
+ const filteredCourses = db.courses.filter(course => {
+ return (
+ (
+ course.courseTitle.toLowerCase().includes(queryLowered)
+ || course.user.toLowerCase().includes(queryLowered)
+ )
+ && !((course.completedTasks === course.totalTasks) && hideCompletedLocal)
+ && (label !== 'All Courses' ? course.tags.toLocaleLowerCase() === label?.toLowerCase() : true)
+ )
+ })
+
+ if (sortByLocal) {
+ if (sortByLocal === 'courseName') {
+ filteredCourses.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.courseTitle.localeCompare(b.courseTitle)
+ else
+ return b.courseTitle.localeCompare(a.courseTitle)
+ })
+ }
+ if (sortByLocal === 'progress') {
+ filteredCourses.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return (a.completedTasks / a.totalTasks) - (b.completedTasks / b.totalTasks)
+ else
+ return (b.completedTasks / b.totalTasks) - (a.completedTasks / a.totalTasks)
+ })
+ }
+ }
+
+ return HttpResponse.json({
+ totalCourse: filteredCourses,
+ courses: paginateArray(filteredCourses, itemsPerPageLocal, pageLocal),
+ total: filteredCourses.length,
+ },
+ { status: 200 })
+ }),
+
+ // ๐ Course Details
+ http.get(('/api/apps/academy/course-details'), () => {
+ return HttpResponse.json(db.courseDetails, { status: 200 })
+ }),
+]
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/academy/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/academy/types.ts
new file mode 100644
index 0000000..2e2b705
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/academy/types.ts
@@ -0,0 +1,49 @@
+export interface Course {
+ id: number
+ image: string
+ user: string
+ tutorImg: string
+ completedTasks: number
+ totalTasks: number
+ userCount: number
+ note: number
+ view: number
+ time: string
+ logo: string
+ courseTitle: string
+ color: string
+ desc: string
+ tags: string
+ rating: number
+ ratingCount: number
+}
+
+export interface CourseDetails {
+ title: string
+ about: string
+ instructor: string
+ instructorAvatar: string
+ instructorPosition: string
+ skillLevel: string
+ totalLectures: number
+ totalStudents: number
+ isCaptions: boolean
+ language: string
+ length: string
+ content: CourseContent[]
+ description: string
+}
+
+export interface CourseContent {
+ title: string
+ status: string
+ time: string
+ id: string
+ topics: CourseTopic[]
+}
+
+export interface CourseTopic {
+ title: string
+ time: string
+ isCompleted: boolean
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/calendar/db.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/calendar/db.ts
new file mode 100644
index 0000000..87f59d5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/calendar/db.ts
@@ -0,0 +1,121 @@
+import type { CalendarEvent } from '@db/apps/calendar/types'
+
+const date = new Date()
+const nextDay = new Date(new Date().getTime() + 24 * 60 * 60 * 1000)
+const nextMonth = date.getMonth() === 11 ? new Date(date.getFullYear() + 1, 0, 1) : new Date(date.getFullYear(), date.getMonth() + 1, 1)
+const prevMonth = date.getMonth() === 11 ? new Date(date.getFullYear() - 1, 0, 1) : new Date(date.getFullYear(), date.getMonth() - 1, 1)
+
+export const db: { events: CalendarEvent[] } = {
+ events: [
+ {
+ id: 1,
+ url: '',
+ title: 'Design Review',
+ start: date,
+ end: nextDay,
+ allDay: false,
+ extendedProps: {
+ calendar: 'Business',
+ },
+ },
+ {
+ id: 2,
+ url: '',
+ title: 'Meeting With Client',
+ start: new Date(date.getFullYear(), date.getMonth() + 1, -11),
+ end: new Date(date.getFullYear(), date.getMonth() + 1, -10),
+ allDay: true,
+ extendedProps: {
+ calendar: 'Business',
+ },
+ },
+ {
+ id: 3,
+ url: '',
+ title: 'Family Trip',
+ allDay: true,
+ start: new Date(date.getFullYear(), date.getMonth() + 1, -9),
+ end: new Date(date.getFullYear(), date.getMonth() + 1, -7),
+ extendedProps: {
+ calendar: 'Holiday',
+ },
+ },
+ {
+ id: 4,
+ url: '',
+ title: 'Doctor\'s Appointment',
+ start: new Date(date.getFullYear(), date.getMonth() + 1, -11),
+ end: new Date(date.getFullYear(), date.getMonth() + 1, -10),
+ allDay: true,
+ extendedProps: {
+ calendar: 'Personal',
+ },
+ },
+ {
+ id: 5,
+ url: '',
+ title: 'Dart Game?',
+ start: new Date(date.getFullYear(), date.getMonth() + 1, -13),
+ end: new Date(date.getFullYear(), date.getMonth() + 1, -12),
+ allDay: true,
+ extendedProps: {
+ calendar: 'ETC',
+ },
+ },
+ {
+ id: 6,
+ url: '',
+ title: 'Meditation',
+ start: new Date(date.getFullYear(), date.getMonth() + 1, -13),
+ end: new Date(date.getFullYear(), date.getMonth() + 1, -12),
+ allDay: true,
+ extendedProps: {
+ calendar: 'Personal',
+ },
+ },
+ {
+ id: 7,
+ url: '',
+ title: 'Dinner',
+ start: new Date(date.getFullYear(), date.getMonth() + 1, -13),
+ end: new Date(date.getFullYear(), date.getMonth() + 1, -12),
+ allDay: true,
+ extendedProps: {
+ calendar: 'Family',
+ },
+ },
+ {
+ id: 8,
+ url: '',
+ title: 'Product Review',
+ start: new Date(date.getFullYear(), date.getMonth() + 1, -13),
+ end: new Date(date.getFullYear(), date.getMonth() + 1, -12),
+ allDay: true,
+ extendedProps: {
+ calendar: 'Business',
+ },
+ },
+ {
+ id: 9,
+ url: '',
+ title: 'Monthly Meeting',
+ start: nextMonth,
+ end: nextMonth,
+ allDay: true,
+ extendedProps: {
+ calendar: 'Business',
+ },
+ },
+ {
+ id: 10,
+ url: '',
+ title: 'Monthly Checkup',
+ start: prevMonth,
+ end: prevMonth,
+ allDay: true,
+ extendedProps: {
+ calendar: 'Personal',
+ },
+ },
+ ],
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/calendar/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/calendar/index.ts
new file mode 100644
index 0000000..3c46dfe
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/calendar/index.ts
@@ -0,0 +1,81 @@
+import is from '@sindresorhus/is'
+import { destr } from 'destr'
+import { HttpResponse, http } from 'msw'
+import { db } from '@db/apps/calendar/db'
+import { genId } from '@api-utils/genId'
+
+export const handlerAppsCalendar = [
+
+ // ๐ Get Calendar Events
+ http.get(('/api/apps/calendar'), ({ request }) => {
+ const url = new URL(request.url)
+
+ const queries = url.searchParams.getAll('calendars')
+
+ const parsedCalendars = destr(queries)
+
+ const calendars = is.array(parsedCalendars) ? parsedCalendars : undefined
+
+ const events = db.events.filter(event => calendars?.includes(event.extendedProps.calendar))
+
+ return HttpResponse.json(events, { status: 200 })
+ }),
+
+ // ๐ Add Calendar Event
+ http.post(('/api/apps/calendar'), async ({ request }) => {
+ const event = await request.json() as typeof db.events[0]
+
+ db.events.push({
+ ...event,
+ id: genId(db.events),
+ })
+
+ return HttpResponse.json(event, { status: 201 })
+ }),
+
+ // ๐ Update Calendar Event
+ http.put(('/api/apps/calendar/:id'), async ({ request, params }) => {
+ const updatedEvent = await request.json() as typeof db.events[0]
+
+ updatedEvent.id = Number(updatedEvent.id)
+
+ const eventId = Number(params.id)
+
+ // Find the index of the event in the database
+ const currentEvent = db.events.find(e => e.id === eventId)
+
+ // update event
+ if (currentEvent) {
+ Object.assign(currentEvent, updatedEvent)
+
+ return HttpResponse.json(currentEvent, {
+ status: 201,
+ })
+ }
+
+ return new HttpResponse(
+ 'Something Went Wrong',
+ { status: 400 },
+ )
+ }),
+
+ // ๐ Delete Calendar Event
+ http.delete(('/api/apps/calendar/:id'), ({ params }) => {
+ const eventId = Number(params.id)
+
+ const eventIndex = db.events.findIndex(e => e.id === eventId)
+
+ if (eventIndex !== -1) {
+ db.events.splice(eventIndex, 1)
+
+ return new HttpResponse(null, {
+ status: 204,
+ })
+ }
+
+ return new HttpResponse(
+ 'Something Went Wrong',
+ { status: 400 },
+ )
+ }),
+]
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/calendar/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/calendar/types.ts
new file mode 100644
index 0000000..8886039
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/calendar/types.ts
@@ -0,0 +1,9 @@
+export interface CalendarEvent {
+ id: number
+ url: string
+ title: string
+ start: Date | string
+ end: Date | string
+ allDay: boolean
+ extendedProps: Record
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/chat/db.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/chat/db.ts
new file mode 100644
index 0000000..20c947c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/chat/db.ts
@@ -0,0 +1,306 @@
+import type { Chat, ChatContact } from '@db/apps/chat/types'
+
+import avatar1 from '@images/avatars/avatar-1.png'
+import avatar2 from '@images/avatars/avatar-2.png'
+import avatar3 from '@images/avatars/avatar-3.png'
+import avatar4 from '@images/avatars/avatar-4.png'
+import avatar5 from '@images/avatars/avatar-5.png'
+import avatar6 from '@images/avatars/avatar-6.png'
+import avatar8 from '@images/avatars/avatar-8.png'
+
+interface DB {
+ profileUser: ChatContact & {
+ settings: {
+ isTwoStepAuthVerificationEnabled: boolean
+ isNotificationsOn: boolean
+ }
+ }
+ contacts: ChatContact[]
+ chats: Chat[]
+}
+
+const previousDay = new Date(new Date().getTime() - 24 * 60 * 60 * 1000)
+const dayBeforePreviousDay = new Date(new Date().getTime() - 24 * 60 * 60 * 1000 * 2)
+
+export const db: DB = {
+ profileUser: {
+ id: 11,
+ avatar: avatar1,
+ fullName: 'John Doe',
+ role: 'admin',
+ about:
+ 'Dessert chocolate cake lemon drops jujubes. Biscuit cupcake ice cream bear claw brownie marshmallow.',
+ status: 'online',
+ settings: {
+ isTwoStepAuthVerificationEnabled: true,
+ isNotificationsOn: false,
+ },
+ },
+
+ contacts: [
+ {
+ id: 1,
+ fullName: 'Gavin Griffith',
+ role: 'Frontend Developer',
+ about: 'Cake pie jelly jelly beans. Marzipan lemon drops halvah cake. Pudding cookie lemon drops icing',
+ avatar: avatar5,
+ status: 'offline',
+ },
+ {
+ id: 2,
+ fullName: 'Harriet McBride',
+ role: 'UI/UX Designer',
+ about:
+ 'Toffee caramels jelly-o tart gummi bears cake I love ice cream lollipop. Sweet liquorice croissant candy danish dessert icing. Cake macaroon gingerbread toffee sweet.',
+ avatar: avatar2,
+ status: 'busy',
+ },
+ {
+ id: 3,
+ fullName: 'Danny Conner',
+ role: 'Town planner',
+ about:
+ 'Soufflรฉ soufflรฉ caramels sweet roll. Jelly lollipop sesame snaps bear claw jelly beans sugar plum sugar plum.',
+ avatar: '',
+ status: 'away',
+ },
+ {
+ id: 4,
+ fullName: 'Janie West',
+ role: 'Data scientist',
+ about:
+ 'Chupa chups candy canes chocolate bar marshmallow liquorice muffin. Lemon drops oat cake tart liquorice tart cookie. Jelly-o cookie tootsie roll halvah.',
+ avatar: '',
+ status: 'online',
+ },
+ {
+ id: 5,
+ fullName: 'Bryan Murray',
+ role: 'Dietitian',
+ about: 'Cake pie jelly jelly beans. Marzipan lemon drops halvah cake. Pudding cookie lemon drops icing',
+ avatar: avatar5,
+ status: 'busy',
+ },
+ {
+ id: 6,
+ fullName: 'Albert Underwood',
+ role: 'Marketing executive',
+ about:
+ 'Toffee caramels jelly-o tart gummi bears cake I love ice cream lollipop. Sweet liquorice croissant candy danish dessert icing. Cake macaroon gingerbread toffee sweet.',
+ avatar: avatar6,
+ status: 'online',
+ },
+ {
+ id: 7,
+ fullName: 'Adele Ross',
+ role: 'Special educational needs teacher',
+ about:
+ 'Biscuit powder oat cake donut brownie ice cream I love soufflรฉ. I love tootsie roll I love powder tootsie roll.',
+ avatar: '',
+ status: 'online',
+ },
+ {
+ id: 8,
+ fullName: 'Mark Berry',
+ role: 'Advertising copywriter',
+ about:
+ 'Bear claw ice cream lollipop gingerbread carrot cake. Brownie gummi bears chocolate muffin croissant jelly I love marzipan wafer.',
+ avatar: avatar3,
+ status: 'away',
+ },
+ {
+ id: 9,
+ fullName: 'Joseph Evans',
+ role: 'Designer, television/film set',
+ about:
+ 'Gummies gummi bears I love candy icing apple pie I love marzipan bear claw. I love tart biscuit I love candy canes pudding chupa chups liquorice croissant.',
+ avatar: avatar8,
+ status: 'offline',
+ },
+ {
+ id: 10,
+ fullName: 'Blake Carter',
+ role: 'Building surveyor',
+ about: 'Cake pie jelly jelly beans. Marzipan lemon drops halvah cake. Pudding cookie lemon drops icing',
+ avatar: avatar4,
+ status: 'away',
+ },
+ ],
+
+ chats: [
+ {
+ id: 1,
+ userId: 2,
+ unseenMsgs: 0,
+ messages: [
+ {
+ message: 'Hi',
+ time: 'Mon Dec 10 2018 07:45:00 GMT+0000 (GMT)',
+ senderId: 11,
+ feedback: {
+ isSent: true,
+ isDelivered: true,
+ isSeen: true,
+ },
+ },
+ {
+ message: 'Hello. How can I help You?',
+ time: 'Mon Dec 11 2018 07:45:15 GMT+0000 (GMT)',
+ senderId: 2,
+ feedback: {
+ isSent: true,
+ isDelivered: true,
+ isSeen: true,
+ },
+ },
+ {
+ message: 'Can I get details of my last transaction I made last month? ๐ค',
+ time: 'Mon Dec 11 2018 07:46:10 GMT+0000 (GMT)',
+ senderId: 11,
+ feedback: {
+ isSent: true,
+ isDelivered: true,
+ isSeen: true,
+ },
+ },
+ {
+ message: 'We need to check if we can provide you such information.',
+ time: 'Mon Dec 11 2018 07:45:15 GMT+0000 (GMT)',
+ senderId: 2,
+ feedback: {
+ isSent: true,
+ isDelivered: true,
+ isSeen: true,
+ },
+ },
+ {
+ message: 'I will inform you as I get update on this.',
+ time: 'Mon Dec 11 2018 07:46:15 GMT+0000 (GMT)',
+ senderId: 2,
+ feedback: {
+ isSent: true,
+ isDelivered: true,
+ isSeen: true,
+ },
+ },
+ {
+ message: 'If it takes long you can mail me at my mail address.',
+ time: String(dayBeforePreviousDay),
+ senderId: 11,
+ feedback: {
+ isSent: true,
+ isDelivered: false,
+ isSeen: false,
+ },
+ },
+ ],
+ },
+ {
+ id: 2,
+ userId: 1,
+ unseenMsgs: 1,
+ messages: [
+ {
+ message: 'How can we help? We\'re here for you!',
+ time: 'Mon Dec 10 2018 07:45:00 GMT+0000 (GMT)',
+ senderId: 11,
+ feedback: {
+ isSent: true,
+ isDelivered: true,
+ isSeen: true,
+ },
+ },
+ {
+ message: 'Hey John, I am looking for the best admin template. Could you please help me to find it out?',
+ time: 'Mon Dec 10 2018 07:45:23 GMT+0000 (GMT)',
+ senderId: 1,
+ feedback: {
+ isSent: true,
+ isDelivered: true,
+ isSeen: true,
+ },
+ },
+ {
+ message: 'It should use nice Framework.',
+ time: 'Mon Dec 10 2018 07:45:55 GMT+0000 (GMT)',
+ senderId: 1,
+ feedback: {
+ isSent: true,
+ isDelivered: true,
+ isSeen: true,
+ },
+ },
+ {
+ message: 'Absolutely!',
+ time: 'Mon Dec 10 2018 07:46:00 GMT+0000 (GMT)',
+ senderId: 11,
+ feedback: {
+ isSent: true,
+ isDelivered: true,
+ isSeen: true,
+ },
+ },
+ {
+ message: 'Our admin is the responsive admin template.!',
+ time: 'Mon Dec 10 2018 07:46:05 GMT+0000 (GMT)',
+ senderId: 11,
+ feedback: {
+ isSent: true,
+ isDelivered: true,
+ isSeen: true,
+ },
+ },
+ {
+ message: 'Looks clean and fresh UI. ๐',
+ time: 'Mon Dec 10 2018 07:46:23 GMT+0000 (GMT)',
+ senderId: 1,
+ feedback: {
+ isSent: true,
+ isDelivered: true,
+ isSeen: true,
+ },
+ },
+ {
+ message: 'It\'s perfect for my next project.',
+ time: 'Mon Dec 10 2018 07:46:33 GMT+0000 (GMT)',
+ senderId: 1,
+ feedback: {
+ isSent: true,
+ isDelivered: true,
+ isSeen: true,
+ },
+ },
+ {
+ message: 'How can I purchase it?',
+ time: 'Mon Dec 10 2018 07:46:43 GMT+0000 (GMT)',
+ senderId: 1,
+ feedback: {
+ isSent: true,
+ isDelivered: true,
+ isSeen: true,
+ },
+ },
+ {
+ message: 'Thanks, From our official site ๐',
+ time: 'Mon Dec 10 2018 07:46:53 GMT+0000 (GMT)',
+ senderId: 11,
+ feedback: {
+ isSent: true,
+ isDelivered: true,
+ isSeen: true,
+ },
+ },
+ {
+ message: 'I will purchase it for sure. ๐',
+ time: String(previousDay),
+ senderId: 1,
+ feedback: {
+ isSent: true,
+ isDelivered: true,
+ isSeen: true,
+ },
+ },
+ ],
+ },
+ ],
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/chat/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/chat/index.ts
new file mode 100644
index 0000000..e90afa8
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/chat/index.ts
@@ -0,0 +1,95 @@
+import { HttpResponse, http } from 'msw'
+import { db } from '@db/apps/chat/db'
+import type { Chat, ChatContact, ChatContactWithChat, ChatMessage } from '@db/apps/chat/types'
+
+export const handlerAppsChat = [
+ http.get(('/api/apps/chat/chats-and-contacts'), ({ request }) => {
+ const url = new URL(request.url)
+
+ const q = url.searchParams.get('q') || ''
+
+ const qLowered = q.toLowerCase()
+
+ const chatsContacts: ChatContactWithChat[] = db.chats
+ .map(chat => {
+ const contact = JSON.parse(JSON.stringify((db.contacts.find(c => c.id === chat.userId) as ChatContact)))
+
+ contact.chat = { id: chat.id, unseenMsgs: chat.unseenMsgs, lastMessage: chat.messages.at(-1) }
+
+ return contact
+ })
+ .reverse()
+
+ const profileUserData: ChatContact = db.profileUser
+
+ const response = {
+ chatsContacts: chatsContacts.filter(c => c.fullName.toLowerCase().includes(qLowered)),
+ contacts: db.contacts.filter(c => c.fullName.toLowerCase().includes(qLowered)),
+ profileUser: profileUserData,
+ }
+
+ return HttpResponse.json(response, { status: 200 })
+ }),
+
+ http.get(('/api/apps/chat/chats/:userId'), ({ params }) => {
+ const userId = Number(params.userId)
+
+ const chat = db.chats.find(e => e.userId === userId)
+
+ if (chat)
+ chat.unseenMsgs = 0
+
+ return HttpResponse.json({
+ chat,
+ contact: db.contacts.find(c => c.id === userId),
+ },
+ {
+ status: 200,
+ })
+ }),
+
+ http.post(('/api/apps/chat/chats/:userId'), async ({ request, params }) => {
+ // Get user id from URL
+ const chatId = Number(params.userId)
+
+ // Get message from post data
+ const { message, senderId } = await request.json() as { message: string; senderId: number }
+
+ let activeChat = db.chats.find(chat => chat.userId === chatId)
+
+ const newMessageData: ChatMessage = {
+ message,
+ time: String(new Date()),
+ senderId,
+ feedback: {
+ isSent: true,
+ isDelivered: false,
+ isSeen: false,
+ },
+ }
+
+ // If there's new chat for user create one
+ let isNewChat = false
+ if (activeChat === undefined) {
+ isNewChat = true
+
+ db.chats.push({
+ id: db.chats.length + 1,
+ userId: chatId,
+ unseenMsgs: 0,
+ messages: [newMessageData],
+ })
+ activeChat = db.chats.at(-1)
+ }
+ else {
+ activeChat.messages.push(newMessageData)
+ }
+
+ const response: { msg: ChatMessage; chat?: Chat } = { msg: newMessageData }
+
+ if (isNewChat)
+ response.chat = activeChat
+
+ return HttpResponse.json(response, { status: 201 })
+ }),
+]
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/chat/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/chat/types.ts
new file mode 100644
index 0000000..563751d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/chat/types.ts
@@ -0,0 +1,42 @@
+export type ChatStatus = 'online' | 'offline' | 'busy' | 'away'
+
+export interface ChatContact {
+ id: number
+ fullName: string
+ role: string
+ about: string
+ avatar: string
+ status: ChatStatus
+}
+
+export interface ChatMessage {
+ message: string
+ time: string
+ senderId: number
+ feedback: {
+ isSent: boolean
+ isDelivered: boolean
+ isSeen: boolean
+ }
+}
+
+export interface Chat {
+ id: number
+ userId: number
+ unseenMsgs: number
+ messages: ChatMessage[]
+}
+
+// โน๏ธ This is chat type received in response of user chat
+export interface ChatOut {
+ id: Chat['id']
+ unseenMsgs: Chat['unseenMsgs']
+ messages: ChatMessage[]
+
+ // @ts-expect-error Indexed Access Types
+ lastMessage: ChatMessage[number]
+}
+
+export interface ChatContactWithChat extends ChatContact {
+ chat: ChatOut
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/ecommerce/db.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/ecommerce/db.ts
new file mode 100644
index 0000000..fbcd063
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/ecommerce/db.ts
@@ -0,0 +1,5117 @@
+import type { Customer, ECommerceProduct, Order, Referrals, Review } from '@db/apps/ecommerce/types'
+import auFlag from '@images/icons/countries/au.png'
+import brFlag from '@images/icons/countries/br.png'
+import cnFlag from '@images/icons/countries/cn.png'
+import frFlag from '@images/icons/countries/fr.png'
+import inFlag from '@images/icons/countries/in.png'
+import usFlag from '@images/icons/countries/us.png'
+
+import avatar1 from '@images/avatars/avatar-1.png'
+import avatar10 from '@images/avatars/avatar-10.png'
+import avatar11 from '@images/avatars/avatar-11.png'
+import avatar12 from '@images/avatars/avatar-12.png'
+import avatar13 from '@images/avatars/avatar-13.png'
+import avatar14 from '@images/avatars/avatar-14.png'
+import avatar15 from '@images/avatars/avatar-15.png'
+import avatar2 from '@images/avatars/avatar-2.png'
+import avatar3 from '@images/avatars/avatar-3.png'
+import avatar4 from '@images/avatars/avatar-4.png'
+import avatar5 from '@images/avatars/avatar-5.png'
+import avatar6 from '@images/avatars/avatar-6.png'
+import avatar7 from '@images/avatars/avatar-7.png'
+import avatar8 from '@images/avatars/avatar-8.png'
+import avatar9 from '@images/avatars/avatar-9.png'
+
+import product1 from '@images/ecommerce-images/product-1.png'
+import product10 from '@images/ecommerce-images/product-10.png'
+import product11 from '@images/ecommerce-images/product-11.png'
+import product12 from '@images/ecommerce-images/product-12.png'
+import product13 from '@images/ecommerce-images/product-13.png'
+import product14 from '@images/ecommerce-images/product-14.png'
+import product15 from '@images/ecommerce-images/product-15.png'
+import product16 from '@images/ecommerce-images/product-16.png'
+import product17 from '@images/ecommerce-images/product-17.png'
+import product18 from '@images/ecommerce-images/product-18.png'
+import product19 from '@images/ecommerce-images/product-19.png'
+import product2 from '@images/ecommerce-images/product-2.png'
+import product20 from '@images/ecommerce-images/product-20.png'
+import product24 from '@images/ecommerce-images/product-24.png'
+import product3 from '@images/ecommerce-images/product-3.png'
+import product4 from '@images/ecommerce-images/product-4.png'
+import product5 from '@images/ecommerce-images/product-5.png'
+import product6 from '@images/ecommerce-images/product-6.png'
+import product7 from '@images/ecommerce-images/product-7.png'
+import product8 from '@images/ecommerce-images/product-8.png'
+import product9 from '@images/ecommerce-images/product-9.png'
+
+interface DB {
+ products: ECommerceProduct[]
+ orderData: Order[]
+ customerData: Customer[]
+ reviews: Review[]
+ referrals: Referrals[]
+}
+
+export const db: DB = {
+ products: [
+ {
+ id: 1,
+ productName: 'iPhone 14 Pro',
+ category: 'Electronics',
+ stock: true,
+ sku: 19472,
+ price: '$999',
+ qty: 665,
+ status: 'Inactive',
+ image: product1,
+ productBrand: 'Super Retina XDR display footnote Pro Motion technology',
+ },
+ {
+ id: 2,
+ productName: 'Echo Dot (4th Gen)',
+ category: 'Electronics',
+ stock: false,
+ sku: 72836,
+ price: '$25.50',
+ qty: 827,
+ status: 'Published',
+ image: product2,
+ productBrand: 'Echo Dot Smart speaker with Alexa',
+ },
+ {
+ id: 3,
+ productName: 'Dohioue Wall Clock',
+ category: 'Accessories',
+ stock: false,
+ sku: 29540,
+ price: '$16.34',
+ qty: 804,
+ status: 'Published',
+ image: product3,
+ productBrand: 'Modern 10 Inch Battery Operated Wall Clocks',
+ },
+ {
+ id: 4,
+ productName: 'INZCOU Running Shoes',
+ category: 'Shoes',
+ stock: false,
+ sku: 49402,
+ price: '$36.98',
+ qty: 528,
+ status: 'Scheduled',
+ image: product4,
+ productBrand: 'Lightweight Tennis Shoes Non Slip Gym Workout Shoes',
+ },
+ {
+ id: 5,
+ productName: 'Apple Watch Series 7',
+ category: 'Office',
+ stock: false,
+ sku: 46658,
+ price: '$799',
+ qty: 851,
+ status: 'Scheduled',
+ image: product5,
+ productBrand: 'Starlight Aluminum Case with Starlight Sport Band.',
+ },
+ {
+ id: 6,
+ productName: 'Meta Quest 2',
+ category: 'Office',
+ stock: true,
+ sku: 57640,
+ price: '$299',
+ qty: 962,
+ status: 'Scheduled',
+ image: product6,
+ productBrand: 'Advanced All-In-One Virtual Reality Headset',
+ },
+ {
+ id: 7,
+ productName: 'MacBook Pro 16',
+ category: 'Electronics',
+ stock: true,
+ sku: 92885,
+ price: '$2648.95',
+ qty: 965,
+ status: 'Published',
+ image: product7,
+ productBrand: 'Laptop M2 Pro chip with 12โcore CPU and 19โcore GPU',
+ },
+ {
+ id: 8,
+ productName: 'SAMSUNG Galaxy S22 Ultra',
+ category: 'Electronics',
+ stock: true,
+ sku: 75257,
+ price: '$899',
+ qty: 447,
+ status: 'Published',
+ image: product8,
+ productBrand: 'Android Smartphone, 256GB, 8K Camera',
+ },
+ {
+ id: 9,
+ productName: 'Air Jordan',
+ category: 'Shoes',
+ stock: false,
+ sku: 31063,
+ price: '$125',
+ qty: 942,
+ status: 'Inactive',
+ image: product9,
+ productBrand: 'Air Jordan is a line of basketball shoes produced by Nike',
+ },
+ {
+ id: 10,
+ productName: 'VISKABACKA',
+ category: 'Home Decor',
+ stock: false,
+ sku: 91848,
+ price: '$190.45',
+ qty: 133,
+ status: 'Scheduled',
+ image: product10,
+ productBrand: 'Armchair, Skartofta black/light grey',
+ },
+ {
+ id: 11,
+ productName: 'Nintendo Switch',
+ category: 'Games',
+ stock: true,
+ sku: 52575,
+ price: '$296.99',
+ qty: 870,
+ status: 'Inactive',
+ image: product11,
+ productBrand: 'TV Mode, Tabletop Mode, Handheld Mode',
+ },
+ {
+ id: 12,
+ productName: 'PlayStation 5',
+ category: 'Games',
+ stock: true,
+ sku: 59551,
+ price: '$499',
+ qty: 145,
+ status: 'Scheduled',
+ image: product12,
+ productBrand: 'Marvel at incredible graphics and experience',
+ },
+ {
+ id: 13,
+ productName: 'Amazon Fire TV',
+ category: 'Electronics',
+ stock: false,
+ sku: 5829,
+ price: '$263.49',
+ qty: 587,
+ status: 'Scheduled',
+ image: product13,
+ productBrand: '4K UHD smart TV, stream live TV without cable',
+ },
+ {
+ id: 14,
+ productName: 'Smiletag Ceramic Vase',
+ category: 'Home Decor',
+ stock: false,
+ sku: 24456,
+ price: '$34.99',
+ qty: 310,
+ status: 'Scheduled',
+ image: product14,
+ productBrand: 'Modern Farmhouse Decor Vase Set of 3',
+ },
+ {
+ id: 15,
+ productName: 'Apple iPad',
+ category: 'Electronics',
+ stock: true,
+ sku: 35946,
+ price: '$248.39',
+ qty: 468,
+ status: 'Published',
+ image: product15,
+ productBrand: '10.2-inch Retina Display, 64GB',
+ },
+ {
+ id: 16,
+ productName: 'BANGE Anti Theft Backpack',
+ category: 'Office',
+ stock: true,
+ sku: 41867,
+ price: '$79.99',
+ qty: 519,
+ status: 'Inactive',
+ image: product16,
+ productBrand: 'Smart Business Laptop Fits 15.6 Inch Notebook',
+ },
+ {
+ id: 17,
+ productName: 'Xbox Series X/S',
+ category: 'Games',
+ stock: true,
+ sku: 43224,
+ price: '$49.99',
+ qty: 787,
+ status: 'Published',
+ image: product17,
+ productBrand: 'Dual Controller Charger Station Dock',
+ },
+ {
+ id: 18,
+ productName: 'Canon EOS Rebel T7',
+ category: 'Electronics',
+ stock: true,
+ sku: 63474,
+ price: '$399',
+ qty: 810,
+ status: 'Scheduled',
+ image: product18,
+ productBrand: '18-55mm Lens | Built-in Wi-Fi | 24.1 MP CMOS Sensor',
+ },
+ {
+ id: 19,
+ productName: 'Honiway Wall Mirror',
+ category: 'Home Decor',
+ stock: false,
+ sku: 15859,
+ price: '$23.99',
+ qty: 735,
+ status: 'Inactive',
+ image: product19,
+ productBrand: 'Decorative 12 inch Rustic Wood Mirror Sunburst Boho',
+ },
+ {
+ id: 20,
+ productName: 'Tommaso Veloce Shoes',
+ category: 'Shoes',
+ stock: false,
+ sku: 28844,
+ price: '$922.09',
+ qty: 294,
+ status: 'Inactive',
+ image: product20,
+ productBrand: 'Peloton Shoes Triathlon Road Bike Indoor Cycling',
+ },
+ {
+ id: 21,
+ productName: 'Zoolab',
+ category: 'Accessories',
+ stock: true,
+ sku: 99009,
+ price: '$719.13',
+ qty: 927,
+ status: 'Scheduled',
+ image: product1,
+ productBrand: 'Cruickshank-Jones',
+ },
+ {
+ id: 22,
+ productName: 'Viva',
+ category: 'Home Decor',
+ stock: false,
+ sku: 53795,
+ price: '$775.80',
+ qty: 442,
+ status: 'Scheduled',
+ image: product2,
+ productBrand: 'Ferry Group',
+ },
+ {
+ id: 23,
+ productName: 'Transcof',
+ category: 'Shoes',
+ stock: true,
+ sku: 77663,
+ price: '$817.60',
+ qty: 256,
+ status: 'Published',
+ image: product3,
+ productBrand: 'Bruen-Heathcote',
+ },
+ {
+ id: 24,
+ productName: 'Uerified',
+ category: 'Accessories',
+ stock: false,
+ sku: 45282,
+ price: '$167.19',
+ qty: 728,
+ status: 'Published',
+ image: product4,
+ productBrand: 'Koch Group',
+ },
+ {
+ id: 25,
+ productName: 'Y-find',
+ category: 'Home Decor',
+ stock: false,
+ sku: 5622,
+ price: '$189.77',
+ qty: 445,
+ status: 'Scheduled',
+ image: product5,
+ productBrand: 'Emmerich and Sons',
+ },
+ {
+ id: 26,
+ productName: 'Wigtax',
+ category: 'Accessories',
+ stock: true,
+ sku: 38920,
+ price: '$411.46',
+ qty: 857,
+ status: 'Scheduled',
+ image: product6,
+ productBrand: 'Zulauf-Prohaska',
+ },
+ {
+ id: 27,
+ productName: 'Tempsoft',
+ category: 'Accessories',
+ stock: true,
+ sku: 78211,
+ price: '$961.76',
+ qty: 975,
+ status: 'Published',
+ image: product7,
+ productBrand: 'VonRueden, Rogahn and Kris',
+ },
+ {
+ id: 28,
+ productName: 'Rt',
+ category: 'Accessories',
+ stock: true,
+ sku: 98552,
+ price: '$514.14',
+ qty: 39,
+ status: 'Published',
+ image: product8,
+ productBrand: 'Romaguera, O\'Connell and Abernathy',
+ },
+ {
+ id: 29,
+ productName: 'Zontrax',
+ category: 'Shoes',
+ stock: true,
+ sku: 7151,
+ price: '$591.30',
+ qty: 74,
+ status: 'Published',
+ image: product9,
+ productBrand: 'Mills, Hagenes and Bednar',
+ },
+ {
+ id: 30,
+ productName: 'Keylex',
+ category: 'Accessories',
+ stock: true,
+ sku: 79571,
+ price: '$928.07',
+ qty: 245,
+ status: 'Inactive',
+ image: product10,
+ productBrand: 'Sanford, Harvey and Parisian',
+ },
+ {
+ id: 31,
+ productName: 'Trippledex',
+ category: 'Home Decor',
+ stock: false,
+ sku: 51597,
+ price: '$312.03',
+ qty: 657,
+ status: 'Inactive',
+ image: product11,
+ productBrand: 'Conroy-Bergstrom',
+ },
+ {
+ id: 32,
+ productName: 'Opela',
+ category: 'Accessories',
+ stock: true,
+ sku: 6506,
+ price: '$951.29',
+ qty: 770,
+ status: 'Published',
+ image: product12,
+ productBrand: 'Langosh Inc',
+ },
+ {
+ id: 33,
+ productName: 'Span',
+ category: 'Shoes',
+ stock: false,
+ sku: 33523,
+ price: '$600.43',
+ qty: 622,
+ status: 'Inactive',
+ image: product13,
+ productBrand: 'Jerde-Walsh',
+ },
+ {
+ id: 34,
+ productName: 'Rank',
+ category: 'Accessories',
+ stock: false,
+ sku: 60307,
+ price: '$337.90',
+ qty: 896,
+ status: 'Scheduled',
+ image: product14,
+ productBrand: 'Barrows, Quitzon and Roberts',
+ },
+ {
+ id: 35,
+ productName: 'Tempsoft',
+ category: 'Accessories',
+ stock: true,
+ sku: 75059,
+ price: '$959.47',
+ qty: 239,
+ status: 'Inactive',
+ image: product15,
+ productBrand: 'Russel-Grant',
+ },
+ {
+ id: 36,
+ productName: 'Ventosanzap',
+ category: 'Accessories',
+ stock: true,
+ sku: 69072,
+ price: '$756.81',
+ qty: 410,
+ status: 'Scheduled',
+ image: product16,
+ productBrand: 'O\'Conner-Zboncak',
+ },
+ {
+ id: 37,
+ productName: 'Mat Lam Tam',
+ category: 'Accessories',
+ stock: false,
+ sku: 68290,
+ price: '$256.86',
+ qty: 630,
+ status: 'Published',
+ image: product17,
+ productBrand: 'Rutherford, Heller and Bashirian',
+ },
+ {
+ id: 38,
+ productName: 'Zamit',
+ category: 'Shoes',
+ stock: true,
+ sku: 89552,
+ price: '$378.54',
+ qty: 247,
+ status: 'Inactive',
+ image: product18,
+ productBrand: 'Swift-Altenwerth',
+ },
+ {
+ id: 39,
+ productName: 'Tresom',
+ category: 'Shoes',
+ stock: true,
+ sku: 50863,
+ price: '$166.17',
+ qty: 672,
+ status: 'Inactive',
+ image: product19,
+ productBrand: 'O\'Kon, Waelchi and Lesch',
+ },
+ {
+ id: 40,
+ productName: 'Viva',
+ category: 'Accessories',
+ stock: false,
+ sku: 90484,
+ price: '$745.76',
+ qty: 697,
+ status: 'Published',
+ image: product20,
+ productBrand: 'Johnston, Anderson and Metz',
+ },
+ {
+ id: 41,
+ productName: 'Matsoft',
+ category: 'Accessories',
+ stock: true,
+ sku: 76980,
+ price: '$603.16',
+ qty: 74,
+ status: 'Published',
+ image: product1,
+ productBrand: 'O\'Conner, Paucek and Braun',
+ },
+ {
+ id: 42,
+ productName: 'Wiodex',
+ category: 'Home Decor',
+ stock: true,
+ sku: 66971,
+ price: '$772.51',
+ qty: 280,
+ status: 'Published',
+ image: product2,
+ productBrand: 'Wisoky-Kassulke',
+ },
+ {
+ id: 43,
+ productName: 'Keylex',
+ category: 'Shoes',
+ stock: false,
+ sku: 16589,
+ price: '$986.22',
+ qty: 758,
+ status: 'Inactive',
+ image: product3,
+ productBrand: 'Haag, Bruen and Reichel',
+ },
+ {
+ id: 44,
+ productName: 'Konklux',
+ category: 'Accessories',
+ stock: true,
+ sku: 73896,
+ price: '$988.47',
+ qty: 14,
+ status: 'Inactive',
+ image: product4,
+ productBrand: 'Ankunding Inc',
+ },
+ {
+ id: 45,
+ productName: 'Tresom',
+ category: 'Accessories',
+ stock: false,
+ sku: 67489,
+ price: '$946.62',
+ qty: 35,
+ status: 'Inactive',
+ image: product5,
+ productBrand: 'Deckow and Sons',
+ },
+ {
+ id: 46,
+ productName: 'Quo Lux',
+ category: 'Shoes',
+ stock: true,
+ sku: 48177,
+ price: '$224.28',
+ qty: 935,
+ status: 'Scheduled',
+ image: product1,
+ productBrand: 'Kreiger, Reynolds and Sporer',
+ },
+ {
+ id: 47,
+ productName: 'Roldlamis',
+ category: 'Home Decor',
+ stock: true,
+ sku: 225,
+ price: '$952.14',
+ qty: 361,
+ status: 'Published',
+ image: product6,
+ productBrand: 'Kuphal-Abbott',
+ },
+ {
+ id: 48,
+ productName: 'Tampflex',
+ category: 'Accessories',
+ stock: false,
+ sku: 29438,
+ price: '$646.21',
+ qty: 908,
+ status: 'Scheduled',
+ image: product7,
+ productBrand: 'Romaguera, Schmeler and Volkman',
+ },
+ {
+ id: 49,
+ productName: 'Span',
+ category: 'Home Decor',
+ stock: true,
+ sku: 55666,
+ price: '$583.13',
+ qty: 898,
+ status: 'Scheduled',
+ image: product24,
+ productBrand: 'Hane-Romaguera',
+ },
+ {
+ id: 50,
+ productName: 'Zamit',
+ category: 'Accessories',
+ stock: false,
+ sku: 55860,
+ price: '$273.67',
+ qty: 332,
+ status: 'Published',
+ image: product9,
+ productBrand: 'Hoeger-Powlowski',
+ },
+ ],
+ reviews: [
+ {
+ id: 1,
+ product: 'iPhone 14 Pro',
+ companyName: 'Super Retina XDR display footnote Pro Motion technology',
+ productImage: product1,
+ reviewer: 'Zane Scraggs',
+ email: 'zscraggs0@flavors.me',
+ avatar: avatar1,
+ date: '5/28/2020',
+ status: 'Published',
+ review: 2,
+ head: 'lorem ipsum dolor',
+ para: 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.',
+ },
+ {
+ id: 2,
+ product: 'Echo Dot (4th Gen)',
+ companyName: 'Echo Dot Smart speaker with Alexa',
+ productImage: product2,
+ reviewer: 'Stacey Hallgalley',
+ email: 'shallgalley1@google.nl',
+ avatar: avatar2,
+ date: '3/21/2021',
+ status: 'Published',
+ review: 5,
+ head: 'libero ut',
+ para: 'Aliquam quis turpis eget elit sodales scelerisque. Mauris sit amet eros. Suspendisse accumsan tortor quis turpis.',
+ },
+ {
+ id: 3,
+ product: 'Dohioue Wall Clock',
+ companyName: 'Modern 10 Inch Battery Operated Wall Clocks',
+ productImage: product3,
+ reviewer: 'Francyne Coulthurst',
+ email: 'fcoulthurst2@upenn.edu',
+ avatar: avatar3,
+ date: '8/10/2020',
+ status: 'Published',
+ review: 2,
+ head: 'neque libero convallis',
+ para: 'Phasellus in felis. Donec semper sapien a libero. Nam dui.',
+ },
+ {
+ id: 4,
+ product: 'INZCOU Running Shoes',
+ companyName: 'Lightweight Tennis Shoes Non Slip Gym Workout Shoes',
+ productImage: product4,
+ reviewer: 'Nate De Mitris',
+ email: 'nde3@intel.com',
+ avatar: avatar4,
+ date: '12/18/2021',
+ status: 'Pending',
+ review: 3,
+ head: 'accumsan tellus nisi eu',
+ para: 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.',
+ },
+ {
+ id: 5,
+ product: 'Apple Watch Series 7',
+ companyName: 'Starlight Aluminum Case with Starlight Sport Band.',
+ productImage: product5,
+ reviewer: 'Ethel Zanardii',
+ email: 'ezanardii4@mapy.cz',
+ avatar: avatar5,
+ date: '6/12/2020',
+ status: 'Pending',
+ review: 1,
+ head: 'etiam faucibus cursus',
+ para: 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.',
+ },
+ {
+ id: 6,
+ product: 'Meta Quest 2',
+ companyName: 'Advanced All-In-One Virtual Reality Headset',
+ productImage: product6,
+ reviewer: 'Fancy Tweedell',
+ email: 'ftweedell5@telegraph.co.uk',
+ avatar: avatar6,
+ date: '11/23/2020',
+ status: 'Pending',
+ review: 1,
+ head: 'in faucibus orci luctus et',
+ para: 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.',
+ },
+ {
+ id: 7,
+ product: 'MacBook Pro 16',
+ companyName: 'Laptop M2 Pro chip with 12โcore CPU and 19โcore GPU',
+ productImage: product7,
+ reviewer: 'Abeu Gregorace',
+ email: 'agregorace6@godaddy.com',
+ avatar: avatar7,
+ date: '9/8/2020',
+ status: 'Pending',
+ review: 2,
+ head: 'vel enim',
+ para: 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.',
+ },
+ {
+ id: 8,
+ product: 'SAMSUNG Galaxy S22 Ultra',
+ companyName: 'Android Smartphone, 256GB, 8K Camera',
+ productImage: product8,
+ reviewer: 'Sibylle Goodacre',
+ email: 'sgoodacre7@washingtonpost.com',
+ avatar: avatar8,
+ date: '6/10/2021',
+ status: 'Pending',
+ review: 1,
+ head: 'eget semper rutrum',
+ para: 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.',
+ },
+ {
+ id: 9,
+ product: 'Air Jordan',
+ companyName: 'Air Jordan is a line of basketball shoes produced by Nike',
+ productImage: product9,
+ reviewer: 'Gisela Leppard',
+ email: 'gleppard8@yandex.ru',
+ avatar: avatar9,
+ date: '4/20/2020',
+ status: 'Published',
+ review: 2,
+ head: 'ut mauris',
+ para: 'Fusce consequat. Nulla nisl. Nunc nisl.',
+ },
+ {
+ id: 10,
+ product: 'VISKABACKA',
+ companyName: 'Armchair, Skartofta black/light grey',
+ productImage: product10,
+ reviewer: 'Hilario Wheldon',
+ email: 'hwheldon9@apple.com',
+ avatar: avatar10,
+ date: '8/21/2020',
+ status: 'Pending',
+ review: 2,
+ head: 'amet consectetuer adipiscing elit proin',
+ para: 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.',
+ },
+ {
+ id: 11,
+ product: 'Nintendo Switch',
+ companyName: 'TV Mode, Tabletop Mode, Handheld Mode',
+ productImage: product11,
+ reviewer: 'Ivie McGlaughn',
+ email: 'imcglaughna@mapquest.com',
+ avatar: avatar11,
+ date: '4/13/2020',
+ status: 'Pending',
+ review: 4,
+ head: 'eget nunc donec',
+ para: 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.',
+ },
+ {
+ id: 12,
+ product: 'PlayStation 5',
+ companyName: 'Marvel at incredible graphics and experience',
+ productImage: product12,
+ reviewer: 'Neel Kingscott',
+ email: 'nkingscottb@soup.io',
+ avatar: avatar12,
+ date: '12/27/2020',
+ status: 'Published',
+ review: 1,
+ head: 'lacus at velit',
+ para: 'Phasellus in felis. Donec semper sapien a libero. Nam dui.',
+ },
+ {
+ id: 13,
+ product: 'Amazon Fire TV',
+ companyName: '4K UHD smart TV, stream live TV without cable',
+ productImage: product13,
+ reviewer: 'Tracey Ventham',
+ email: 'tventhamc@thetimes.co.uk',
+ avatar: avatar13,
+ date: '3/17/2021',
+ status: 'Published',
+ review: 3,
+ head: 'at nunc commodo placerat praesent',
+ para: 'Aenean fermentum. Donec ut mauris eget massa tempor convallis. Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh.',
+ },
+ {
+ id: 14,
+ product: 'Smiletag Ceramic Vase',
+ companyName: 'Modern Farmhouse Decor Vase Set of 3',
+ productImage: product14,
+ reviewer: 'Rollo Truckell',
+ email: 'rtruckelld@gravatar.com',
+ avatar: avatar14,
+ date: '2/23/2020',
+ status: 'Published',
+ review: 5,
+ head: 'in hac',
+ para: 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.',
+ },
+ {
+ id: 15,
+ product: 'Apple iPad',
+ companyName: '10.2-inch Retina Display, 64GB',
+ productImage: product15,
+ reviewer: 'Jabez Heggs',
+ email: 'jheggse@nba.com',
+ avatar: avatar15,
+ date: '4/21/2020',
+ status: 'Published',
+ review: 1,
+ head: 'ac consequat',
+ para: 'Curabitur at ipsum ac tellus semper interdum. Mauris ullamcorper purus sit amet nulla. Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam.',
+ },
+ {
+ id: 16,
+ product: 'BANGE Anti Theft Backpack',
+ companyName: 'Smart Business Laptop Fits 15.6 Inch Notebook',
+ productImage: product16,
+ reviewer: 'Micaela Rowesby',
+ email: 'mrowesbyf@surveymonkey.com',
+ avatar: avatar1,
+ date: '12/11/2021',
+ status: 'Published',
+ review: 1,
+ head: 'mattis egestas metus',
+ para: 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.',
+ },
+ {
+ id: 17,
+ product: 'Xbox Series X/S',
+ companyName: 'Dual Controller Charger Station Dock',
+ productImage: product17,
+ reviewer: 'Blakelee Benza',
+ email: 'bbenzag@utexas.edu',
+ avatar: avatar2,
+ date: '4/26/2021',
+ status: 'Published',
+ review: 1,
+ head: 'sapien placerat',
+ para: 'Etiam vel augue. Vestibulum rutrum rutrum neque. Aenean auctor gravida sem.',
+ },
+ {
+ id: 18,
+ product: 'Canon EOS Rebel T7',
+ companyName: '18-55mm Lens | Built-in Wi-Fi | 24.1 MP CMOS Sensor',
+ productImage: product18,
+ reviewer: 'Emery Breitling',
+ email: 'ebreitlingh@friendfeed.com',
+ avatar: avatar1,
+ date: '12/1/2020',
+ status: 'Pending',
+ review: 5,
+ head: 'nec nisi vulputate',
+ para: 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.',
+ },
+ {
+ id: 19,
+ product: 'Honiway Wall Mirror',
+ companyName: 'Decorative 12 inch Rustic Wood Mirror Sunburst Boho',
+ productImage: product19,
+ reviewer: 'Wilona Fields',
+ email: 'wfieldsi@columbia.edu',
+ avatar: avatar1,
+ date: '3/30/2020',
+ status: 'Published',
+ review: 1,
+ head: 'parturient montes nascetur ridiculus',
+ para: 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.',
+ },
+ {
+ id: 20,
+ product: 'Tommaso Veloce Shoes',
+ companyName: 'Peloton Shoes Triathlon Road Bike Indoor Cycling',
+ productImage: product20,
+ reviewer: 'Janey Lamprecht',
+ email: 'jlamprechtj@tuttocitta.it',
+ avatar: avatar1,
+ date: '9/16/2020',
+ status: 'Pending',
+ review: 1,
+ head: 'maecenas ut massa quis augue',
+ para: 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.',
+ },
+ {
+ id: 21,
+ product: 'Zoolab',
+ companyName: 'Cruickshank-Jones',
+ productImage: product1,
+ reviewer: 'Rosene Walsh',
+ email: 'rwalshk@latimes.com',
+ avatar: avatar1,
+ date: '7/17/2021',
+ status: 'Published',
+ review: 1,
+ head: 'convallis nulla',
+ para: 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.',
+ },
+ {
+ id: 22,
+ product: 'Viva',
+ companyName: 'Ferry Group',
+ productImage: product2,
+ reviewer: 'Buffy Sellen',
+ email: 'bsellenl@qq.com',
+ avatar: avatar1,
+ date: '1/9/2021',
+ status: 'Pending',
+ review: 3,
+ head: 'nunc viverra dapibus',
+ para: 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.',
+ },
+ {
+ id: 23,
+ product: 'Transcof',
+ companyName: 'Bruen-Heathcote',
+ productImage: product3,
+ reviewer: 'Alvis Szymanzyk',
+ email: 'aszymanzykm@google.cn',
+ avatar: avatar1,
+ date: '6/11/2020',
+ status: 'Pending',
+ review: 1,
+ head: 'nullam porttitor',
+ para: 'Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio. Curabitur convallis.',
+ },
+ {
+ id: 24,
+ product: 'Uerified',
+ companyName: 'Koch Group',
+ productImage: product4,
+ reviewer: 'Hatty Morsley',
+ email: 'hmorsleyn@gov.uk',
+ avatar: avatar1,
+ date: '2/12/2021',
+ status: 'Published',
+ review: 2,
+ head: 'metus sapien ut',
+ para: 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.',
+ },
+ {
+ id: 25,
+ product: 'Y-find',
+ companyName: 'Emmerich and Sons',
+ productImage: product5,
+ reviewer: 'Jabez Pudner',
+ email: 'jpudnero@cpanel.net',
+ avatar: avatar1,
+ date: '10/14/2021',
+ status: 'Pending',
+ review: 4,
+ head: 'orci luctus et',
+ para: 'Nulla ut erat id mauris vulputate elementum. Nullam varius. Nulla facilisi.',
+ },
+ {
+ id: 26,
+ product: 'Wigtax',
+ companyName: 'Zulauf-Prohaska',
+ productImage: product6,
+ reviewer: 'Ida Ovill',
+ email: 'iovillp@newsvine.com',
+ avatar: avatar1,
+ date: '11/18/2020',
+ status: 'Published',
+ review: 2,
+ head: 'vestibulum ante ipsum',
+ para: 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.',
+ },
+ {
+ id: 27,
+ product: 'Tempsoft',
+ companyName: 'VonRueden, Rogahn and Kris',
+ productImage: product7,
+ reviewer: 'Suzanne Breckin',
+ email: 'sbreckinq@jimdo.com',
+ avatar: avatar1,
+ date: '7/26/2020',
+ status: 'Published',
+ review: 2,
+ head: 'vel enim',
+ para: 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.',
+ },
+ {
+ id: 28,
+ product: 'Rt',
+ companyName: 'Romaguera, O\'Connell and Abernathy',
+ productImage: product8,
+ reviewer: 'Morgana Coote',
+ email: 'mcooter@tinypic.com',
+ avatar: avatar1,
+ date: '8/29/2021',
+ status: 'Pending',
+ review: 5,
+ head: 'cubilia curae mauris',
+ para: 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.',
+ },
+ {
+ id: 29,
+ product: 'Zontrax',
+ companyName: 'Mills, Hagenes and Bednar',
+ productImage: product9,
+ reviewer: 'Wesley Murra',
+ email: 'wmurras@tumblr.com',
+ avatar: avatar1,
+ date: '3/20/2021',
+ status: 'Pending',
+ review: 4,
+ head: 'gravida nisi at',
+ para: 'Integer tincidunt ante vel ipsum. Praesent blandit lacinia erat. Vestibulum sed magna at nunc commodo placerat.',
+ },
+ {
+ id: 30,
+ product: 'Keylex',
+ companyName: 'Sanford, Harvey and Parisian',
+ productImage: product10,
+ reviewer: 'Jobye Varnam',
+ email: 'jvarnamt@webs.com',
+ avatar: avatar1,
+ date: '11/24/2020',
+ status: 'Pending',
+ review: 2,
+ head: 'nec sem',
+ para: 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.',
+ },
+ {
+ id: 31,
+ product: 'Trippledex',
+ companyName: 'Conroy-Bergstrom',
+ productImage: product11,
+ reviewer: 'Bibbye O\'Dowd',
+ email: 'bodowdu@infoseek.co.jp',
+ avatar: avatar1,
+ date: '7/7/2020',
+ status: 'Published',
+ review: 5,
+ head: 'odio elementum eu',
+ para: 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.',
+ },
+ {
+ id: 32,
+ product: 'Opela',
+ companyName: 'Langosh Inc',
+ productImage: product12,
+ reviewer: 'Baldwin Bodimeade',
+ email: 'bbodimeadev@gnu.org',
+ avatar: avatar1,
+ date: '3/21/2020',
+ status: 'Published',
+ review: 2,
+ head: 'in imperdiet et commodo',
+ para: 'Morbi porttitor lorem id ligula. Suspendisse ornare consequat lectus. In est risus, auctor sed, tristique in, tempus sit amet, sem.',
+ },
+ {
+ id: 33,
+ product: 'Span',
+ companyName: 'Jerde-Walsh',
+ productImage: product13,
+ reviewer: 'Rozalin Allan',
+ email: 'rallanw@ucsd.edu',
+ avatar: avatar1,
+ date: '1/23/2020',
+ status: 'Published',
+ review: 4,
+ head: 'pellentesque at',
+ para: 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.',
+ },
+ {
+ id: 34,
+ product: 'Rank',
+ companyName: 'Barrows, Quitzon and Roberts',
+ productImage: product14,
+ reviewer: 'Patsy Bowlas',
+ email: 'pbowlasx@yandex.ru',
+ avatar: avatar1,
+ date: '10/7/2020',
+ status: 'Pending',
+ review: 5,
+ head: 'congue etiam',
+ para: 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.',
+ },
+ {
+ id: 35,
+ product: 'Tempsoft',
+ companyName: 'Russel-Grant',
+ productImage: product15,
+ reviewer: 'Zsazsa Jansens',
+ email: 'zjansensy@wikipedia.org',
+ avatar: avatar1,
+ date: '8/7/2021',
+ status: 'Pending',
+ review: 1,
+ head: 'eget eros',
+ para: 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.',
+ },
+ {
+ id: 36,
+ product: 'Ventosanzap',
+ companyName: 'O\'Conner-Zboncak',
+ productImage: product16,
+ reviewer: 'Denny MacGettigen',
+ email: 'dmacgettigenz@ca.gov',
+ avatar: avatar1,
+ date: '2/17/2020',
+ status: 'Published',
+ review: 1,
+ head: 'vel dapibus',
+ para: 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.',
+ },
+ {
+ id: 37,
+ product: 'Mat Lam Tam',
+ companyName: 'Rutherford, Heller and Bashirian',
+ productImage: product17,
+ reviewer: 'Leia Braunroth',
+ email: 'lbraunroth10@nytimes.com',
+ avatar: avatar1,
+ date: '1/28/2021',
+ status: 'Published',
+ review: 4,
+ head: 'sit amet consectetuer',
+ para: 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.',
+ },
+ {
+ id: 38,
+ product: 'Zamit',
+ companyName: 'Swift-Altenwerth',
+ productImage: product18,
+ reviewer: 'Nil Vasilic',
+ email: 'nvasilic11@ft.com',
+ avatar: avatar1,
+ date: '1/2/2020',
+ status: 'Published',
+ review: 1,
+ head: 'blandit non',
+ para: 'Maecenas ut massa quis augue luctus tincidunt. Nulla mollis molestie lorem. Quisque ut erat.',
+ },
+ {
+ id: 39,
+ product: 'Tresom',
+ companyName: 'O\'Kon, Waelchi and Lesch',
+ productImage: product19,
+ reviewer: 'Mandie Forseith',
+ email: 'mforseith12@phpbb.com',
+ avatar: avatar1,
+ date: '7/2/2020',
+ status: 'Published',
+ review: 1,
+ head: 'in ante vestibulum ante',
+ para: 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.',
+ },
+ {
+ id: 40,
+ product: 'Viva',
+ companyName: 'Johnston, Anderson and Metz',
+ productImage: product20,
+ reviewer: 'Audra Pinks',
+ email: 'apinks13@pinterest.com',
+ avatar: avatar1,
+ date: '1/6/2020',
+ status: 'Pending',
+ review: 2,
+ head: 'ante ipsum primis in',
+ para: 'Quisque id justo sit amet sapien dignissim vestibulum. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros.',
+ },
+ {
+ id: 41,
+ product: 'Matsoft',
+ companyName: 'O\'Conner, Paucek and Braun',
+ productImage: product1,
+ reviewer: 'Damita Jarad',
+ email: 'djarad14@un.org',
+ avatar: avatar1,
+ date: '10/30/2021',
+ status: 'Pending',
+ review: 4,
+ head: 'mus etiam vel augue',
+ para: 'Vestibulum ac est lacinia nisi venenatis tristique. Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. Aliquam erat volutpat.',
+ },
+ {
+ id: 42,
+ product: 'Wiodex',
+ companyName: 'Wisoky-Kassulke',
+ productImage: product2,
+ reviewer: 'Fowler Drury',
+ email: 'fdrury15@chicagotribune.com',
+ avatar: avatar1,
+ date: '2/11/2020',
+ status: 'Published',
+ review: 3,
+ head: 'dictumst aliquam augue quam',
+ para: 'Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. Sed vel enim sit amet nunc viverra dapibus. Nulla suscipit ligula in lacus.',
+ },
+ {
+ id: 43,
+ product: 'Keylex',
+ companyName: 'Haag, Bruen and Reichel',
+ productImage: product3,
+ reviewer: 'Anette Jouen',
+ email: 'ajouen16@admin.ch',
+ avatar: avatar1,
+ date: '12/11/2020',
+ status: 'Published',
+ review: 3,
+ head: 'mauris non ligula pellentesque ultrices',
+ para: 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.',
+ },
+ {
+ id: 44,
+ product: 'Konklux',
+ companyName: 'Ankunding Inc',
+ productImage: product4,
+ reviewer: 'Candace Fossey',
+ email: 'cfossey17@live.com',
+ avatar: avatar1,
+ date: '2/10/2021',
+ status: 'Pending',
+ review: 1,
+ head: 'vel augue vestibulum ante',
+ para: 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.',
+ },
+ {
+ id: 45,
+ product: 'Tresom',
+ companyName: 'Deckow and Sons',
+ productImage: product5,
+ reviewer: 'Persis Loades',
+ email: 'ploades18@g.co',
+ avatar: avatar1,
+ date: '9/11/2020',
+ status: 'Pending',
+ review: 5,
+ head: 'convallis nulla neque',
+ para: 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.',
+ },
+ {
+ id: 46,
+ product: 'Quo Lux',
+ companyName: 'Kreiger, Reynolds and Sporer',
+ productImage: product1,
+ reviewer: 'Kim Carrel',
+ email: 'kcarrel19@webnode.com',
+ avatar: avatar1,
+ date: '5/26/2020',
+ status: 'Pending',
+ review: 3,
+ head: 'quam turpis adipiscing lorem',
+ para: 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.',
+ },
+ {
+ id: 47,
+ product: 'Roldlamis',
+ companyName: 'Kuphal-Abbott',
+ productImage: product6,
+ reviewer: 'Rodger Broz',
+ email: 'rbroz1a@omniture.com',
+ avatar: avatar1,
+ date: '10/5/2020',
+ status: 'Pending',
+ review: 1,
+ head: 'morbi non',
+ para: 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.',
+ },
+ {
+ id: 48,
+ product: 'Tampflex',
+ companyName: 'Romaguera, Schmeler and Volkman',
+ productImage: product7,
+ reviewer: 'Lauri Shearsby',
+ email: 'lshearsby1b@goo.ne.jp',
+ avatar: avatar1,
+ date: '10/18/2020',
+ status: 'Pending',
+ review: 5,
+ head: 'vel dapibus at diam',
+ para: 'Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus vestibulum sagittis sapien. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.',
+ },
+ {
+ id: 49,
+ product: 'Span',
+ companyName: 'Hane-Romaguera',
+ productImage: product8,
+ reviewer: 'Hannah Drohun',
+ email: 'hdrohun1c@marketwatch.com',
+ avatar: avatar1,
+ date: '9/14/2020',
+ status: 'Pending',
+ review: 4,
+ head: 'morbi porttitor lorem',
+ para: 'Integer ac leo. Pellentesque ultrices mattis odio. Donec vitae nisi.',
+ },
+ {
+ id: 50,
+ product: 'Zamit',
+ companyName: 'Hoeger-Powlowski',
+ productImage: product9,
+ reviewer: 'Celesta Hadden',
+ email: 'chadden1d@hao123.com',
+ avatar: avatar1,
+ date: '4/15/2020',
+ status: 'Published',
+ review: 5,
+ head: 'non sodales',
+ para: 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.',
+ },
+ {
+ id: 51,
+ product: 'Witchip',
+ companyName: 'Heidenreich, Keeling and Kuhn',
+ productImage: product10,
+ reviewer: 'Sollie Dowling',
+ email: 'sdowling1e@businessweek.com',
+ avatar: avatar1,
+ date: '9/7/2020',
+ status: 'Pending',
+ review: 1,
+ head: 'nam congue risus semper porta',
+ para: 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.',
+ },
+ {
+ id: 52,
+ product: 'Ratity',
+ companyName: 'Beier and Sons',
+ productImage: product11,
+ reviewer: 'Esma Tamsett',
+ email: 'etamsett1f@arstechnica.com',
+ avatar: avatar1,
+ date: '12/21/2020',
+ status: 'Pending',
+ review: 2,
+ head: 'rutrum rutrum neque aenean auctor',
+ para: 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.',
+ },
+ {
+ id: 53,
+ product: 'Voltsillam',
+ companyName: 'Jones and Sons',
+ productImage: product12,
+ reviewer: 'Fee Pieche',
+ email: 'fpieche1g@usa.gov',
+ avatar: avatar1,
+ date: '4/28/2020',
+ status: 'Pending',
+ review: 5,
+ head: 'non mi',
+ para: 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.',
+ },
+ {
+ id: 54,
+ product: 'Voltsillam',
+ companyName: 'Mohr and Sons',
+ productImage: product13,
+ reviewer: 'Frankie Davis',
+ email: 'fdavis1h@guardian.co.uk',
+ avatar: avatar1,
+ date: '3/16/2021',
+ status: 'Published',
+ review: 5,
+ head: 'maecenas pulvinar lobortis est phasellus',
+ para: 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.',
+ },
+ {
+ id: 55,
+ product: 'Matsoft',
+ companyName: 'Kling-Hayes',
+ productImage: product1,
+ reviewer: 'Byram Wimlet',
+ email: 'bwimlet1i@craigslist.org',
+ avatar: avatar1,
+ date: '7/13/2021',
+ status: 'Pending',
+ review: 2,
+ head: 'tortor sollicitudin',
+ para: 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.',
+ },
+ {
+ id: 56,
+ product: 'Rt',
+ companyName: 'Brekke-Lubowitz',
+ productImage: product14,
+ reviewer: 'Maurita Hutchin',
+ email: 'mhutchin1j@ibm.com',
+ avatar: avatar1,
+ date: '11/11/2020',
+ status: 'Pending',
+ review: 1,
+ head: 'odio cras mi pede malesuada',
+ para: 'Integer tincidunt ante vel ipsum. Praesent blandit lacinia erat. Vestibulum sed magna at nunc commodo placerat.',
+ },
+ {
+ id: 57,
+ product: 'Konklab',
+ companyName: 'Kiehn LLC',
+ productImage: product15,
+ reviewer: 'Gorden Leftley',
+ email: 'gleftley1k@disqus.com',
+ avatar: avatar1,
+ date: '9/19/2021',
+ status: 'Published',
+ review: 3,
+ head: 'sed nisl nunc rhoncus',
+ para: 'Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa. Donec dapibus. Duis at velit eu est congue elementum.',
+ },
+ {
+ id: 58,
+ product: 'Lotstring',
+ companyName: 'Windler-Corwin',
+ productImage: product16,
+ reviewer: 'Raviv Critcher',
+ email: 'rcritcher1l@icq.com',
+ avatar: avatar1,
+ date: '4/20/2020',
+ status: 'Published',
+ review: 5,
+ head: 'bibendum imperdiet nullam orci',
+ para: 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.',
+ },
+ {
+ id: 59,
+ product: 'Keylex',
+ companyName: 'Reynolds, Buckridge and Schmeler',
+ productImage: product17,
+ reviewer: 'Cinda Tersay',
+ email: 'ctersay1m@berkeley.edu',
+ avatar: avatar1,
+ date: '3/31/2021',
+ status: 'Published',
+ review: 4,
+ head: 'curabitur at',
+ para: 'Phasellus sit amet erat. Nulla tempus. Vivamus in felis eu sapien cursus vestibulum.',
+ },
+ {
+ id: 60,
+ product: 'Transcof',
+ companyName: 'Jacobs-Farrell',
+ productImage: product18,
+ reviewer: 'Raynell Rosenauer',
+ email: 'rrosenauer1n@360.cn',
+ avatar: avatar1,
+ date: '6/3/2020',
+ status: 'Published',
+ review: 2,
+ head: 'massa donec dapibus duis at',
+ para: 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.',
+ },
+ {
+ id: 61,
+ product: 'Opela',
+ companyName: 'Beier-Bergstrom',
+ productImage: product19,
+ reviewer: 'Aurelia Cooley',
+ email: 'acooley1o@prnewswire.com',
+ avatar: avatar1,
+ date: '7/27/2020',
+ status: 'Pending',
+ review: 1,
+ head: 'dictumst maecenas',
+ para: 'Praesent id massa id nisl venenatis lacinia. Aenean sit amet justo. Morbi ut odio.',
+ },
+ {
+ id: 62,
+ product: 'Rlowdesk',
+ companyName: 'Roob and Sons',
+ productImage: product20,
+ reviewer: 'Silvester Vittel',
+ email: 'svittel1p@eepurl.com',
+ avatar: avatar1,
+ date: '3/2/2021',
+ status: 'Pending',
+ review: 5,
+ head: 'elit ac nulla',
+ para: 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.',
+ },
+ {
+ id: 63,
+ product: 'Kanlam',
+ companyName: 'Hauck Group',
+ productImage: product2,
+ reviewer: 'Nester Oliffe',
+ email: 'noliffe1q@tinypic.com',
+ avatar: avatar1,
+ date: '3/31/2021',
+ status: 'Published',
+ review: 4,
+ head: 'sagittis nam congue',
+ para: 'Duis bibendum. Morbi non quam nec dui luctus rutrum. Nulla tellus.',
+ },
+ {
+ id: 64,
+ product: 'Rembucket',
+ companyName: 'Reynolds-Lindgren',
+ productImage: product2,
+ reviewer: 'Cheryl Growcott',
+ email: 'cgrowcott1r@nifty.com',
+ avatar: avatar1,
+ date: '10/29/2021',
+ status: 'Pending',
+ review: 4,
+ head: 'amet diam in magna bibendum',
+ para: 'Proin leo odio, porttitor id, consequat in, consequat ut, nulla. Sed accumsan felis. Ut at dolor quis odio consequat varius.',
+ },
+ {
+ id: 65,
+ product: 'Tin',
+ companyName: 'Stroman and Sons',
+ productImage: product2,
+ reviewer: 'Calhoun Perot',
+ email: 'cperot1s@goodreads.com',
+ avatar: avatar1,
+ date: '10/15/2020',
+ status: 'Published',
+ review: 4,
+ head: 'enim blandit mi',
+ para: 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.',
+ },
+ {
+ id: 66,
+ product: 'Trippledex',
+ companyName: 'Kihn-Wisoky',
+ productImage: product2,
+ reviewer: 'Winnah Tivenan',
+ email: 'wtivenan1t@example.com',
+ avatar: avatar1,
+ date: '5/27/2021',
+ status: 'Published',
+ review: 3,
+ head: 'pede ullamcorper augue a suscipit',
+ para: 'Quisque porta volutpat erat. Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. Nunc purus.',
+ },
+ {
+ id: 67,
+ product: 'Redhold',
+ companyName: 'Konopelski-Hauck',
+ productImage: product2,
+ reviewer: 'Faydra Perceval',
+ email: 'fperceval1u@psu.edu',
+ avatar: avatar1,
+ date: '10/2/2020',
+ status: 'Published',
+ review: 2,
+ head: 'porta volutpat',
+ para: 'In congue. Etiam justo. Etiam pretium iaculis justo.',
+ },
+ {
+ id: 68,
+ product: 'Pannier',
+ companyName: 'Rau Inc',
+ productImage: product3,
+ reviewer: 'Shauna Runge',
+ email: 'srunge1v@theatlantic.com',
+ avatar: avatar1,
+ date: '12/17/2021',
+ status: 'Published',
+ review: 3,
+ head: 'aliquam lacus morbi quis tortor',
+ para: 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.',
+ },
+ {
+ id: 69,
+ product: 'Rlexidy',
+ companyName: 'Torp-Lebsack',
+ productImage: product3,
+ reviewer: 'Udell Laurand',
+ email: 'ulaurand1w@prnewswire.com',
+ avatar: avatar1,
+ date: '3/14/2021',
+ status: 'Pending',
+ review: 5,
+ head: 'vestibulum velit id pretium',
+ para: 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.',
+ },
+ {
+ id: 70,
+ product: 'Keylex',
+ companyName: 'Hane-Bednar',
+ productImage: product3,
+ reviewer: 'Charyl Mordaunt',
+ email: 'cmordaunt1x@bizjournals.com',
+ avatar: avatar1,
+ date: '4/11/2021',
+ status: 'Pending',
+ review: 1,
+ head: 'amet eros suspendisse accumsan tortor',
+ para: 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.',
+ },
+ {
+ id: 71,
+ product: 'Kuobam',
+ companyName: 'Rice Group',
+ productImage: product3,
+ reviewer: 'Becki Petit',
+ email: 'bpetit1y@addtoany.com',
+ avatar: avatar1,
+ date: '8/9/2021',
+ status: 'Published',
+ review: 5,
+ head: 'blandit lacinia erat vestibulum sed',
+ para: 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.',
+ },
+ {
+ id: 72,
+ product: 'Ulphazap',
+ companyName: 'West, White and Rau',
+ productImage: product3,
+ reviewer: 'Gallagher Goldes',
+ email: 'ggoldes1z@microsoft.com',
+ avatar: avatar1,
+ date: '10/21/2020',
+ status: 'Pending',
+ review: 4,
+ head: 'vitae ipsum aliquam',
+ para: 'Fusce posuere felis sed lacus. Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. Nunc rhoncus dui vel sem.',
+ },
+ {
+ id: 73,
+ product: 'Wiodex',
+ companyName: 'Keeling-Dicki',
+ productImage: product4,
+ reviewer: 'Gunilla Painter',
+ email: 'gpainter20@drupal.org',
+ avatar: avatar1,
+ date: '12/11/2021',
+ status: 'Published',
+ review: 4,
+ head: 'tortor duis mattis egestas',
+ para: 'Morbi non lectus. Aliquam sit amet diam in magna bibendum imperdiet. Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis.',
+ },
+ {
+ id: 74,
+ product: 'Veribet',
+ companyName: 'Gerlach, Bernier and Jenkins',
+ productImage: product4,
+ reviewer: 'Greggory Illingworth',
+ email: 'gillingworth21@lis',
+ avatar: avatar1,
+ date: '8/8/2020',
+ status: 'Pending',
+ review: 4,
+ head: 'pede justo lacinia eget tincidunt',
+ para: 'Pellentesque at nulla. Suspendisse potenti. Cras in purus eu magna vulputate luctus.',
+ },
+ {
+ id: 75,
+ product: 'Rix San',
+ companyName: 'Kessler and Sons',
+ productImage: product4,
+ reviewer: 'Amabel Reah',
+ email: 'areah22@indiegogo.com',
+ avatar: avatar1,
+ date: '11/22/2021',
+ status: 'Published',
+ review: 3,
+ head: 'sit amet lobortis sapien',
+ para: 'In hac habitasse platea dictumst. Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. Nulla justo.',
+ },
+ {
+ id: 76,
+ product: 'Zoolab',
+ companyName: 'Goldner, Lind and Hansen',
+ productImage: product4,
+ reviewer: 'Eziechiele Littlejohns',
+ email: 'elittlejohns23@blogger.com',
+ avatar: avatar1,
+ date: '8/17/2020',
+ status: 'Pending',
+ review: 4,
+ head: 'cras non velit',
+ para: 'Nullam porttitor lacus at turpis. Donec posuere metus vitae ipsum. Aliquam non mauris.',
+ },
+ {
+ id: 77,
+ product: 'Rob',
+ companyName: 'Trantow Group',
+ productImage: product4,
+ reviewer: 'Faythe Hance',
+ email: 'fhance24@odnoklassniki.ru',
+ avatar: avatar1,
+ date: '7/1/2021',
+ status: 'Published',
+ review: 5,
+ head: 'luctus tincidunt nulla mollis molestie',
+ para: 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.',
+ },
+ {
+ id: 78,
+ product: 'Zamit',
+ companyName: 'Reichel, Hagenes and Nader',
+ productImage: product5,
+ reviewer: 'Marie Hazelton',
+ email: 'mhazelton25@miitbeian.gov.cn',
+ avatar: avatar1,
+ date: '5/31/2021',
+ status: 'Published',
+ review: 1,
+ head: 'ut odio cras',
+ para: 'Aliquam quis turpis eget elit sodales scelerisque. Mauris sit amet eros. Suspendisse accumsan tortor quis turpis.',
+ },
+ {
+ id: 79,
+ product: 'Zoolab',
+ companyName: 'Baumbach-Renner',
+ productImage: product5,
+ reviewer: 'Vincenz Izsak',
+ email: 'vizsak26@diigo.com',
+ avatar: avatar1,
+ date: '3/15/2021',
+ status: 'Pending',
+ review: 2,
+ head: 'gravida sem',
+ para: 'Proin interdum mauris non ligula pellentesque ultrices. Phasellus id sapien in sapien iaculis congue. Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl.',
+ },
+ {
+ id: 80,
+ product: 'Stronghold',
+ companyName: 'Ullrich, Jacobson and Tillman',
+ productImage: product5,
+ reviewer: 'Roch Dehmel',
+ email: 'rdehmel27@tiny.cc',
+ avatar: avatar1,
+ date: '4/21/2020',
+ status: 'Pending',
+ review: 3,
+ head: 'ligula pellentesque ultrices phasellus',
+ para: 'Sed ante. Vivamus tortor. Duis mattis egestas metus.',
+ },
+ {
+ id: 81,
+ product: 'Rintone',
+ companyName: 'VonRueden, Kuphal and Lindgren',
+ productImage: product5,
+ reviewer: 'Marylin Thewlis',
+ email: 'mthewlis28@tmall.com',
+ avatar: avatar1,
+ date: '5/26/2021',
+ status: 'Pending',
+ review: 1,
+ head: 'elementum nullam varius nulla',
+ para: 'In sagittis dui vel nisl. Duis ac nibh. Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus.',
+ },
+ {
+ id: 82,
+ product: 'Temp',
+ companyName: 'Wintheiser, Bergstrom and Schimmel',
+ productImage: product5,
+ reviewer: 'Annissa Mapham',
+ email: 'amapham29@cbslocal.com',
+ avatar: avatar1,
+ date: '6/10/2021',
+ status: 'Published',
+ review: 4,
+ head: 'odio porttitor',
+ para: 'Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. In blandit ultrices enim. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.',
+ },
+ {
+ id: 83,
+ product: 'Rlexidy',
+ companyName: 'Kuhn and Sons',
+ productImage: product6,
+ reviewer: 'Lori Prosek',
+ email: 'lprosek2a@webs.com',
+ avatar: avatar1,
+ date: '7/16/2021',
+ status: 'Published',
+ review: 1,
+ head: 'lacinia sapien quis',
+ para: 'Suspendisse potenti. In eleifend quam a odio. In hac habitasse platea dictumst.',
+ },
+ {
+ id: 84,
+ product: 'Ronstring',
+ companyName: 'Goldner, Nitzsche and Rau',
+ productImage: product6,
+ reviewer: 'Zelma Jado',
+ email: 'zjado2b@salon.com',
+ avatar: avatar1,
+ date: '7/13/2021',
+ status: 'Pending',
+ review: 4,
+ head: 'mauris sit amet eros suspendisse',
+ para: 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.',
+ },
+ {
+ id: 85,
+ product: 'Rixflex',
+ companyName: 'Bayer-Beer',
+ productImage: product6,
+ reviewer: 'Alfreda Tuffley',
+ email: 'atuffley2c@drupal.org',
+ avatar: avatar1,
+ date: '3/25/2020',
+ status: 'Pending',
+ review: 2,
+ head: 'molestie hendrerit at vulputate vitae',
+ para: 'Aliquam quis turpis eget elit sodales scelerisque. Mauris sit amet eros. Suspendisse accumsan tortor quis turpis.',
+ },
+ {
+ id: 86,
+ product: 'Uerified',
+ companyName: 'Rolfson-Witting',
+ productImage: product6,
+ reviewer: 'Arnold Rate',
+ email: 'arate2d@mit.edu',
+ avatar: avatar1,
+ date: '7/22/2021',
+ status: 'Pending',
+ review: 1,
+ head: 'nisi venenatis tristique fusce',
+ para: 'Phasellus in felis. Donec semper sapien a libero. Nam dui.',
+ },
+ {
+ id: 87,
+ product: 'Stringtough',
+ companyName: 'Kunde-Gibson',
+ productImage: product7,
+ reviewer: 'Felizio Macieiczyk',
+ email: 'fmacieiczyk2e@sciencedaily.com',
+ avatar: avatar1,
+ date: '8/27/2020',
+ status: 'Published',
+ review: 4,
+ head: 'augue quam sollicitudin',
+ para: 'Duis consequat dui nec nisi volutpat eleifend. Donec ut dolor. Morbi vel lectus in quam fringilla rhoncus.',
+ },
+ {
+ id: 88,
+ product: 'Qookley',
+ companyName: 'Kshlerin-Klocko',
+ productImage: product7,
+ reviewer: 'Evanne Chamley',
+ email: 'echamley2f@gmpg.org',
+ avatar: avatar1,
+ date: '2/1/2021',
+ status: 'Pending',
+ review: 4,
+ head: 'eget tincidunt',
+ para: 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.',
+ },
+ {
+ id: 89,
+ product: 'Zamit',
+ companyName: 'Reilly, Marvin and Ondricka',
+ productImage: product7,
+ reviewer: 'Dacy Goodlatt',
+ email: 'dgoodlatt2g@squarespace.com',
+ avatar: avatar1,
+ date: '4/15/2021',
+ status: 'Pending',
+ review: 4,
+ head: 'eu interdum eu',
+ para: 'In congue. Etiam justo. Etiam pretium iaculis justo.',
+ },
+ {
+ id: 90,
+ product: 'Mat Lam Tam',
+ companyName: 'Ratke-Bauch',
+ productImage: product7,
+ reviewer: 'Samantha Vickerman',
+ email: 'svickerman2h@earthlink.net',
+ avatar: avatar1,
+ date: '6/30/2021',
+ status: 'Pending',
+ review: 3,
+ head: 'leo rhoncus sed vestibulum',
+ para: 'Sed ante. Vivamus tortor. Duis mattis egestas metus.',
+ },
+ {
+ id: 91,
+ product: 'Rt',
+ companyName: 'Kautzer-Hayes',
+ productImage: product8,
+ reviewer: 'Maura Robichon',
+ email: 'mrobichon2i@accuweather.com',
+ avatar: avatar1,
+ date: '4/12/2020',
+ status: 'Published',
+ review: 3,
+ head: 'dui maecenas',
+ para: 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.',
+ },
+ {
+ id: 92,
+ product: 'Stim',
+ companyName: 'Bernhard and Sons',
+ productImage: product8,
+ reviewer: 'Shelton Bonde',
+ email: 'sbonde2j@economist.com',
+ avatar: avatar1,
+ date: '6/1/2021',
+ status: 'Pending',
+ review: 1,
+ head: 'odio elementum',
+ para: 'Curabitur gravida nisi at nibh. In hac habitasse platea dictumst. Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem.',
+ },
+ {
+ id: 93,
+ product: 'Rix San',
+ companyName: 'Waters, Harvey and Stiedemann',
+ productImage: product8,
+ reviewer: 'Hallsy Flannigan',
+ email: 'hflannigan2k@printfriendly.com',
+ avatar: avatar1,
+ date: '6/3/2020',
+ status: 'Published',
+ review: 5,
+ head: 'ultrices phasellus id',
+ para: 'Curabitur in libero ut massa volutpat convallis. Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. Maecenas pulvinar lobortis est.',
+ },
+ {
+ id: 94,
+ product: 'Vagram',
+ companyName: 'Ondricka, Thompson and Kuhn',
+ productImage: product8,
+ reviewer: 'Rheta Chazelas',
+ email: 'rchazelas2l@forbes.com',
+ avatar: avatar1,
+ date: '2/21/2021',
+ status: 'Pending',
+ review: 1,
+ head: 'eleifend quam',
+ para: 'Praesent blandit. Nam nulla. Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede.',
+ },
+ {
+ id: 95,
+ product: 'Otcom',
+ companyName: 'Volkman Group',
+ productImage: product9,
+ reviewer: 'Arabelle Uc',
+ email: 'auc2m@archive.org',
+ avatar: avatar1,
+ date: '1/27/2021',
+ status: 'Published',
+ review: 4,
+ head: 'fermentum justo',
+ para: 'In hac habitasse platea dictumst. Etiam faucibus cursus urna. Ut tellus.',
+ },
+ {
+ id: 96,
+ product: 'Rixflex',
+ companyName: 'Dickinson, Spencer and Hyatt',
+ productImage: product9,
+ reviewer: 'Pauly Goulden',
+ email: 'pgoulden2n@ed.gov',
+ avatar: avatar1,
+ date: '10/2/2020',
+ status: 'Pending',
+ review: 2,
+ head: 'morbi ut',
+ para: 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin risus. Praesent lectus.',
+ },
+ {
+ id: 97,
+ product: 'Lotstring',
+ companyName: 'Marvin Inc',
+ productImage: product9,
+ reviewer: 'Wilhelmina Benezet',
+ email: 'wbenezet2o@themeforest.net',
+ avatar: avatar1,
+ date: '8/12/2021',
+ status: 'Pending',
+ review: 4,
+ head: 'sapien cursus vestibulum proin',
+ para: 'Aenean lectus. Pellentesque eget nunc. Donec quis orci eget orci vehicula condimentum.',
+ },
+ {
+ id: 98,
+ product: 'Wiodex',
+ companyName: 'Hayes-Greenholt',
+ productImage: product9,
+ reviewer: 'Wallie Paolone',
+ email: 'wpaolone2p@paginegialle.it',
+ avatar: avatar1,
+ date: '7/15/2021',
+ status: 'Published',
+ review: 2,
+ head: 'tincidunt in leo maecenas',
+ para: 'Cras non velit nec nisi vulputate nonummy. Maecenas tincidunt lacus at velit. Vivamus vel nulla eget eros elementum pellentesque.',
+ },
+ {
+ id: 99,
+ product: 'Komainer',
+ companyName: 'Gislason, Greenfelder and Wisozk',
+ productImage: product10,
+ reviewer: 'Ezmeralda Normavill',
+ email: 'enormavill2q@infoseek.co.jp',
+ avatar: avatar1,
+ date: '8/4/2021',
+ status: 'Pending',
+ review: 3,
+ head: 'pharetra magna ac',
+ para: 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.',
+ },
+ {
+ id: 100,
+ product: 'Ulpha',
+ companyName: 'Kunde Group',
+ productImage: product10,
+ reviewer: 'Lew Dudman',
+ email: 'ldudman2r@nationalgeographic.com',
+ avatar: avatar1,
+ date: '11/12/2020',
+ status: 'Published',
+ review: 3,
+ head: 'suscipit ligula in lacus',
+ para: 'In quis justo. Maecenas rhoncus aliquam lacus. Morbi quis tortor id nulla ultrices aliquet.',
+ },
+ ],
+ referrals: [
+ {
+ id: 1,
+ user: 'Koressa Leyfield',
+ email: 'kleyfield0@columbia.edu',
+ avatar: avatar1,
+ referredId: 3398,
+ status: 'Unpaid',
+ value: '$6655.92',
+ earning: '$380.17',
+ },
+ {
+ id: 2,
+ user: 'Tania Brotherhood',
+ email: 'tbrotherhood1@bing.com',
+ avatar: '',
+ referredId: 6740,
+ status: 'Unpaid',
+ value: '$2113.04',
+ earning: '$716.72',
+ },
+ {
+ id: 3,
+ user: 'Clemmie Montgomery',
+ email: 'cmontgomery2@fema.gov',
+ avatar: avatar1,
+ referredId: 2749,
+ status: 'Unpaid',
+ value: '$6717.09',
+ earning: '$699.02',
+ },
+ {
+ id: 4,
+ user: 'Job Jope',
+ email: 'jjope3@istockphoto.com',
+ avatar: avatar15,
+ referredId: 1413,
+ status: 'Paid',
+ value: '$9465.13',
+ earning: '$98.23',
+ },
+ {
+ id: 5,
+ user: 'Christoffer Derell',
+ email: 'cderell4@apple.com',
+ avatar: avatar1,
+ referredId: 9176,
+ status: 'Paid',
+ value: '$6202.81',
+ earning: '$882.51',
+ },
+ {
+ id: 6,
+ user: 'Herminia Eyree',
+ email: 'heyree5@gizmodo.com',
+ avatar: avatar8,
+ referredId: 6975,
+ status: 'Unpaid',
+ value: '$9802.40',
+ earning: '$219.52',
+ },
+ {
+ id: 7,
+ user: 'Dela Lathwell',
+ email: 'dlathwell6@webmd.com',
+ avatar: '',
+ referredId: 4552,
+ status: 'Paid',
+ value: '$6470.46',
+ earning: '$831.45',
+ },
+ {
+ id: 8,
+ user: 'Kirbie Greenhow',
+ email: 'kgreenhow7@sina.com.cn',
+ avatar: avatar1,
+ referredId: 4131,
+ status: 'Unpaid',
+ value: '$6199.28',
+ earning: '$856.00',
+ },
+ {
+ id: 9,
+ user: 'Adrienne Tourne',
+ email: 'atourne8@fotki.com',
+ avatar: avatar1,
+ referredId: 4072,
+ status: 'Unpaid',
+ value: '$6774.33',
+ earning: '$821.78',
+ },
+ {
+ id: 10,
+ user: 'Vanya Hearons',
+ email: 'vhearons9@blogspot.com',
+ avatar: avatar9,
+ referredId: 3070,
+ status: 'Unpaid',
+ value: '$1067.14',
+ earning: '$804.91',
+ },
+ {
+ id: 11,
+ user: 'Garnette Abramcik',
+ email: 'gabramcika@google.com',
+ avatar: avatar11,
+ referredId: 7828,
+ status: 'Unpaid',
+ value: '$5375.10',
+ earning: '$447.01',
+ },
+ {
+ id: 12,
+ user: 'Akim Korba',
+ email: 'akorbab@flickr.com',
+ avatar: avatar11,
+ referredId: 8561,
+ status: 'Unpaid',
+ value: '$3104.91',
+ earning: '$552.75',
+ },
+ {
+ id: 13,
+ user: 'Cull Scipsey',
+ email: 'cscipseyc@adobe.com',
+ avatar: avatar2,
+ referredId: 9287,
+ status: 'Paid',
+ value: '$9375.13',
+ earning: '$690.75',
+ },
+ {
+ id: 14,
+ user: 'Anabal Hakking',
+ email: 'ahakkingd@paginegialle.it',
+ avatar: avatar7,
+ referredId: 4892,
+ status: 'Paid',
+ value: '$8797.12',
+ earning: '$679.71',
+ },
+ {
+ id: 15,
+ user: 'Linzy Swiers',
+ email: 'lswierse@flickr.com',
+ avatar: avatar5,
+ referredId: 9180,
+ status: 'Unpaid',
+ value: '$2996.63',
+ earning: '$610.27',
+ },
+ {
+ id: 16,
+ user: 'Willy Espinet',
+ email: 'wespinetf@addtoany.com',
+ avatar: '',
+ referredId: 9102,
+ status: 'Paid',
+ value: '$7048.18',
+ earning: '$369.06',
+ },
+ {
+ id: 17,
+ user: 'Carter Gommowe',
+ email: 'cgommoweg@purevolume.com',
+ avatar: avatar9,
+ referredId: 7049,
+ status: 'Unpaid',
+ value: '$6049.95',
+ earning: '$642.78',
+ },
+ {
+ id: 18,
+ user: 'Andre Kenway',
+ email: 'akenwayh@rambler.ru',
+ avatar: '',
+ referredId: 9826,
+ status: 'Paid',
+ value: '$2221.71',
+ earning: '$347.19',
+ },
+ {
+ id: 19,
+ user: 'Quintina Endacott',
+ email: 'qendacotti@answers.com',
+ avatar: avatar9,
+ referredId: 4555,
+ status: 'Paid',
+ value: '$5918.70',
+ earning: '$543.44',
+ },
+ {
+ id: 20,
+ user: 'Shurwood Cabble',
+ email: 'scabblej@twitpic.com',
+ avatar: avatar4,
+ referredId: 5591,
+ status: 'Paid',
+ value: '$9073.50',
+ earning: '$980.62',
+ },
+ {
+ id: 21,
+ user: 'Thatch Borchardt',
+ email: 'tborchardtk@bing.com',
+ avatar: avatar1,
+ referredId: 4491,
+ status: 'Unpaid',
+ value: '$8389.56',
+ earning: '$746.81',
+ },
+ {
+ id: 22,
+ user: 'Fawne O\'Scanlan',
+ email: 'foscanlanl@europa.eu',
+ avatar: avatar8,
+ referredId: 2946,
+ status: 'Paid',
+ value: '$7471.34',
+ earning: '$747.24',
+ },
+ {
+ id: 23,
+ user: 'Ode Birts',
+ email: 'obirtsm@sphinn.com',
+ avatar: avatar10,
+ referredId: 2328,
+ status: 'Paid',
+ value: '$8484.83',
+ earning: '$815.79',
+ },
+ {
+ id: 24,
+ user: 'Bella Michelle',
+ email: 'bmichellen@npr.org',
+ avatar: avatar2,
+ referredId: 5725,
+ status: 'Paid',
+ value: '$7088.56',
+ earning: '$329.64',
+ },
+ {
+ id: 25,
+ user: 'Aurora Skpsey',
+ email: 'askpseyo@cdc.gov',
+ avatar: avatar14,
+ referredId: 2821,
+ status: 'Unpaid',
+ value: '$2938.87',
+ earning: '$317.42',
+ },
+ {
+ id: 26,
+ user: 'Neddie Maunders',
+ email: 'nmaundersp@blogspot.com',
+ avatar: avatar15,
+ referredId: 1661,
+ status: 'Unpaid',
+ value: '$6256.70',
+ earning: '$521.01',
+ },
+ {
+ id: 27,
+ user: 'Andria Chisnell',
+ email: 'achisnellq@imageshack.us',
+ avatar: avatar12,
+ referredId: 3363,
+ status: 'Unpaid',
+ value: '$9106.99',
+ earning: '$705.15',
+ },
+ {
+ id: 28,
+ user: 'Reggy Arnao',
+ email: 'rarnaor@kickstarter.com',
+ avatar: avatar3,
+ referredId: 7814,
+ status: 'Rejected',
+ value: '$6300.60',
+ earning: '$234.28',
+ },
+ {
+ id: 29,
+ user: 'Shaylah Hasselby',
+ email: 'shasselbys@odnoklassniki.ru',
+ avatar: avatar4,
+ referredId: 8324,
+ status: 'Paid',
+ value: '$1874.21',
+ earning: '$899.72',
+ },
+ {
+ id: 30,
+ user: 'Althea Dayce',
+ email: 'adaycet@youtu.be',
+ avatar: avatar8,
+ referredId: 6069,
+ status: 'Paid',
+ value: '$6098.09',
+ earning: '$269.32',
+ },
+ {
+ id: 31,
+ user: 'Hector Biaggioli',
+ email: 'hbiaggioliu@umich.edu',
+ avatar: avatar13,
+ referredId: 5286,
+ status: 'Paid',
+ value: '$4752.66',
+ earning: '$546.63',
+ },
+ {
+ id: 32,
+ user: 'Mycah Gotcher',
+ email: 'mgotcherv@yellowbook.com',
+ avatar: avatar1,
+ referredId: 7944,
+ status: 'Unpaid',
+ value: '$5959.05',
+ earning: '$888.10',
+ },
+ {
+ id: 33,
+ user: 'Garv Scruton',
+ email: 'gscrutonw@sun.com',
+ avatar: avatar13,
+ referredId: 6876,
+ status: 'Unpaid',
+ value: '$6588.37',
+ earning: '$680.51',
+ },
+ {
+ id: 34,
+ user: 'Renell Gurnett',
+ email: 'rgurnettx@businessweek.com',
+ avatar: '',
+ referredId: 7802,
+ status: 'Rejected',
+ value: '$7542.30',
+ earning: '$208.96',
+ },
+ {
+ id: 35,
+ user: 'Toinette Kilgrew',
+ email: 'tkilgrewy@wikispaces.com',
+ avatar: avatar15,
+ referredId: 6946,
+ status: 'Paid',
+ value: '$4447.48',
+ earning: '$410.48',
+ },
+ {
+ id: 36,
+ user: 'Corinne Cockshtt',
+ email: 'ccockshttz@house.gov',
+ avatar: avatar7,
+ referredId: 1372,
+ status: 'Paid',
+ value: '$3700.16',
+ earning: '$858.94',
+ },
+ {
+ id: 37,
+ user: 'Isis Yurkiewicz',
+ email: 'iyurkiewicz10@addthis.com',
+ avatar: avatar4,
+ referredId: 2384,
+ status: 'Unpaid',
+ value: '$7456.86',
+ earning: '$280.52',
+ },
+ {
+ id: 38,
+ user: 'Gerianna Nott',
+ email: 'gnott11@youtu.be',
+ avatar: avatar5,
+ referredId: 1971,
+ status: 'Paid',
+ value: '$5563.94',
+ earning: '$515.34',
+ },
+ {
+ id: 39,
+ user: 'Calli Mewes',
+ email: 'cmewes12@mit.edu',
+ avatar: avatar13,
+ referredId: 7323,
+ status: 'Unpaid',
+ value: '$7400.29',
+ earning: '$167.44',
+ },
+ {
+ id: 40,
+ user: 'Sonnnie Keeltagh',
+ email: 'skeeltagh13@typepad.com',
+ avatar: avatar7,
+ referredId: 5719,
+ status: 'Paid',
+ value: '$1977.34',
+ earning: '$652.01',
+ },
+ {
+ id: 41,
+ user: 'Penelope Hause',
+ email: 'phause14@netlog.com',
+ avatar: avatar3,
+ referredId: 9347,
+ status: 'Paid',
+ value: '$2155.12',
+ earning: '$101.49',
+ },
+ {
+ id: 42,
+ user: 'Dannie Romeo',
+ email: 'dromeo15@ask.com',
+ avatar: '',
+ referredId: 1559,
+ status: 'Rejected',
+ value: '$7110.30',
+ earning: '$95.40',
+ },
+ {
+ id: 43,
+ user: 'Keely Giannazzi',
+ email: 'kgiannazzi16@mit.edu',
+ avatar: avatar8,
+ referredId: 3307,
+ status: 'Paid',
+ value: '$2178.00',
+ earning: '$173.10',
+ },
+ {
+ id: 44,
+ user: 'Kassia Mottini',
+ email: 'kmottini17@usa.gov',
+ avatar: avatar7,
+ referredId: 4426,
+ status: 'Rejected',
+ value: '$6921.60',
+ earning: '$365.93',
+ },
+ {
+ id: 45,
+ user: 'Burr Scrauniage',
+ email: 'bscrauniage18@wunderground.com',
+ avatar: avatar8,
+ referredId: 3570,
+ status: 'Paid',
+ value: '$6891.09',
+ earning: '$900.25',
+ },
+
+ ],
+ orderData: [
+ {
+ id: 1,
+ order: 5434,
+ customer: 'Gabrielle Feyer',
+ email: 'gfeyer0@nyu.edu',
+ avatar: avatar8,
+ payment: 1,
+ status: 'Delivered',
+ spent: 73.98,
+ method: 'paypalLogo',
+ date: '5/16/2022',
+ time: '2:11 AM',
+ methodNumber: 6522,
+ },
+ {
+ id: 2,
+ order: 6745,
+ customer: 'Jackson Deignan',
+ email: 'jdeignan1@dell.com',
+ avatar: avatar8,
+ payment: 3,
+ status: 'Delivered',
+ spent: 100.39,
+ method: 'paypalLogo',
+ date: '5/3/2023',
+ time: '7:26 PM',
+ methodNumber: 7538,
+ },
+ {
+ id: 3,
+ order: 6087,
+ customer: 'Tanya Crum',
+ email: 'tcrum2@yandex.ru',
+ avatar: avatar7,
+ payment: 4,
+ status: 'Ready to Pickup',
+ spent: 809.26,
+ method: 'mastercard',
+ date: '12/15/2022',
+ time: '6:51 PM',
+ methodNumber: 5170,
+ },
+ {
+ id: 4,
+ order: 7825,
+ customer: 'Dallis Dillestone',
+ email: 'ddillestone3@archive.org',
+ avatar: avatar4,
+ payment: 3,
+ status: 'Ready to Pickup',
+ spent: 617.64,
+ method: 'paypalLogo',
+ date: '8/5/2022',
+ time: '9:18 PM',
+ methodNumber: 1748,
+ },
+ {
+ id: 5,
+ order: 5604,
+ customer: 'Conan Kennham',
+ email: 'ckennham4@cnn.com',
+ avatar: avatar9,
+ payment: 3,
+ status: 'Delivered',
+ spent: 384.41,
+ method: 'mastercard',
+ date: '6/18/2022',
+ time: '3:34 AM',
+ methodNumber: 6425,
+ },
+ {
+ id: 6,
+ order: 5390,
+ customer: 'Daven Brocket',
+ email: 'dbrocket5@epa.gov',
+ avatar: avatar13,
+ payment: 3,
+ status: 'Out for Delivery',
+ spent: 162.85,
+ method: 'paypalLogo',
+ date: '10/14/2022',
+ time: '6:12 PM',
+ methodNumber: 1694,
+ },
+ {
+ id: 7,
+ order: 7279,
+ customer: 'Rex Farbrace',
+ email: 'rfarbrace6@sourceforge.net',
+ avatar: avatar2,
+ payment: 2,
+ status: 'Out for Delivery',
+ spent: 591.47,
+ method: 'mastercard',
+ date: '8/8/2022',
+ time: '6:09 PM',
+ methodNumber: 1883,
+ },
+ {
+ id: 8,
+ order: 7003,
+ customer: 'Tann Biaggetti',
+ email: 'tbiaggetti7@eepurl.com',
+ avatar: avatar8,
+ payment: 4,
+ status: 'Delivered',
+ spent: 664.51,
+ method: 'mastercard',
+ date: '6/10/2022',
+ time: '12:59 PM',
+ methodNumber: 5047,
+ },
+ {
+ id: 9,
+ order: 8632,
+ customer: 'Abagael Drogan',
+ email: 'adrogan8@storify.com',
+ avatar: avatar11,
+ payment: 4,
+ status: 'Dispatched',
+ spent: 717.72,
+ method: 'paypalLogo',
+ date: '10/25/2022',
+ time: '10:48 AM',
+ methodNumber: 1945,
+ },
+ {
+ id: 10,
+ order: 8501,
+ customer: 'Esme Sangwin',
+ email: 'esangwin9@taobao.com',
+ avatar: '',
+ payment: 3,
+ status: 'Ready to Pickup',
+ spent: 477.42,
+ method: 'mastercard',
+ date: '11/2/2022',
+ time: '2:19 PM',
+ methodNumber: 3526,
+ },
+ {
+ id: 11,
+ order: 6498,
+ customer: 'Jarib Siverns',
+ email: 'jsivernsa@dailymail.co.uk',
+ avatar: '',
+ payment: 4,
+ status: 'Out for Delivery',
+ spent: 71.42,
+ method: 'mastercard',
+ date: '8/25/2022',
+ time: '8:15 PM',
+ methodNumber: 8325,
+ },
+ {
+ id: 12,
+ order: 7820,
+ customer: 'Christie Le Moucheux',
+ email: 'cleb@wikia.com',
+ avatar: avatar8,
+ payment: 1,
+ status: 'Delivered',
+ spent: 894.55,
+ method: 'paypalLogo',
+ date: '11/3/2022',
+ time: '11:31 AM',
+ methodNumber: 2034,
+ },
+ {
+ id: 13,
+ order: 8229,
+ customer: 'Debby Albury',
+ email: 'dalburyc@homestead.com',
+ avatar: '',
+ payment: 2,
+ status: 'Delivered',
+ spent: 279.80,
+ method: 'mastercard',
+ date: '3/21/2023',
+ time: '3:28 PM',
+ methodNumber: 2751,
+ },
+ {
+ id: 14,
+ order: 9076,
+ customer: 'Alexia Speaks',
+ email: 'aspeaksd@omniture.com',
+ avatar: '',
+ payment: 2,
+ status: 'Dispatched',
+ spent: 156.41,
+ method: 'paypalLogo',
+ date: '11/26/2022',
+ time: '9:16 PM',
+ methodNumber: 3234,
+ },
+ {
+ id: 15,
+ order: 6045,
+ customer: 'Orel Leamy',
+ email: 'oleamye@cbc.ca',
+ avatar: '',
+ payment: 2,
+ status: 'Delivered',
+ spent: 614.39,
+ method: 'mastercard',
+ date: '11/20/2022',
+ time: '11:58 PM',
+ methodNumber: 5209,
+ },
+ {
+ id: 16,
+ order: 8005,
+ customer: 'Maurits Nealey',
+ email: 'mnealeyf@japanpost.jp',
+ avatar: avatar7,
+ payment: 1,
+ status: 'Delivered',
+ spent: 203.72,
+ method: 'mastercard',
+ date: '4/22/2023',
+ time: '3:01 PM',
+ methodNumber: 1555,
+ },
+ {
+ id: 17,
+ order: 6917,
+ customer: 'Emmalee Mason',
+ email: 'emasong@rakuten.co.jp',
+ avatar: '',
+ payment: 4,
+ status: 'Dispatched',
+ spent: 491.83,
+ method: 'mastercard',
+ date: '9/1/2022',
+ time: '10:31 PM',
+ methodNumber: 7013,
+ },
+ {
+ id: 18,
+ order: 6918,
+ customer: 'Tibold Schops',
+ email: 'tschopsh@reference.com',
+ avatar: avatar7,
+ payment: 4,
+ status: 'Out for Delivery',
+ spent: 708.43,
+ method: 'paypalLogo',
+ date: '6/15/2022',
+ time: '11:03 AM',
+ methodNumber: 4636,
+ },
+ {
+ id: 19,
+ order: 8733,
+ customer: 'Godwin Greatbanks',
+ email: 'ggreatbanksi@guardian.co.uk',
+ avatar: '',
+ payment: 2,
+ status: 'Out for Delivery',
+ spent: 849.78,
+ method: 'paypalLogo',
+ date: '8/31/2022',
+ time: '10:02 AM',
+ methodNumber: 6846,
+ },
+ {
+ id: 20,
+ order: 6630,
+ customer: 'Conn Cathery',
+ email: 'ccatheryj@w3.org',
+ avatar: '',
+ payment: 2,
+ status: 'Dispatched',
+ spent: 855.31,
+ method: 'paypalLogo',
+ date: '1/2/2023',
+ time: '4:35 PM',
+ methodNumber: 4813,
+ },
+ {
+ id: 21,
+ order: 8963,
+ customer: 'Riccardo McKerton',
+ email: 'rmckertonk@gravatar.com',
+ avatar: avatar2,
+ payment: 2,
+ status: 'Dispatched',
+ spent: 458.76,
+ method: 'paypalLogo',
+ date: '9/17/2022',
+ time: '6:00 AM',
+ methodNumber: 8197,
+ },
+ {
+ id: 22,
+ order: 6916,
+ customer: 'Isa Cartmel',
+ email: 'icartmell@scientificamerican.com',
+ avatar: avatar10,
+ payment: 3,
+ status: 'Dispatched',
+ spent: 914.48,
+ method: 'paypalLogo',
+ date: '12/21/2022',
+ time: '8:35 PM',
+ methodNumber: 2844,
+ },
+ {
+ id: 23,
+ order: 6647,
+ customer: 'Yoko Beetles',
+ email: 'ybeetlesm@discovery.com',
+ avatar: avatar15,
+ payment: 1,
+ status: 'Delivered',
+ spent: 948.07,
+ method: 'mastercard',
+ date: '1/24/2023',
+ time: '12:01 AM',
+ methodNumber: 2562,
+ },
+ {
+ id: 24,
+ order: 8044,
+ customer: 'Nowell Cornford',
+ email: 'ncornfordn@sogou.com',
+ avatar: avatar5,
+ payment: 4,
+ status: 'Ready to Pickup',
+ spent: 525.60,
+ method: 'paypalLogo',
+ date: '8/22/2022',
+ time: '6:36 PM',
+ methodNumber: 2030,
+ },
+ {
+ id: 25,
+ order: 9879,
+ customer: 'Brandy McIlvenna',
+ email: 'bmcilvennao@51.la',
+ avatar: '',
+ payment: 1,
+ status: 'Out for Delivery',
+ spent: 100.18,
+ method: 'mastercard',
+ date: '12/23/2022',
+ time: '7:14 AM',
+ methodNumber: 4686,
+ },
+ {
+ id: 26,
+ order: 5551,
+ customer: 'Zondra Klimkin',
+ email: 'zklimkinp@ed.gov',
+ avatar: avatar9,
+ payment: 3,
+ status: 'Delivered',
+ spent: 463.32,
+ method: 'mastercard',
+ date: '12/20/2022',
+ time: '12:01 PM',
+ methodNumber: 6209,
+ },
+ {
+ id: 27,
+ order: 5905,
+ customer: 'Elyn Aizic',
+ email: 'eaizicq@live.com',
+ avatar: '',
+ payment: 4,
+ status: 'Dispatched',
+ spent: 581.81,
+ method: 'mastercard',
+ date: '6/1/2022',
+ time: '2:31 AM',
+ methodNumber: 7031,
+ },
+ {
+ id: 28,
+ order: 7616,
+ customer: 'Leoine Talbot',
+ email: 'ltalbotr@prweb.com',
+ avatar: '',
+ payment: 1,
+ status: 'Delivered',
+ spent: 118.75,
+ method: 'paypalLogo',
+ date: '10/13/2022',
+ time: '12:57 AM',
+ methodNumber: 4387,
+ },
+ {
+ id: 29,
+ order: 6624,
+ customer: 'Fayre Screech',
+ email: 'fscreechs@army.mil',
+ avatar: '',
+ payment: 3,
+ status: 'Out for Delivery',
+ spent: 774.91,
+ method: 'mastercard',
+ date: '4/17/2023',
+ time: '6:43 PM',
+ methodNumber: 2077,
+ },
+ {
+ id: 30,
+ order: 8653,
+ customer: 'Roxanne Rablen',
+ email: 'rrablent@alexa.com',
+ avatar: '',
+ payment: 1,
+ status: 'Delivered',
+ spent: 212.75,
+ method: 'mastercard',
+ date: '3/23/2023',
+ time: '10:07 PM',
+ methodNumber: 2696,
+ },
+ {
+ id: 31,
+ order: 8076,
+ customer: 'Rebekkah Newsham',
+ email: 'rnewshamu@hhs.gov',
+ avatar: avatar10,
+ payment: 2,
+ status: 'Ready to Pickup',
+ spent: 778.56,
+ method: 'mastercard',
+ date: '7/1/2022',
+ time: '10:37 PM',
+ methodNumber: 8071,
+ },
+ {
+ id: 32,
+ order: 7972,
+ customer: 'Crawford Beart',
+ email: 'cbeartv@senate.gov',
+ avatar: '',
+ payment: 3,
+ status: 'Delivered',
+ spent: 378.74,
+ method: 'mastercard',
+ date: '11/23/2022',
+ time: '6:45 AM',
+ methodNumber: 3993,
+ },
+ {
+ id: 33,
+ order: 6979,
+ customer: 'Cristine Easom',
+ email: 'ceasomw@theguardian.com',
+ avatar: avatar9,
+ payment: 2,
+ status: 'Out for Delivery',
+ spent: 595.84,
+ method: 'mastercard',
+ date: '4/15/2023',
+ time: '10:21 PM',
+ methodNumber: 2356,
+ },
+ {
+ id: 34,
+ order: 9438,
+ customer: 'Bessy Vasechkin',
+ email: 'bvasechkinx@plala.or.jp',
+ avatar: '',
+ payment: 1,
+ status: 'Dispatched',
+ spent: 257.18,
+ method: 'paypalLogo',
+ date: '11/10/2022',
+ time: '8:12 PM',
+ methodNumber: 1776,
+ },
+ {
+ id: 35,
+ order: 5666,
+ customer: 'Joanne Morl',
+ email: 'jmorly@google.fr',
+ avatar: '',
+ payment: 1,
+ status: 'Ready to Pickup',
+ spent: 368.26,
+ method: 'paypalLogo',
+ date: '11/17/2022',
+ time: '2:32 PM',
+ methodNumber: 6276,
+ },
+ {
+ id: 36,
+ order: 7128,
+ customer: 'Cobbie Brameld',
+ email: 'cbrameldz@biglobe.ne.jp',
+ avatar: '',
+ payment: 4,
+ status: 'Delivered',
+ spent: 484.14,
+ method: 'paypalLogo',
+ date: '6/13/2022',
+ time: '9:36 PM',
+ methodNumber: 3876,
+ },
+ {
+ id: 37,
+ order: 5834,
+ customer: 'Turner Braban',
+ email: 'tbraban10@lulu.com',
+ avatar: avatar14,
+ payment: 2,
+ status: 'Delivered',
+ spent: 135.04,
+ method: 'mastercard',
+ date: '10/14/2022',
+ time: '4:39 AM',
+ methodNumber: 2211,
+ },
+ {
+ id: 38,
+ order: 7417,
+ customer: 'Rudd Aisman',
+ email: 'raisman11@huffingtonpost.com',
+ avatar: '',
+ payment: 2,
+ status: 'Delivered',
+ spent: 598.61,
+ method: 'mastercard',
+ date: '9/29/2022',
+ time: '10:31 AM',
+ methodNumber: 1979,
+ },
+ {
+ id: 39,
+ order: 5574,
+ customer: 'Rakel Hearle',
+ email: 'rhearle12@zimbio.com',
+ avatar: avatar8,
+ payment: 1,
+ status: 'Out for Delivery',
+ spent: 612.56,
+ method: 'paypalLogo',
+ date: '11/29/2022',
+ time: '2:59 AM',
+ methodNumber: 8328,
+ },
+ {
+ id: 40,
+ order: 7834,
+ customer: 'Cull Otson',
+ email: 'cotson13@angelfire.com',
+ avatar: avatar10,
+ payment: 4,
+ status: 'Delivered',
+ spent: 413.70,
+ method: 'mastercard',
+ date: '7/23/2022',
+ time: '3:15 PM',
+ methodNumber: 3901,
+ },
+ {
+ id: 41,
+ order: 9877,
+ customer: 'Jedd Lafont',
+ email: 'jlafont14@vimeo.com',
+ avatar: avatar8,
+ payment: 1,
+ status: 'Ready to Pickup',
+ spent: 67.26,
+ method: 'paypalLogo',
+ date: '11/1/2022',
+ time: '8:05 AM',
+ methodNumber: 7245,
+ },
+ {
+ id: 42,
+ order: 5781,
+ customer: 'Maribeth Roffe',
+ email: 'mroffe15@hostgator.com',
+ avatar: avatar6,
+ payment: 1,
+ status: 'Out for Delivery',
+ spent: 697.13,
+ method: 'paypalLogo',
+ date: '9/30/2022',
+ time: '8:03 PM',
+ methodNumber: 8102,
+ },
+ {
+ id: 43,
+ order: 5299,
+ customer: 'Ximenez Callaghan',
+ email: 'xcallaghan16@reuters.com',
+ avatar: avatar6,
+ payment: 2,
+ status: 'Dispatched',
+ spent: 528.17,
+ method: 'mastercard',
+ date: '12/30/2022',
+ time: '12:21 AM',
+ methodNumber: 3075,
+ },
+ {
+ id: 44,
+ order: 6622,
+ customer: 'Oliy Seton',
+ email: 'oseton17@cargocollective.com',
+ avatar: avatar7,
+ payment: 2,
+ status: 'Delivered',
+ spent: 662.07,
+ method: 'paypalLogo',
+ date: '12/29/2022',
+ time: '8:45 PM',
+ methodNumber: 5021,
+ },
+ {
+ id: 45,
+ order: 7387,
+ customer: 'Conroy Conan',
+ email: 'cconan18@jigsy.com',
+ avatar: avatar8,
+ payment: 1,
+ status: 'Delivered',
+ spent: 65.73,
+ method: 'paypalLogo',
+ date: '6/11/2022',
+ time: '10:11 AM',
+ methodNumber: 3954,
+ },
+ {
+ id: 46,
+ order: 5078,
+ customer: 'Elianore Russ',
+ email: 'eruss19@usa.gov',
+ avatar: '',
+ payment: 2,
+ status: 'Ready to Pickup',
+ spent: 741.28,
+ method: 'mastercard',
+ date: '8/28/2022',
+ time: '3:45 PM',
+ methodNumber: 2128,
+ },
+ {
+ id: 47,
+ order: 9631,
+ customer: 'Farlee Gerard',
+ email: 'fgerard1a@mit.edu',
+ avatar: '',
+ payment: 2,
+ status: 'Ready to Pickup',
+ spent: 161.30,
+ method: 'paypalLogo',
+ date: '6/8/2022',
+ time: '4:16 PM',
+ methodNumber: 6781,
+ },
+ {
+ id: 48,
+ order: 7869,
+ customer: 'Gino Fairbrass',
+ email: 'gfairbrass1b@spotify.com',
+ avatar: '',
+ payment: 4,
+ status: 'Ready to Pickup',
+ spent: 644.90,
+ method: 'paypalLogo',
+ date: '6/23/2022',
+ time: '10:36 AM',
+ methodNumber: 5470,
+ },
+ {
+ id: 49,
+ order: 8643,
+ customer: 'Dory Carter',
+ email: 'dcarter1c@sphinn.com',
+ avatar: avatar2,
+ payment: 3,
+ status: 'Delivered',
+ spent: 462.45,
+ method: 'mastercard',
+ date: '11/10/2022',
+ time: '2:45 AM',
+ methodNumber: 4647,
+ },
+ {
+ id: 50,
+ order: 7395,
+ customer: 'Shane Galbreth',
+ email: 'sgalbreth1d@mac.com',
+ avatar: avatar8,
+ payment: 4,
+ status: 'Delivered',
+ spent: 731.58,
+ method: 'mastercard',
+ date: '5/20/2022',
+ time: '8:09 PM',
+ methodNumber: 4113,
+ },
+ {
+ id: 51,
+ order: 7168,
+ customer: 'Alicea Macci',
+ email: 'amacci1e@bbc.co.uk',
+ avatar: '',
+ payment: 1,
+ status: 'Ready to Pickup',
+ spent: 556.94,
+ method: 'mastercard',
+ date: '6/10/2022',
+ time: '4:00 PM',
+ methodNumber: 6798,
+ },
+ {
+ id: 52,
+ order: 5775,
+ customer: 'Terrijo Copello',
+ email: 'tcopello1f@netlog.com',
+ avatar: '',
+ payment: 3,
+ status: 'Dispatched',
+ spent: 687.27,
+ method: 'paypalLogo',
+ date: '6/23/2022',
+ time: '6:41 PM',
+ methodNumber: 3529,
+ },
+ {
+ id: 53,
+ order: 6558,
+ customer: 'Bambi Yerby',
+ email: 'byerby1g@sohu.com',
+ avatar: '',
+ payment: 1,
+ status: 'Out for Delivery',
+ spent: 309.15,
+ method: 'paypalLogo',
+ date: '10/18/2022',
+ time: '8:40 PM',
+ methodNumber: 1664,
+ },
+ {
+ id: 54,
+ order: 7766,
+ customer: 'Corny Linstead',
+ email: 'clinstead1h@icio.us',
+ avatar: '',
+ payment: 4,
+ status: 'Dispatched',
+ spent: 805.73,
+ method: 'paypalLogo',
+ date: '6/25/2022',
+ time: '8:01 AM',
+ methodNumber: 7931,
+ },
+ {
+ id: 55,
+ order: 9305,
+ customer: 'Pauline Pfaffe',
+ email: 'ppfaffe1i@wikia.com',
+ avatar: '',
+ payment: 4,
+ status: 'Ready to Pickup',
+ spent: 769.47,
+ method: 'paypalLogo',
+ date: '4/17/2023',
+ time: '8:05 AM',
+ methodNumber: 8412,
+ },
+ {
+ id: 56,
+ order: 7886,
+ customer: 'Ilka Adanet',
+ email: 'iadanet1j@tripod.com',
+ avatar: '',
+ payment: 4,
+ status: 'Ready to Pickup',
+ spent: 899.35,
+ method: 'paypalLogo',
+ date: '2/2/2023',
+ time: '6:13 PM',
+ methodNumber: 3946,
+ },
+ {
+ id: 57,
+ order: 8333,
+ customer: 'Charlena Sabberton',
+ email: 'csabberton1k@vinaora.com',
+ avatar: '',
+ payment: 3,
+ status: 'Out for Delivery',
+ spent: 201.84,
+ method: 'paypalLogo',
+ date: '6/11/2022',
+ time: '10:15 PM',
+ methodNumber: 3294,
+ },
+ {
+ id: 58,
+ order: 7044,
+ customer: 'Harwell Vallack',
+ email: 'hvallack1l@sakura.ne.jp',
+ avatar: '',
+ payment: 2,
+ status: 'Dispatched',
+ spent: 547.07,
+ method: 'paypalLogo',
+ date: '6/1/2022',
+ time: '1:29 PM',
+ methodNumber: 5571,
+ },
+ {
+ id: 59,
+ order: 5414,
+ customer: 'Juliette Douthwaite',
+ email: 'jdouthwaite1m@marketwatch.com',
+ avatar: '',
+ payment: 2,
+ status: 'Dispatched',
+ spent: 89.46,
+ method: 'mastercard',
+ date: '9/26/2022',
+ time: '11:40 AM',
+ methodNumber: 4380,
+ },
+ {
+ id: 60,
+ order: 7102,
+ customer: 'Nydia Brandel',
+ email: 'nbrandel1n@cnet.com',
+ avatar: '',
+ payment: 3,
+ status: 'Out for Delivery',
+ spent: 417.49,
+ method: 'paypalLogo',
+ date: '2/5/2023',
+ time: '11:42 PM',
+ methodNumber: 5856,
+ },
+ {
+ id: 61,
+ order: 8784,
+ customer: 'Gaby Edy',
+ email: 'gedy1o@latimes.com',
+ avatar: avatar9,
+ payment: 4,
+ status: 'Out for Delivery',
+ spent: 589.37,
+ method: 'mastercard',
+ date: '2/5/2023',
+ time: '8:46 AM',
+ methodNumber: 1923,
+ },
+ {
+ id: 62,
+ order: 9885,
+ customer: 'Lacey Swenson',
+ email: 'lswenson1p@booking.com',
+ avatar: '',
+ payment: 2,
+ status: 'Ready to Pickup',
+ spent: 62.71,
+ method: 'mastercard',
+ date: '9/11/2022',
+ time: '7:41 PM',
+ methodNumber: 4367,
+ },
+ {
+ id: 63,
+ order: 5387,
+ customer: 'Bradan Edgworth',
+ email: 'bedgworth1q@typepad.com',
+ avatar: avatar7,
+ payment: 4,
+ status: 'Out for Delivery',
+ spent: 54.45,
+ method: 'paypalLogo',
+ date: '6/2/2022',
+ time: '11:05 AM',
+ methodNumber: 8829,
+ },
+ {
+ id: 64,
+ order: 5459,
+ customer: 'Ilyssa Egan',
+ email: 'iegan1r@reference.com',
+ avatar: avatar8,
+ payment: 3,
+ status: 'Dispatched',
+ spent: 756.16,
+ method: 'paypalLogo',
+ date: '5/20/2022',
+ time: '12:39 PM',
+ methodNumber: 6971,
+ },
+ {
+ id: 65,
+ order: 8812,
+ customer: 'Duke Jahnel',
+ email: 'djahnel1s@huffingtonpost.com',
+ avatar: avatar7,
+ payment: 2,
+ status: 'Dispatched',
+ spent: 103.71,
+ method: 'mastercard',
+ date: '3/1/2023',
+ time: '10:25 PM',
+ methodNumber: 4305,
+ },
+ {
+ id: 66,
+ order: 7123,
+ customer: 'Christen Dillow',
+ email: 'cdillow1t@businessinsider.com',
+ avatar: '',
+ payment: 1,
+ status: 'Ready to Pickup',
+ spent: 357.17,
+ method: 'mastercard',
+ date: '2/1/2023',
+ time: '4:11 AM',
+ methodNumber: 7385,
+ },
+ {
+ id: 67,
+ order: 8964,
+ customer: 'Hildegaard Ormshaw',
+ email: 'hormshaw1u@amazonaws.com',
+ avatar: '',
+ payment: 1,
+ status: 'Dispatched',
+ spent: 191.57,
+ method: 'mastercard',
+ date: '6/15/2022',
+ time: '7:28 PM',
+ methodNumber: 6469,
+ },
+ {
+ id: 68,
+ order: 8020,
+ customer: 'Merrill Sangwin',
+ email: 'msangwin1v@ted.com',
+ avatar: '',
+ payment: 3,
+ status: 'Delivered',
+ spent: 80.47,
+ method: 'paypalLogo',
+ date: '9/15/2022',
+ time: '9:35 PM',
+ methodNumber: 1464,
+ },
+ {
+ id: 69,
+ order: 7192,
+ customer: 'Niel Kitchingman',
+ email: 'nkitchingman1w@twitpic.com',
+ avatar: '',
+ payment: 1,
+ status: 'Delivered',
+ spent: 759.98,
+ method: 'mastercard',
+ date: '11/24/2022',
+ time: '12:51 PM',
+ methodNumber: 3957,
+ },
+ {
+ id: 70,
+ order: 9941,
+ customer: 'Zacharias Stonhard',
+ email: 'zstonhard1x@ca.gov',
+ avatar: '',
+ payment: 4,
+ status: 'Delivered',
+ spent: 333.83,
+ method: 'paypalLogo',
+ date: '6/20/2022',
+ time: '11:11 AM',
+ methodNumber: 3907,
+ },
+ {
+ id: 71,
+ order: 7786,
+ customer: 'Hirsch Garwood',
+ email: 'hgarwood1y@hhs.gov',
+ avatar: '',
+ payment: 1,
+ status: 'Delivered',
+ spent: 993.07,
+ method: 'paypalLogo',
+ date: '1/30/2023',
+ time: '8:13 AM',
+ methodNumber: 3210,
+ },
+ {
+ id: 72,
+ order: 6890,
+ customer: 'Etienne Duke',
+ email: 'eduke1z@dell.com',
+ avatar: avatar9,
+ payment: 4,
+ status: 'Dispatched',
+ spent: 651.14,
+ method: 'mastercard',
+ date: '8/1/2022',
+ time: '7:24 AM',
+ methodNumber: 3507,
+ },
+ {
+ id: 73,
+ order: 6672,
+ customer: 'Galen Bent',
+ email: 'gbent20@altervista.org',
+ avatar: avatar2,
+ payment: 4,
+ status: 'Out for Delivery',
+ spent: 483.86,
+ method: 'mastercard',
+ date: '5/10/2022',
+ time: '7:51 PM',
+ methodNumber: 7538,
+ },
+ {
+ id: 74,
+ order: 5531,
+ customer: 'Cletus Arias',
+ email: 'carias21@rambler.ru',
+ avatar: avatar9,
+ payment: 3,
+ status: 'Delivered',
+ spent: 609.47,
+ method: 'mastercard',
+ date: '8/20/2022',
+ time: '3:21 AM',
+ methodNumber: 5851,
+ },
+ {
+ id: 75,
+ order: 9041,
+ customer: 'Gilbertina Manjin',
+ email: 'gmanjin22@blogtalkradio.com',
+ avatar: '',
+ payment: 2,
+ status: 'Dispatched',
+ spent: 593.65,
+ method: 'mastercard',
+ date: '9/19/2022',
+ time: '5:23 AM',
+ methodNumber: 8332,
+ },
+ {
+ id: 76,
+ order: 9521,
+ customer: 'Helena Airds',
+ email: 'hairds23@facebook.com',
+ avatar: avatar7,
+ payment: 4,
+ status: 'Out for Delivery',
+ spent: 897.84,
+ method: 'mastercard',
+ date: '1/13/2023',
+ time: '1:41 PM',
+ methodNumber: 8564,
+ },
+ {
+ id: 77,
+ order: 9793,
+ customer: 'Bonny Tebbutt',
+ email: 'btebbutt24@clickbank.net',
+ avatar: '',
+ payment: 3,
+ status: 'Ready to Pickup',
+ spent: 856.58,
+ method: 'paypalLogo',
+ date: '1/23/2023',
+ time: '6:10 AM',
+ methodNumber: 2150,
+ },
+ {
+ id: 78,
+ order: 6741,
+ customer: 'Garreth Rubinowitz',
+ email: 'grubinowitz25@unblog.fr',
+ avatar: avatar8,
+ payment: 2,
+ status: 'Ready to Pickup',
+ spent: 191.99,
+ method: 'paypalLogo',
+ date: '8/24/2022',
+ time: '2:01 PM',
+ methodNumber: 4148,
+ },
+ {
+ id: 79,
+ order: 6602,
+ customer: 'Lotta Martinie',
+ email: 'lmartinie26@ovh.net',
+ avatar: avatar8,
+ payment: 2,
+ status: 'Out for Delivery',
+ spent: 790.09,
+ method: 'paypalLogo',
+ date: '6/25/2022',
+ time: '12:54 AM',
+ methodNumber: 4538,
+ },
+ {
+ id: 80,
+ order: 9682,
+ customer: 'Danna Goldis',
+ email: 'dgoldis27@tinypic.com',
+ avatar: '',
+ payment: 2,
+ status: 'Dispatched',
+ spent: 121.21,
+ method: 'mastercard',
+ date: '1/11/2023',
+ time: '4:33 PM',
+ methodNumber: 1974,
+ },
+ {
+ id: 81,
+ order: 6256,
+ customer: 'Ronica McDuffie',
+ email: 'rmcduffie28@dagondesign.com',
+ avatar: '',
+ payment: 4,
+ status: 'Delivered',
+ spent: 783.05,
+ method: 'mastercard',
+ date: '7/12/2022',
+ time: '1:54 AM',
+ methodNumber: 6563,
+ },
+ {
+ id: 82,
+ order: 6265,
+ customer: 'Clarice Biesty',
+ email: 'cbiesty29@hp.com',
+ avatar: '',
+ payment: 2,
+ status: 'Dispatched',
+ spent: 905.31,
+ method: 'paypalLogo',
+ date: '9/7/2022',
+ time: '5:58 AM',
+ methodNumber: 7367,
+ },
+ {
+ id: 83,
+ order: 7330,
+ customer: 'Georgetta Hawkins',
+ email: 'ghawkins2a@shinystat.com',
+ avatar: '',
+ payment: 4,
+ status: 'Out for Delivery',
+ spent: 670.50,
+ method: 'mastercard',
+ date: '12/9/2022',
+ time: '4:22 AM',
+ methodNumber: 4789,
+ },
+ {
+ id: 84,
+ order: 6342,
+ customer: 'Hamid Gosford',
+ email: 'hgosford2b@youtu.be',
+ avatar: avatar7,
+ payment: 2,
+ status: 'Out for Delivery',
+ spent: 520.17,
+ method: 'paypalLogo',
+ date: '5/26/2022',
+ time: '3:15 PM',
+ methodNumber: 2733,
+ },
+ {
+ id: 85,
+ order: 9620,
+ customer: 'Marnia Scamwell',
+ email: 'mscamwell2c@guardian.co.uk',
+ avatar: avatar3,
+ payment: 4,
+ status: 'Ready to Pickup',
+ spent: 77.59,
+ method: 'paypalLogo',
+ date: '9/10/2022',
+ time: '11:40 AM',
+ methodNumber: 3822,
+ },
+ {
+ id: 86,
+ order: 5699,
+ customer: 'Casie Cratere',
+ email: 'ccratere2d@baidu.com',
+ avatar: '',
+ payment: 3,
+ status: 'Delivered',
+ spent: 429.80,
+ method: 'mastercard',
+ date: '9/22/2022',
+ time: '11:52 PM',
+ methodNumber: 2925,
+ },
+ {
+ id: 87,
+ order: 7289,
+ customer: 'Edik Whytock',
+ email: 'ewhytock2e@vimeo.com',
+ avatar: '',
+ payment: 3,
+ status: 'Ready to Pickup',
+ spent: 838.25,
+ method: 'mastercard',
+ date: '8/4/2022',
+ time: '9:12 PM',
+ methodNumber: 6240,
+ },
+ {
+ id: 88,
+ order: 9780,
+ customer: 'Wylie Marryatt',
+ email: 'wmarryatt2f@economist.com',
+ avatar: '',
+ payment: 3,
+ status: 'Out for Delivery',
+ spent: 308.07,
+ method: 'mastercard',
+ date: '3/2/2023',
+ time: '10:00 AM',
+ methodNumber: 7909,
+ },
+ {
+ id: 89,
+ order: 5859,
+ customer: 'Eydie Vogelein',
+ email: 'evogelein2g@forbes.com',
+ avatar: '',
+ payment: 4,
+ status: 'Ready to Pickup',
+ spent: 447.29,
+ method: 'paypalLogo',
+ date: '4/29/2023',
+ time: '9:52 AM',
+ methodNumber: 5475,
+ },
+ {
+ id: 90,
+ order: 9957,
+ customer: 'Milt Whitear',
+ email: 'mwhitear2h@instagram.com',
+ avatar: '',
+ payment: 4,
+ status: 'Dispatched',
+ spent: 59.28,
+ method: 'mastercard',
+ date: '11/29/2022',
+ time: '6:53 PM',
+ methodNumber: 4371,
+ },
+ {
+ id: 91,
+ order: 7094,
+ customer: 'Damara Figgins',
+ email: 'dfiggins2i@de.vu',
+ avatar: '',
+ payment: 2,
+ status: 'Delivered',
+ spent: 62.62,
+ method: 'mastercard',
+ date: '6/29/2022',
+ time: '6:51 AM',
+ methodNumber: 8321,
+ },
+ {
+ id: 92,
+ order: 7280,
+ customer: 'Sibley Braithwait',
+ email: 'sbraithwait2j@webmd.com',
+ avatar: '',
+ payment: 1,
+ status: 'Ready to Pickup',
+ spent: 554.91,
+ method: 'mastercard',
+ date: '12/6/2022',
+ time: '2:11 AM',
+ methodNumber: 8535,
+ },
+ {
+ id: 93,
+ order: 7931,
+ customer: 'Octavius Whitchurch',
+ email: 'owhitchurch2k@google.ca',
+ avatar: avatar7,
+ payment: 3,
+ status: 'Dispatched',
+ spent: 383.52,
+ method: 'mastercard',
+ date: '12/26/2022',
+ time: '9:49 AM',
+ methodNumber: 8585,
+ },
+ {
+ id: 94,
+ order: 8767,
+ customer: 'Lyndsey Dorey',
+ email: 'ldorey2l@barnesandnoble.com',
+ avatar: avatar2,
+ payment: 3,
+ status: 'Ready to Pickup',
+ spent: 738.42,
+ method: 'mastercard',
+ date: '8/29/2022',
+ time: '5:24 AM',
+ methodNumber: 3432,
+ },
+ {
+ id: 95,
+ order: 6111,
+ customer: 'Chad Cock',
+ email: 'ccock2m@g.co',
+ avatar: '',
+ payment: 4,
+ status: 'Ready to Pickup',
+ spent: 669.45,
+ method: 'mastercard',
+ date: '3/11/2023',
+ time: '10:43 AM',
+ methodNumber: 1014,
+ },
+ {
+ id: 96,
+ order: 5911,
+ customer: 'Hilliard Merck',
+ email: 'hmerck2n@printfriendly.com',
+ avatar: '',
+ payment: 4,
+ status: 'Out for Delivery',
+ spent: 237.91,
+ method: 'paypalLogo',
+ date: '8/14/2022',
+ time: '3:26 PM',
+ methodNumber: 3196,
+ },
+ {
+ id: 97,
+ order: 7064,
+ customer: 'Carmon Vasiljevic',
+ email: 'cvasiljevic2o@odnoklassniki.ru',
+ avatar: avatar8,
+ payment: 3,
+ status: 'Delivered',
+ spent: 595.25,
+ method: 'paypalLogo',
+ date: '3/20/2023',
+ time: '3:11 PM',
+ methodNumber: 4892,
+ },
+ {
+ id: 98,
+ order: 8114,
+ customer: 'Ulysses Goodlife',
+ email: 'ugoodlife2p@blogger.com',
+ avatar: avatar2,
+ payment: 3,
+ status: 'Ready to Pickup',
+ spent: 746.38,
+ method: 'mastercard',
+ date: '4/8/2023',
+ time: '3:39 AM',
+ methodNumber: 4509,
+ },
+ {
+ id: 99,
+ order: 7189,
+ customer: 'Boycie Hartmann',
+ email: 'bhartmann2q@addthis.com',
+ avatar: '',
+ payment: 3,
+ status: 'Out for Delivery',
+ spent: 704.86,
+ method: 'paypalLogo',
+ date: '1/2/2023',
+ time: '8:55 PM',
+ methodNumber: 6424,
+ },
+ {
+ id: 100,
+ order: 9042,
+ customer: 'Chere Schofield',
+ email: 'cschofield2r@ucsd.edu',
+ avatar: '',
+ payment: 2,
+ status: 'Ready to Pickup',
+ spent: 815.77,
+ method: 'mastercard',
+ date: '2/1/2023',
+ time: '4:12 PM',
+ methodNumber: 3949,
+ },
+ ],
+ customerData: [
+ {
+ id: 1,
+ customer: 'Stanfield Baser',
+ customerId: 879861,
+ email: 'sbaser0@boston.com',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'lk',
+ order: 157,
+ totalSpent: 2074.22,
+ avatar: avatar1,
+ },
+ {
+ id: 2,
+ customer: 'Laurie Dax',
+ customerId: 178408,
+ email: 'ldax1@lycos.com',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'ru',
+ order: 663,
+ totalSpent: 2404.19,
+ avatar: avatar2,
+ },
+ {
+ id: 3,
+ customer: 'Maxine Kenrick',
+ customerId: 221092,
+ email: 'mkenrick2@eepurl.com',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'gt',
+ order: 64,
+ totalSpent: 8821.40,
+ avatar: avatar3,
+ },
+ {
+ id: 4,
+ customer: 'Harman Burkill',
+ customerId: 645579,
+ email: 'hburkill3@drupal.org',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'pt',
+ order: 640,
+ totalSpent: 5294.35,
+ avatar: avatar4,
+ },
+ {
+ id: 5,
+ customer: 'Aubrey Borrow',
+ customerId: 288765,
+ email: 'aborrow4@jiathis.com',
+ country: 'France',
+ countryFlag: frFlag,
+ countryCode: 'fr',
+ order: 184,
+ totalSpent: 1003.30,
+ avatar: avatar5,
+ },
+ {
+ id: 6,
+ customer: 'Nester Fridd',
+ customerId: 321942,
+ email: 'nfridd5@cdbaby.com',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cn',
+ order: 965,
+ totalSpent: 3876.92,
+ avatar: avatar6,
+ },
+ {
+ id: 7,
+ customer: 'Lizzie Nicholes',
+ customerId: 516109,
+ email: 'lnicholes6@rediff.com',
+ country: 'Brazil',
+ countryFlag: brFlag,
+ countryCode: 'br',
+ order: 514,
+ totalSpent: 7936.85,
+ avatar: avatar7,
+ },
+ {
+ id: 8,
+ customer: 'Amabel Scullion',
+ customerId: 403666,
+ email: 'ascullion7@wiley.com',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'gt',
+ order: 584,
+ totalSpent: 4150.97,
+ avatar: avatar8,
+ },
+ {
+ id: 9,
+ customer: 'Zeke Arton',
+ customerId: 895280,
+ email: 'zarton8@weibo.com',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'ua',
+ order: 539,
+ totalSpent: 3430.05,
+ avatar: avatar9,
+ },
+ {
+ id: 10,
+ customer: 'Rosy Medlicott',
+ customerId: 199195,
+ email: 'rmedlicott9@amazon.com',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'ru',
+ order: 4,
+ totalSpent: 8646.75,
+ avatar: avatar10,
+ },
+ {
+ id: 11,
+ customer: 'Elene Esp',
+ customerId: 317063,
+ email: 'eespa@soundcloud.com',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cn',
+ order: 602,
+ totalSpent: 5807.99,
+ avatar: avatar11,
+ },
+ {
+ id: 12,
+ customer: 'Cal Lavington',
+ customerId: 999318,
+ email: 'clavingtonb@nps.gov',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'bo',
+ order: 779,
+ totalSpent: 6677.41,
+ avatar: avatar12,
+ },
+ {
+ id: 13,
+ customer: 'Merrick Antcliffe',
+ customerId: 804513,
+ email: 'mantcliffec@php.net',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cn',
+ order: 267,
+ totalSpent: 3340.41,
+ avatar: avatar13,
+ },
+ {
+ id: 14,
+ customer: 'Price Tremathack',
+ customerId: 155681,
+ email: 'ptremathackd@amazon.com',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'ru',
+ order: 611,
+ totalSpent: 5768.17,
+ avatar: avatar14,
+ },
+ {
+ id: 15,
+ customer: 'Leesa Habershaw',
+ customerId: 490182,
+ email: 'lhabershawe@washingtonpost.com',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'jp',
+ order: 90,
+ totalSpent: 4488.03,
+ avatar: avatar15,
+ },
+ {
+ id: 16,
+ customer: 'Jeana Quincey',
+ customerId: 760428,
+ email: 'jquinceyf@yolasite.com',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'ua',
+ order: 597,
+ totalSpent: 6936.49,
+ avatar: avatar1,
+ },
+ {
+ id: 17,
+ customer: 'Emmott Hise',
+ customerId: 675190,
+ email: 'ehiseg@usatoday.com',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cn',
+ order: 30,
+ totalSpent: 7994.11,
+ avatar: avatar2,
+ },
+ {
+ id: 18,
+ customer: 'Griffith Weeke',
+ customerId: 601134,
+ email: 'gweekeh@dyndns.org',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'id',
+ order: 322,
+ totalSpent: 5710.25,
+ avatar: avatar3,
+ },
+ {
+ id: 19,
+ customer: 'Ali Barnardo',
+ customerId: 908144,
+ email: 'abarnardoi@forbes.com',
+ country: 'France',
+ countryFlag: frFlag,
+ countryCode: 'mx',
+ order: 863,
+ totalSpent: 7537.74,
+ avatar: avatar4,
+ },
+ {
+ id: 20,
+ customer: 'Powell Wornham',
+ customerId: 528288,
+ email: 'pwornhamj@ca.gov',
+ country: 'France',
+ countryFlag: frFlag,
+ countryCode: 'cz',
+ order: 812,
+ totalSpent: 7801.46,
+ avatar: avatar5,
+ },
+ {
+ id: 21,
+ customer: 'Miltie Ganniclifft',
+ customerId: 573210,
+ email: 'mganniclifftk@bandcamp.com',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'ru',
+ order: 705,
+ totalSpent: 1371.44,
+ avatar: avatar6,
+ },
+ {
+ id: 22,
+ customer: 'Tabbatha Duinbleton',
+ customerId: 473511,
+ email: 'tduinbletonl@mediafire.com',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'us',
+ order: 956,
+ totalSpent: 8632.52,
+ avatar: avatar7,
+ },
+ {
+ id: 23,
+ customer: 'Maurizia Abel',
+ customerId: 676743,
+ email: 'mabelm@xrea.com',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'my',
+ order: 326,
+ totalSpent: 7241.74,
+ avatar: avatar8,
+ },
+ {
+ id: 24,
+ customer: 'Amargo Fliege',
+ customerId: 381698,
+ email: 'afliegen@storify.com',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'id',
+ order: 748,
+ totalSpent: 5821.27,
+ avatar: avatar9,
+ },
+ {
+ id: 25,
+ customer: 'Shayla Tarplee',
+ customerId: 865989,
+ email: 'starpleeo@ovh.net',
+ country: 'India',
+ countryFlag: inFlag,
+ countryCode: 'ng',
+ order: 535,
+ totalSpent: 900.54,
+ avatar: avatar10,
+ },
+ {
+ id: 26,
+ customer: 'Kassey Cutting',
+ customerId: 545661,
+ email: 'kcuttingp@dion.ne.jp',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'id',
+ order: 645,
+ totalSpent: 3200.38,
+ avatar: avatar11,
+ },
+ {
+ id: 27,
+ customer: 'Blaire Hillaby',
+ customerId: 408852,
+ email: 'bhillabyq@123-reg.co.uk',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cl',
+ order: 709,
+ totalSpent: 376.46,
+ avatar: avatar12,
+ },
+ {
+ id: 28,
+ customer: 'Taryn Ducker',
+ customerId: 486325,
+ email: 'tduckerr@tamu.edu',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'bt',
+ order: 535,
+ totalSpent: 3654.39,
+ avatar: avatar13,
+ },
+ {
+ id: 29,
+ customer: 'Maddie Witherop',
+ customerId: 137049,
+ email: 'mwitherops@bing.com',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cn',
+ order: 763,
+ totalSpent: 1136.68,
+ avatar: avatar14,
+ },
+ {
+ id: 30,
+ customer: 'Brooke Pattemore',
+ customerId: 985599,
+ email: 'bpattemoret@techcrunch.com',
+ country: 'Brazil',
+ countryFlag: brFlag,
+ countryCode: 'br',
+ order: 63,
+ totalSpent: 1955.91,
+ avatar: avatar15,
+ },
+ {
+ id: 31,
+ customer: 'Mordy Dockerty',
+ customerId: 178466,
+ email: 'mdockertyu@umn.edu',
+ country: 'Brazil',
+ countryFlag: brFlag,
+ countryCode: 'se',
+ order: 452,
+ totalSpent: 191.11,
+ avatar: avatar1,
+ },
+ {
+ id: 32,
+ customer: 'Clemmie Trowel',
+ customerId: 871402,
+ email: 'ctrowelv@feedburner.com',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cl',
+ order: 415,
+ totalSpent: 5285.45,
+ avatar: avatar7,
+ },
+ {
+ id: 33,
+ customer: 'Dehlia Shellard',
+ customerId: 642834,
+ email: 'dshellardw@mediafire.com',
+ country: 'France',
+ countryFlag: frFlag,
+ countryCode: 'cz',
+ order: 651,
+ totalSpent: 4284.88,
+ avatar: avatar2,
+ },
+ {
+ id: 34,
+ customer: 'Neila Juggings',
+ customerId: 471692,
+ email: 'njuggingsx@wp.com',
+ country: 'Brazil',
+ countryFlag: brFlag,
+ countryCode: 'ke',
+ order: 219,
+ totalSpent: 6698.44,
+ avatar: avatar3,
+ },
+ {
+ id: 35,
+ customer: 'Ellsworth Dunnan',
+ customerId: 295906,
+ email: 'edunnany@ucla.edu',
+ country: 'Brazil',
+ countryFlag: brFlag,
+ countryCode: 'br',
+ order: 11,
+ totalSpent: 3496.34,
+ avatar: avatar4,
+ },
+ {
+ id: 36,
+ customer: 'Kassandra Cossentine',
+ customerId: 979702,
+ email: 'kcossentinez@topsy.com',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'id',
+ order: 316,
+ totalSpent: 5328.02,
+ avatar: avatar15,
+ },
+ {
+ id: 37,
+ customer: 'Hugibert Merigeau',
+ customerId: 231745,
+ email: 'hmerigeau10@yelp.com',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'pe',
+ order: 931,
+ totalSpent: 5868.06,
+ avatar: avatar13,
+ },
+ {
+ id: 38,
+ customer: 'Constantina Charter',
+ customerId: 259786,
+ email: 'ccharter11@php.net',
+ country: 'France',
+ countryFlag: frFlag,
+ countryCode: 'cz',
+ order: 30,
+ totalSpent: 4134.97,
+ avatar: avatar1,
+ },
+ {
+ id: 39,
+ customer: 'Charleen Langsbury',
+ customerId: 794373,
+ email: 'clangsbury12@usatoday.com',
+ country: 'Brazil',
+ countryFlag: brFlag,
+ countryCode: 'br',
+ order: 215,
+ totalSpent: 1869.06,
+ avatar: avatar6,
+ },
+ {
+ id: 40,
+ customer: 'Sande Ferrar',
+ customerId: 949483,
+ email: 'sferrar13@weather.com',
+ countryFlag: cnFlag,
+ country: 'China',
+ countryCode: 'bo',
+ order: 696,
+ totalSpent: 2585.57,
+ avatar: avatar7,
+ },
+ {
+ id: 41,
+ customer: 'Lonnard Najara',
+ customerId: 225529,
+ email: 'lnajara14@baidu.com',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'bd',
+ order: 956,
+ totalSpent: 1741.83,
+ avatar: avatar8,
+ },
+ {
+ id: 42,
+ customer: 'Niko Sharpling',
+ customerId: 184711,
+ email: 'nsharpling15@ustream.tv',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cn',
+ order: 172,
+ totalSpent: 1733.66,
+ avatar: avatar9,
+ },
+ {
+ id: 43,
+ customer: 'Malinde Derricoat',
+ customerId: 272711,
+ email: 'mderricoat16@feedburner.com',
+ country: 'India',
+ countryFlag: inFlag,
+ countryCode: 'ng',
+ order: 822,
+ totalSpent: 3930.51,
+ avatar: avatar10,
+ },
+ {
+ id: 44,
+ customer: 'Kelsey Muskett',
+ customerId: 236093,
+ email: 'kmuskett17@lycos.com',
+ country: 'India',
+ countryFlag: inFlag,
+ countryCode: 'ca',
+ order: 51,
+ totalSpent: 4638.94,
+ avatar: avatar11,
+ },
+ {
+ id: 45,
+ customer: 'Darcey Gorghetto',
+ customerId: 582408,
+ email: 'dgorghetto18@dropbox.com',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cn',
+ order: 559,
+ totalSpent: 3614.00,
+ avatar: avatar12,
+ },
+ {
+ id: 46,
+ customer: 'Jody Stace',
+ customerId: 343364,
+ email: 'jstace19@ucsd.edu',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cn',
+ order: 945,
+ totalSpent: 5413.53,
+ avatar: avatar13,
+ },
+ {
+ id: 47,
+ customer: 'Rudyard Prangnell',
+ customerId: 811348,
+ email: 'rprangnell1a@imageshack.us',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'ru',
+ order: 149,
+ totalSpent: 589.72,
+ avatar: avatar1,
+ },
+ {
+ id: 48,
+ customer: 'Tanner Irdale',
+ customerId: 855725,
+ email: 'tirdale1b@plala.or.jp',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cn',
+ order: 438,
+ totalSpent: 8949.26,
+ avatar: avatar14,
+ },
+ {
+ id: 49,
+ customer: 'Eran Galgey',
+ customerId: 804218,
+ email: 'egalgey1c@sakura.ne.jp',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'id',
+ order: 716,
+ totalSpent: 4466.54,
+ avatar: avatar15,
+ },
+ {
+ id: 50,
+ customer: 'Julianne Lavalde',
+ customerId: 670044,
+ email: 'jlavalde1d@twitter.com',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'pl',
+ order: 307,
+ totalSpent: 4382.72,
+ avatar: avatar1,
+ },
+ {
+ id: 51,
+ customer: 'Hernando Stolte',
+ customerId: 804269,
+ email: 'hstolte1e@artisteer.com',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'us',
+ order: 684,
+ totalSpent: 4671.06,
+ avatar: avatar2,
+ },
+ {
+ id: 52,
+ customer: 'Mommy Beardsdale',
+ customerId: 711203,
+ email: 'mbeardsdale1f@technorati.com',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'pt',
+ order: 315,
+ totalSpent: 6261.53,
+ avatar: avatar2,
+ },
+ {
+ id: 53,
+ customer: 'Edsel Wildbore',
+ customerId: 745457,
+ email: 'ewildbore1g@free.fr',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'id',
+ order: 797,
+ totalSpent: 741.89,
+ avatar: avatar3,
+ },
+ {
+ id: 54,
+ customer: 'Iseabal Idney',
+ customerId: 560446,
+ email: 'iidney1h@1688.com',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cn',
+ order: 145,
+ totalSpent: 4360.35,
+ avatar: avatar4,
+ },
+ {
+ id: 55,
+ customer: 'Barbi Jest',
+ customerId: 519637,
+ email: 'bjest1i@com.com',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'co',
+ order: 574,
+ totalSpent: 8328.19,
+ avatar: avatar5,
+ },
+ {
+ id: 56,
+ customer: 'Paddie Grogan',
+ customerId: 915392,
+ country: 'India',
+ countryFlag: inFlag,
+ email: 'pgrogan1j@wikia.com',
+ countryCode: 'eg',
+ order: 948,
+ totalSpent: 9899.06,
+ avatar: avatar6,
+ },
+ {
+ id: 57,
+ customer: 'Lem Exell',
+ customerId: 856323,
+ email: 'lexell1k@nytimes.com',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'tz',
+ order: 541,
+ totalSpent: 9285.65,
+ avatar: avatar7,
+ },
+ {
+ id: 58,
+ customer: 'Starlin Baldassi',
+ customerId: 696538,
+ email: 'sbaldassi1l@squarespace.com',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'ru',
+ order: 99,
+ totalSpent: 3660.80,
+ avatar: avatar8,
+ },
+ {
+ id: 59,
+ customer: 'Marjie Badman',
+ customerId: 875646,
+ email: 'mbadman1m@paypal.com',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'ru',
+ order: 108,
+ totalSpent: 1978.61,
+ avatar: avatar9,
+ },
+ {
+ id: 60,
+ customer: 'Flossi McLaverty',
+ customerId: 617163,
+ email: 'fmclaverty1n@51.la',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cn',
+ order: 483,
+ totalSpent: 772.98,
+ avatar: avatar10,
+ },
+ {
+ id: 61,
+ customer: 'Norri Dillinton',
+ customerId: 123210,
+ email: 'ndillinton1o@bbc.co.uk',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'mk',
+ order: 69,
+ totalSpent: 4227.77,
+ avatar: avatar11,
+ },
+ {
+ id: 62,
+ customer: 'Aloysius Lukas',
+ customerId: 766292,
+ email: 'alukas1p@chicagotribune.com',
+ country: 'France',
+ countryFlag: frFlag,
+ countryCode: 'fr',
+ order: 147,
+ totalSpent: 6637.38,
+ avatar: avatar12,
+ },
+ {
+ id: 63,
+ customer: 'Rochell Cockill',
+ customerId: 100696,
+ email: 'rcockill1q@irs.gov',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'id',
+ order: 444,
+ totalSpent: 1730.64,
+ avatar: avatar13,
+ },
+ {
+ id: 64,
+ customer: 'Emma Greensall',
+ customerId: 792768,
+ email: 'egreensall1r@joomla.org',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'ru',
+ order: 831,
+ totalSpent: 9996.22,
+ avatar: avatar14,
+ },
+ {
+ id: 65,
+ customer: 'Jodi Malyan',
+ customerId: 996390,
+ email: 'jmalyan1s@uiuc.edu',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'fi',
+ order: 311,
+ totalSpent: 3459.82,
+ avatar: avatar15,
+ },
+ {
+ id: 66,
+ customer: 'Zed Rawe',
+ customerId: 343593,
+ email: 'zrawe1t@va.gov',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'ly',
+ order: 473,
+ totalSpent: 5218.22,
+ avatar: avatar10,
+ },
+ {
+ id: 67,
+ customer: 'Thomasine Vasentsov',
+ customerId: 988015,
+ email: 'tvasentsov1u@bloglovin.com',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'ar',
+ order: 752,
+ totalSpent: 5984.53,
+ avatar: avatar11,
+ },
+ {
+ id: 68,
+ customer: 'Janice Large',
+ customerId: 270658,
+ email: 'jlarge1v@dot.gov',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'no',
+ order: 582,
+ totalSpent: 5565.85,
+ avatar: avatar12,
+ },
+ {
+ id: 69,
+ customer: 'Tadeo Blasio',
+ customerId: 208862,
+ email: 'tblasio1w@ustream.tv',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cn',
+ order: 751,
+ totalSpent: 9042.56,
+ avatar: avatar13,
+ },
+ {
+ id: 70,
+ customer: 'Raul Onele',
+ customerId: 895818,
+ email: 'ronele1x@bloglovin.com',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'pe',
+ order: 689,
+ totalSpent: 4508.42,
+ avatar: avatar14,
+ },
+ {
+ id: 71,
+ customer: 'Rolf Comellini',
+ customerId: 292654,
+ email: 'rcomellini1y@soup.io',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'id',
+ order: 837,
+ totalSpent: 6379.88,
+ avatar: avatar15,
+ },
+ {
+ id: 72,
+ customer: 'Feliza Birchenough',
+ customerId: 974560,
+ email: 'fbirchenough1z@a8.net',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'ec',
+ order: 724,
+ totalSpent: 2933.59,
+ avatar: avatar10,
+ },
+ {
+ id: 73,
+ customer: 'Elsinore Daltry',
+ customerId: 152193,
+ email: 'edaltry20@themeforest.net',
+ country: 'Brazil',
+ countryFlag: brFlag,
+ countryCode: 'br',
+ order: 455,
+ totalSpent: 724.68,
+ avatar: avatar2,
+ },
+ {
+ id: 74,
+ customer: 'Roseann Serck',
+ customerId: 772228,
+ email: 'rserck21@about.com',
+ country: 'India',
+ countryFlag: inFlag,
+ countryCode: 'rs',
+ order: 51,
+ totalSpent: 8287.03,
+ avatar: avatar3,
+ },
+ {
+ id: 75,
+ customer: 'Yank Luddy',
+ customerId: 586615,
+ email: 'yluddy22@fema.gov',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'pt',
+ order: 462,
+ totalSpent: 9157.04,
+ avatar: avatar4,
+ },
+ {
+ id: 76,
+ customer: 'Sloan Huskisson',
+ customerId: 762754,
+ email: 'shuskisson23@live.com',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'do',
+ order: 952,
+ totalSpent: 6106.41,
+ avatar: avatar5,
+ },
+ {
+ id: 77,
+ customer: 'Livy Lattimore',
+ customerId: 258911,
+ email: 'llattimore24@sfgate.com',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'id',
+ order: 794,
+ totalSpent: 9053.56,
+ avatar: avatar6,
+ },
+ {
+ id: 78,
+ customer: 'Lanette Deble',
+ customerId: 890051,
+ email: 'ldeble25@spotify.com',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'hk',
+ order: 454,
+ totalSpent: 8180.20,
+ avatar: avatar7,
+ },
+ {
+ id: 79,
+ customer: 'Juliet Gypps',
+ customerId: 493646,
+ email: 'jgypps26@paginegialle.it',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'id',
+ order: 320,
+ totalSpent: 210.84,
+ avatar: avatar8,
+ },
+ {
+ id: 80,
+ customer: 'Tome Joliffe',
+ customerId: 356230,
+ email: 'tjoliffe27@phoca.cz',
+ country: 'France',
+ countryFlag: frFlag,
+ countryCode: 'mx',
+ order: 515,
+ totalSpent: 8571.28,
+ avatar: avatar9,
+ },
+ {
+ id: 81,
+ customer: 'Joel Hamil',
+ customerId: 337022,
+ email: 'jhamil28@state.gov',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'se',
+ order: 906,
+ totalSpent: 620.57,
+ avatar: avatar10,
+ },
+ {
+ id: 82,
+ customer: 'Hagen Digance',
+ customerId: 864064,
+ email: 'hdigance29@odnoklassniki.ru',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'id',
+ order: 519,
+ totalSpent: 332.44,
+ avatar: avatar11,
+ },
+ {
+ id: 83,
+ customer: 'Kristo Wagstaff',
+ customerId: 550008,
+ email: 'kwagstaff2a@fotki.com',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cn',
+ order: 313,
+ totalSpent: 2481.60,
+ avatar: avatar12,
+ },
+ {
+ id: 84,
+ customer: 'Gibbie Dysert',
+ customerId: 778429,
+ email: 'gdysert2b@so-net.ne.jp',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'ni',
+ order: 623,
+ totalSpent: 8466.96,
+ avatar: avatar13,
+ },
+ {
+ id: 85,
+ customer: 'Michale Britton',
+ customerId: 158581,
+ email: 'mbritton2c@cloudflare.com',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cn',
+ order: 835,
+ totalSpent: 9048.31,
+ avatar: avatar14,
+ },
+ {
+ id: 86,
+ customer: 'Hiram Hoys',
+ customerId: 747948,
+ email: 'hhoys2d@msn.com',
+ country: 'India',
+ countryFlag: inFlag,
+ countryCode: 'eg',
+ order: 361,
+ totalSpent: 9159.23,
+ avatar: '',
+ },
+ {
+ id: 87,
+ customer: 'Tobin Bassick',
+ customerId: 165827,
+ email: 'tbassick2e@quantcast.com',
+ country: 'India',
+ countryFlag: inFlag,
+ countryCode: 'jo',
+ order: 527,
+ totalSpent: 9289.92,
+ avatar: avatar1,
+ },
+ {
+ id: 88,
+ customer: 'Mikol Caskey',
+ customerId: 533641,
+ email: 'mcaskey2f@facebook.com',
+ country: 'India',
+ countryFlag: inFlag,
+ countryCode: 'in',
+ order: 25,
+ totalSpent: 4920.68,
+ avatar: avatar2,
+ },
+ {
+ id: 89,
+ customer: 'Cris Donkersley',
+ customerId: 997638,
+ email: 'cdonkersley2g@utexas.edu',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cn',
+ order: 404,
+ totalSpent: 7369.58,
+ avatar: avatar3,
+ },
+ {
+ id: 90,
+ customer: 'Valenka Turbill',
+ customerId: 179914,
+ email: 'vturbill2h@nbcnews.com',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'tm',
+ order: 550,
+ totalSpent: 9083.15,
+ avatar: avatar4,
+ },
+ {
+ id: 91,
+ customer: 'Cherice Fairclough',
+ customerId: 467280,
+ email: 'cfairclough2i@csmonitor.com',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'us',
+ order: 792,
+ totalSpent: 2634.36,
+ avatar: avatar5,
+ },
+ {
+ id: 92,
+ customer: 'Lauritz Ramble',
+ customerId: 140146,
+ email: 'lramble2j@discuz.net',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'ru',
+ order: 605,
+ totalSpent: 9381.83,
+ avatar: avatar6,
+ },
+ {
+ id: 93,
+ customer: 'Goddard Fosher',
+ customerId: 398102,
+ email: 'gfosher2k@example.com',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cn',
+ order: 892,
+ totalSpent: 3957.06,
+ avatar: '',
+ },
+ {
+ id: 94,
+ customer: 'Darby Leming',
+ customerId: 178939,
+ email: 'dleming2l@paginegialle.it',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'pl',
+ order: 894,
+ totalSpent: 1450.01,
+ avatar: avatar11,
+ },
+ {
+ id: 95,
+ customer: 'Paulie Floch',
+ customerId: 855358,
+ email: 'pfloch2m@cnet.com',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'id',
+ order: 866,
+ totalSpent: 8713.73,
+ avatar: avatar12,
+ },
+ {
+ id: 96,
+ customer: 'Raffaello Reaney',
+ customerId: 533341,
+ email: 'rreaney2n@mlb.com',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'cn',
+ order: 145,
+ totalSpent: 8589.40,
+ avatar: avatar13,
+ },
+ {
+ id: 97,
+ customer: 'Inger Weadick',
+ customerId: 902643,
+ email: 'iweadick2o@unesco.org',
+ country: 'United States',
+ countryFlag: usFlag,
+ countryCode: 'id',
+ order: 766,
+ totalSpent: 7119.15,
+ avatar: avatar14,
+ },
+ {
+ id: 98,
+ customer: 'Brooke Tegler',
+ customerId: 137230,
+ email: 'btegler2p@state.tx.us',
+ country: 'Australia',
+ countryFlag: auFlag,
+ countryCode: 'kp',
+ order: 70,
+ totalSpent: 4403.22,
+ avatar: avatar15,
+ },
+ {
+ id: 99,
+ customer: 'Erny Picard',
+ customerId: 960955,
+ email: 'epicard2q@lycos.com',
+ country: 'France',
+ countryFlag: frFlag,
+ countryCode: 'cz',
+ order: 471,
+ totalSpent: 7696.67,
+ avatar: '',
+ },
+ {
+ id: 100,
+ customer: 'Manon Fossick',
+ customerId: 478426,
+ email: 'mfossick2r@hatena.ne.jp',
+ country: 'China',
+ countryFlag: cnFlag,
+ countryCode: 'jp',
+ order: 181,
+ totalSpent: 2838.35,
+ avatar: avatar15,
+ },
+ ],
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/ecommerce/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/ecommerce/index.ts
new file mode 100644
index 0000000..cc438c1
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/ecommerce/index.ts
@@ -0,0 +1,591 @@
+import is from '@sindresorhus/is'
+import { destr } from 'destr'
+import { HttpResponse, http } from 'msw'
+import { db } from '@db/apps/ecommerce/db'
+import { paginateArray } from '@api-utils/paginateArray'
+
+export const handlerAppsEcommerce = [
+
+ // ๐ Products
+ // Get Product List
+ http.get('/api/apps/ecommerce/products', ({ request }) => {
+ const url = new URL(request.url)
+
+ const q = url.searchParams.get('q')
+ const stock = url.searchParams.get('stock')
+ const category = url.searchParams.get('category')
+ const status = url.searchParams.get('status')
+ const sortBy = url.searchParams.get('sortBy')
+ const orderBy = url.searchParams.get('orderBy')
+ const itemsPerPage = url.searchParams.get('itemsPerPage')
+ const page = url.searchParams.get('page')
+
+ const searchQuery = is.string(q) ? q : undefined
+ const queryLower = (searchQuery ?? '').toString().toLowerCase()
+
+ const parsedStock = destr(stock)
+ const stockLocal = is.boolean(parsedStock) ? parsedStock : undefined
+
+ const parsedSortBy = destr(sortBy)
+ const sortByLocal = is.string(parsedSortBy) ? parsedSortBy : ''
+
+ const parsedOrderBy = destr(orderBy)
+ const orderByLocal = is.string(parsedOrderBy) ? parsedOrderBy : ''
+
+ const parsedItemsPerPage = destr(itemsPerPage)
+ const parsedPage = destr(page)
+
+ const itemsPerPageLocal = is.number(parsedItemsPerPage) ? parsedItemsPerPage : 10
+ const pageLocal = is.number(parsedPage) ? parsedPage : 1
+
+ // Filtering Products
+ let filteredProducts = db.products.filter(product => (
+ (product.productName.toLowerCase().includes(queryLower) || product.productBrand.toLowerCase().includes(queryLower))
+ && product.category === (category || product.category)
+ && (product.status === (status || product.status))
+ && (typeof stockLocal === 'undefined' ? true : (product.stock === stockLocal))
+ )).reverse()
+
+ // Sort
+ if (sortByLocal) {
+ if (sortByLocal === 'product') {
+ filteredProducts = filteredProducts.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.productName.toLowerCase() > b.productName.toLowerCase() ? 1 : -1
+ else if (orderByLocal === 'desc')
+ return a.productName.toLowerCase() < b.productName.toLowerCase() ? 1 : -1
+
+ return 0
+ })
+ }
+
+ if (sortByLocal === 'category') {
+ filteredProducts = filteredProducts.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.category > b.category ? 1 : -1
+ else if (orderByLocal === 'desc')
+ return a.category < b.category ? 1 : -1
+
+ return 0
+ })
+ }
+
+ if (sortByLocal === 'status') {
+ filteredProducts = filteredProducts.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.status > b.status ? 1 : -1
+ else if (orderByLocal === 'desc')
+ return a.status < b.status ? 1 : -1
+
+ return 0
+ })
+ }
+
+ if (sortByLocal === 'price') {
+ filteredProducts = filteredProducts.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return Number(a.price.slice(1)) > Number(b.price.slice(1)) ? 1 : -1
+ else if (orderByLocal === 'desc')
+ return Number(a.price.slice(1)) < Number(b.price.slice(1)) ? 1 : -1
+
+ return 0
+ })
+ }
+
+ if (sortByLocal === 'qty') {
+ filteredProducts = filteredProducts.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.qty > b.qty ? 1 : -1
+ else if (orderByLocal === 'desc')
+ return a.qty < b.qty ? 1 : -1
+
+ return 0
+ })
+ }
+
+ if (sortByLocal === 'sku') {
+ filteredProducts = filteredProducts.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.sku > b.sku ? 1 : -1
+ else if (orderByLocal === 'desc')
+ return a.sku < b.sku ? 1 : -1
+
+ return 0
+ })
+ }
+ }
+
+ return HttpResponse.json(
+ {
+ products: paginateArray(filteredProducts, itemsPerPageLocal, pageLocal), total: filteredProducts.length,
+ },
+ {
+ status: 200,
+ },
+ )
+ }),
+
+ // ๐ Delete Product
+ http.delete('/api/apps/ecommerce/products/:id', ({ params }) => {
+ const id = Number(params.id)
+
+ const productIndex = db.products.findIndex(e => e.id === id)
+
+ if (productIndex >= 0) {
+ db.products.splice(productIndex, 1)
+
+ // return res(
+ // ctx.status(204),
+ // )
+
+ return new HttpResponse(null, {
+ status: 204,
+ })
+ }
+
+ return new HttpResponse(null, {
+ status: 404,
+ })
+ }),
+
+ // ๐ Orders
+ // Get single Customer
+ http.get(('/api/apps/ecommerce/orders/:id'), ({ params }) => {
+ const orderId = Number(params.id)
+
+ try {
+ const order = db.orderData.find(e => e.order === orderId)
+
+ if (order)
+ return HttpResponse.json(order, { status: 200 })
+ else
+ return HttpResponse.json('No invoice found with this id', { status: 404 })
+ }
+ catch (error) {
+ return new HttpResponse(null, {
+ status: 404,
+ })
+ }
+ }),
+
+ // Get Order List
+ http.get('/api/apps/ecommerce/orders', ({ request }) => {
+ const url = new URL(request.url)
+
+ const q = url.searchParams.get('q')
+ const sortBy = url.searchParams.get('sortBy')
+ const orderBy = url.searchParams.get('orderBy')
+ const itemsPerPage = url.searchParams.get('itemsPerPage')
+ const page = url.searchParams.get('page')
+
+ const searchQuery = is.string(q) ? q : undefined
+ const queryLower = (searchQuery ?? '').toString().toLowerCase()
+
+ const parsedSortBy = destr(sortBy)
+ const sortByLocal = is.string(parsedSortBy) ? parsedSortBy : ''
+
+ const parsedOrderBy = destr(orderBy)
+ const orderByLocal = is.string(parsedOrderBy) ? parsedOrderBy : ''
+
+ const parsedItemsPerPage = destr(itemsPerPage)
+ const parsedPage = destr(page)
+
+ const itemsPerPageLocal = is.number(parsedItemsPerPage) ? parsedItemsPerPage : 10
+ const pageLocal = is.number(parsedPage) ? parsedPage : 1
+
+ const filterOrders = db.orderData.filter(order => {
+ return (
+ order.customer.toLowerCase().includes(queryLower)
+ || order.email.toLowerCase().includes(queryLower)
+ || order.order.toString().includes(queryLower)
+ )
+ }).reverse()
+
+ if (sortByLocal) {
+ console.log(sortByLocal)
+ if (sortByLocal === 'order') {
+ filterOrders.sort((a, b) => {
+ if (orderByLocal === 'desc')
+ return b.order - a.order
+ else
+ return a.order - b.order
+ })
+ }
+ if (sortByLocal === 'customers') {
+ filterOrders.sort((a, b) => {
+ if (orderByLocal === 'desc')
+ return b.customer.localeCompare(a.customer)
+ else
+ return a.customer.localeCompare(b.customer)
+ })
+ }
+
+ if (sortByLocal === 'date') {
+ filterOrders.sort((a, b) => {
+ if (orderByLocal === 'desc')
+ return Number(new Date(b.date)) - Number(new Date(a.date))
+ else
+ return Number(new Date(a.date)) - Number(new Date(b.date))
+ })
+ }
+
+ if (sortByLocal === 'status') {
+ filterOrders.sort((a, b) => {
+ if (orderByLocal === 'desc')
+ return b.status.localeCompare(a.status)
+ else
+ return a.status.localeCompare(b.status)
+ })
+ }
+
+ if (sortByLocal === 'spent') {
+ filterOrders.sort((a, b) => {
+ if (orderByLocal === 'desc')
+ return Number(b.spent) - Number(a.spent)
+ else
+ return Number(a.spent) - Number(b.spent)
+ })
+ }
+ }
+
+ return HttpResponse.json(
+ {
+ orders: paginateArray(filterOrders, itemsPerPageLocal, pageLocal), total: filterOrders.length,
+ },
+ {
+ status: 200,
+ })
+ }),
+
+ // Delete Order
+ http.delete('/api/apps/ecommerce/orders/:id', ({ params }) => {
+ const id = Number(params.id)
+
+ const orderIndex = db.orderData.findIndex(e => e.id === id)
+
+ if (orderIndex >= 0)
+ db.orderData.splice(orderIndex, 1)
+
+ return new HttpResponse(null, {
+ status: 204,
+ })
+ }),
+
+ // ๐ Customers
+ // Get single Customer
+ http.get(('/api/apps/ecommerce/customers/:id'), ({ params }) => {
+ const customerId = Number(params.id)
+
+ try {
+ const customerIndex = db.customerData.findIndex(e => e.customerId === customerId)
+
+ const customer = db.customerData[customerIndex]
+
+ Object.assign(customer, {
+ status: 'Active',
+ contact: '+1 (234) 567 890',
+ })
+
+ if (customer)
+ return HttpResponse.json(customer, { status: 200 })
+ }
+ catch (error) {
+ return new HttpResponse(null, {
+ status: 404,
+ })
+ }
+ }),
+
+ // Get Customer List
+ http.get(('/api/apps/ecommerce/customers'), ({ request }) => {
+ const url = new URL(request.url)
+
+ const q = url.searchParams.get('q')
+ const sortBy = url.searchParams.get('sortBy')
+ const orderBy = url.searchParams.get('orderBy')
+ const itemsPerPage = url.searchParams.get('itemsPerPage')
+ const page = url.searchParams.get('page')
+
+ const parsedSortBy = destr(sortBy)
+ const sortByLocal = is.string(parsedSortBy) ? parsedSortBy : ''
+
+ const parsedOrderBy = destr(orderBy)
+ const orderByLocal = is.string(parsedOrderBy) ? parsedOrderBy : ''
+
+ const parsedItemsPerPage = destr(itemsPerPage)
+ const parsedPage = destr(page)
+
+ const itemsPerPageLocal = is.number(parsedItemsPerPage) ? parsedItemsPerPage : 10
+ const pageLocal = is.number(parsedPage) ? parsedPage : 1
+
+ const searchQuery = is.string(q) ? q : undefined
+ const queryLowered = (searchQuery ?? '').toString().toLowerCase()
+
+ const filteredCustomers = db.customerData.filter(customer => {
+ return (
+ customer.customer.toLowerCase().includes(queryLowered)
+ || customer.country.toLowerCase().includes(queryLowered)
+ || customer.email.toLowerCase().includes(queryLowered)
+ )
+ }).reverse()
+
+ // Sort Customers
+ if (sortByLocal) {
+ if (sortByLocal === 'customer') {
+ filteredCustomers.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.customer.localeCompare(b.customer)
+
+ return b.customer.localeCompare(a.customer)
+ })
+ }
+ if (sortByLocal === 'country') {
+ filteredCustomers.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.country.localeCompare(b.country)
+
+ return b.country.localeCompare(a.country)
+ })
+ }
+
+ if (sortByLocal === 'customerId') {
+ filteredCustomers.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.customerId - b.customerId
+
+ return b.customerId - a.customerId
+ })
+ }
+
+ if (sortByLocal === 'orders') {
+ filteredCustomers.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.order - b.order
+
+ return b.order - a.order
+ })
+ }
+ }
+
+ if (sortByLocal === 'totalSpent') {
+ filteredCustomers.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.totalSpent - b.totalSpent
+
+ return b.totalSpent - a.totalSpent
+ })
+ }
+
+ return HttpResponse.json(
+ {
+ customers: paginateArray(filteredCustomers, itemsPerPageLocal, pageLocal), total: filteredCustomers.length,
+ },
+ {
+ status: 200,
+ })
+ }),
+
+ // ๐ Manage Reviews.
+ // Get Reviews
+ http.get(('/api/apps/ecommerce/reviews'), ({ request }) => {
+ const url = new URL(request.url)
+
+ const q = url.searchParams.get('q')
+ const sortBy = url.searchParams.get('sortBy')
+ const orderBy = url.searchParams.get('orderBy')
+ const itemsPerPage = url.searchParams.get('itemsPerPage')
+ const status = url.searchParams.get('status')
+ const page = url.searchParams.get('page')
+
+ const parsedSortBy = destr(sortBy)
+ const sortByLocal = is.string(parsedSortBy) ? parsedSortBy : ''
+
+ const parsedOrderBy = destr(orderBy)
+ const orderByLocal = is.string(parsedOrderBy) ? parsedOrderBy : ''
+
+ const parsedItemsPerPage = destr(itemsPerPage)
+ const parsedPage = destr(page)
+
+ const itemsPerPageLocal = is.number(parsedItemsPerPage) ? parsedItemsPerPage : 10
+ const pageLocal = is.number(parsedPage) ? parsedPage : 1
+
+ const searchQuery = is.string(q) ? q : undefined
+ const queryLower = (searchQuery ?? '').toString().toLowerCase()
+
+ // Filtering Reviews
+
+ const filteredReviews = db.reviews.filter(review => {
+ const { product, reviewer, email } = review
+
+ return (
+ (product.toLowerCase().includes(queryLower) || reviewer.toLowerCase().includes(queryLower) || email.toLowerCase().includes(queryLower) || review.head.toLowerCase().includes(queryLower) || review.para.toLowerCase().includes(queryLower))
+ && (review.status === status || status === 'All')
+ )
+ })
+
+ // Sort
+ if (sortByLocal) {
+ if (sortByLocal === 'product') {
+ filteredReviews.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.product.toLowerCase() > b.product.toLowerCase() ? 1 : -1
+ else if (orderByLocal === 'desc')
+ return a.product.toLowerCase() < b.product.toLowerCase() ? 1 : -1
+
+ return 0
+ })
+ }
+
+ if (sortByLocal === 'reviewer') {
+ filteredReviews.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.reviewer.toLowerCase() > b.reviewer.toLowerCase() ? 1 : -1
+ else if (orderByLocal === 'desc')
+ return a.reviewer.toLowerCase() < b.reviewer.toLowerCase() ? 1 : -1
+
+ return 0
+ })
+ }
+
+ if (sortByLocal === 'date') {
+ filteredReviews.sort((a, b) => {
+ if (orderByLocal === 'desc')
+ return Number(new Date(b.date)) - Number(new Date(a.date))
+ else if (orderByLocal === 'asc')
+ return Number(new Date(a.date)) - Number(new Date(b.date))
+
+ return 0
+ })
+ }
+ }
+
+ if (sortByLocal === 'status') {
+ filteredReviews.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.status.toLowerCase() > b.status.toLowerCase() ? 1 : -1
+ else if (orderByLocal === 'desc')
+ return a.status.toLowerCase() < b.status.toLowerCase() ? 1 : -1
+ else
+ return 0
+ })
+ }
+
+ return HttpResponse.json(
+ {
+ reviews: paginateArray(filteredReviews, itemsPerPageLocal, pageLocal), total: filteredReviews.length,
+ },
+ {
+ status: 200,
+ },
+ )
+ }),
+
+ // Delete Review
+ http.delete(('/api/apps/ecommerce/reviews/:id'), ({ params }) => {
+ const id = Number(params.id)
+
+ const reviewIndex = db.reviews.findIndex(e => e.id === id)
+
+ if (reviewIndex !== -1) {
+ db.reviews.splice(reviewIndex, 1)
+
+ return new HttpResponse(null, {
+ status: 204,
+ })
+ }
+
+ return new HttpResponse(null, {
+ status: 404,
+ })
+ }),
+
+ // ๐ Referrals
+ // Get Referrals
+ http.get(('/api/apps/ecommerce/referrals'), ({ request }) => {
+ const url = new URL(request.url)
+
+ const sortBy = url.searchParams.get('sortBy')
+ const orderBy = url.searchParams.get('orderBy')
+ const itemsPerPage = url.searchParams.get('itemsPerPage')
+ const page = url.searchParams.get('page')
+
+ const parsedSortBy = destr(sortBy)
+ const sortByLocal = is.string(parsedSortBy) ? parsedSortBy : ''
+
+ const parsedOrderBy = destr(orderBy)
+ const orderByLocal = is.string(parsedOrderBy) ? parsedOrderBy : ''
+
+ const parsedItemsPerPage = destr(itemsPerPage)
+ const parsedPage = destr(page)
+
+ const itemsPerPageLocal = is.number(parsedItemsPerPage) ? parsedItemsPerPage : 10
+ const pageLocal = is.number(parsedPage) ? parsedPage : 1
+
+ const filteredReferrals = [...db.referrals]
+
+ if (sortByLocal) {
+ if (sortByLocal === 'users') {
+ filteredReferrals.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.user.localeCompare(b.user)
+ else
+ return b.user.localeCompare(a.user)
+ })
+ }
+
+ if (sortByLocal === 'referred-id') {
+ filteredReferrals.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.referredId - b.referredId
+ else if (orderByLocal === 'desc')
+ return b.referredId - a.referredId
+
+ return 0
+ })
+ }
+
+ if (sortByLocal === 'earning') {
+ filteredReferrals.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return Number(a.earning.slice(1)) - Number(b.earning.slice(1))
+ else if (orderByLocal === 'desc')
+ return Number(b.earning.slice(1)) - Number(a.earning.slice(1))
+
+ return 0
+ })
+ }
+
+ if (sortByLocal === 'value') {
+ filteredReferrals.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return Number(a.value.slice(1)) - Number(b.value.slice(1))
+ else if (orderByLocal === 'desc')
+ return Number(b.value.slice(1)) - Number(a.value.slice(1))
+
+ return 0
+ })
+ }
+
+ if (sortByLocal === 'status') {
+ filteredReferrals.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.status.toLowerCase() > b.status.toLowerCase() ? 1 : -1
+ else if (orderByLocal === 'desc')
+ return a.status.toLowerCase() < b.status.toLowerCase() ? 1 : -1
+
+ return 0
+ })
+ }
+ }
+
+ return HttpResponse.json(
+ {
+ referrals: paginateArray(filteredReferrals, itemsPerPageLocal, pageLocal),
+ total: filteredReferrals.length,
+ },
+ {
+ status: 200,
+ },
+ )
+ }),
+]
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/ecommerce/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/ecommerce/types.ts
new file mode 100644
index 0000000..a9c92f7
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/ecommerce/types.ts
@@ -0,0 +1,69 @@
+// Customer Types
+export interface Customer {
+ id: number
+ customer: string
+ customerId: number
+ email: string
+ country: string
+ countryCode: string
+ countryFlag?: string
+ order: number
+ totalSpent: number
+ avatar: string
+ status?: string
+ contact?: string
+}
+
+export interface Referrals {
+ id: number
+ user: string
+ email: string
+ avatar: string
+ referredId: number
+ status: string
+ value: string
+ earning: string
+}
+
+export interface Review {
+ id: number
+ product: string
+ companyName: string
+ productImage: string
+ reviewer: string
+ email: string
+ avatar: string
+ date: string
+ status: string
+ review: number
+ head: string
+ para: string
+}
+
+export interface ECommerceProduct {
+ id: number
+ productName: string
+ category: string
+ stock: boolean
+ sku: number
+ price: string
+ qty: number
+ status: string
+ image: string
+ productBrand: string
+}
+
+export interface Order {
+ id: number
+ order: number
+ customer: string
+ email: string
+ avatar: string
+ payment: number
+ status: string
+ spent: number
+ method: string
+ date: string
+ time: string
+ methodNumber: number
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/email/db.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/email/db.ts
new file mode 100644
index 0000000..a229038
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/email/db.ts
@@ -0,0 +1,2161 @@
+import type { Email } from '@db/apps/email/types'
+
+import avatar1 from '@images/avatars/avatar-1.png'
+import avatar2 from '@images/avatars/avatar-2.png'
+import avatar3 from '@images/avatars/avatar-3.png'
+import avatar4 from '@images/avatars/avatar-4.png'
+import avatar5 from '@images/avatars/avatar-5.png'
+import avatar6 from '@images/avatars/avatar-6.png'
+import avatar7 from '@images/avatars/avatar-7.png'
+import avatar8 from '@images/avatars/avatar-8.png'
+
+import txt from '@images/icons/file/txt.png'
+import xls from '@images/icons/file/xls.png'
+
+interface DB {
+ emails: Email[]
+}
+
+export const db: DB = {
+ emails: [
+ {
+ id: 50,
+ to: [
+ {
+ email: 'johndoe@mail.com',
+ name: 'me',
+ },
+ ],
+ from: {
+ email: 'james25@gmail.com',
+ name: 'Katie Brandt',
+ avatar: avatar8,
+ },
+ subject: 'Bring smile discussion same boy include care.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Guy national course pay small per. Commercial research lose key fight marriage. Young series raise degree foot degree detail number.\nCrime gas real pass white. Television success east.
Into miss knowledge result. Seat carry tax beat line. Amount language paper machine fly.\nMusic several common former. More mouth year site move hold. Billion material born news western late.
World them term identify. Rule southern condition thought. Article successful traditional friend.\nPhone financial skill theory.\nChange Mr experience. Everyone help structure much family.\nVoice general group likely.
',
+ attachments: [
+ {
+ fileName: 'log.txt',
+ thumbnail: txt,
+ url: '',
+ size: '5mb',
+ },
+ {
+ fileName: 'performance.xls',
+ thumbnail: xls,
+ url: '',
+ size: '10mb',
+ },
+ ],
+ isStarred: true,
+ labels: ['private', 'company'],
+ time: '2021-07-14T12:42:22',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 49,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'jamesskinner@hotmail.com',
+ name: 'Joshua Cline',
+ avatar: avatar1,
+ },
+ subject: 'Magazine say side view.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Campaign even order for color. Remember card return position white argue prepare. Case fill follow then condition investment why.\nCold son pattern wife. Child name interest company thought every federal. He catch daughter design.
Affect customer a. Which difficult science.\nReality whether what animal. Call report author against season heart.\nCatch have always source response your even. Person mother whether since clearly. Cut staff work the nothing.
Cell cover along school. Method option not why laugh. Nation medical thousand world rule.\nEvening fish rich sense create. Civil family particularly day machine free read. Interesting capital owner international nor condition.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['personal'],
+ time: '2021-07-16T01:23:14',
+ replies: [
+ {
+ id: 74474,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'teresa54@gmail.com',
+ name: 'Brittany Young',
+ avatar: avatar2,
+ },
+ subject: 'The beat save none make sea large number.',
+ cc: [],
+ bcc: [],
+ message:
+ 'College before employee recognize. Teach central this interest service party section. Floor west break bit suggest ok everyone.\n Pm quality school out form. Want case town individual.
Hundred a modern career whose know find responsibility. East option trouble next. Sport goal after race pull political common board.
Beat support exactly material fact benefit six. Time represent stuff forget plant pass team. Begin lot war field simple.\nBuilding development wear trip marriage. Economy speech be election arrive color next.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['company', 'private', 'personal', 'important'],
+ time: '2021-07-21T18:43:19',
+ replies: [],
+ folder: 'inbox',
+ isRead: false,
+ isDeleted: false,
+ },
+ {
+ id: 766,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'angelajimenez@yahoo.com',
+ name: 'Emily Moore',
+ avatar: avatar8,
+ },
+ subject: 'Movement along college bad reality scientist.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Goal reveal past rule arrive project performance. Learn despite the way. Operation within suggest glass beautiful always really.\nLanguage although cut network conference economy long. Forward us point meet. Sing buy central quality science.
Real keep material wind drive life. Job election to determine table within expert art.\nOften ten ask city. Memory to run market.\nMove theory contain good fire. Area walk position site would.
Seem response base question tough consumer another. Sit hard deep child operation institution. Charge child picture different sense.\nMedia remain could go eight different west. Thousand fly box else.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['personal'],
+ time: '2021-07-07T22:12:32',
+ replies: [],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 3718436,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'alexanderpatel@yahoo.com',
+ name: 'Andrew Cruz',
+ avatar: avatar7,
+ },
+ subject: 'Realize agree dark spring suddenly maintain level history.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Actually and them time itself newspaper stand. Billion Republican manager little hot store. Pull issue many close by large seven.\nIt writer will concern community rate through factor. Reduce south director budget shake return.
Score event since campaign single conference significant. Design fall teacher.\nWhich themselves along that themselves activity.\nUntil nothing cold toward politics product. Rock enter in what option.
Relate authority agency claim protect. Task not wait respond week hotel.\nAt catch matter try boy why white physical. Section protect try kind few. Skin two author style.\nWestern simple instead strategy mention item suffer. Remain agree account.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['company', 'private'],
+ time: '2021-07-18T19:27:18',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: true,
+ },
+ ],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: true,
+ },
+ {
+ id: 48,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'williamsstacey@yahoo.com',
+ name: 'Jonathan Walker',
+ avatar: avatar1,
+ },
+ subject: 'Then until task something before color impact now.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Head claim property experience arm remain structure. Worry do science look oil easy. His whose want.\nHuge protect foot save century somebody future. Skin building truth along sing such read speech.\nRaise argue everything send.
While attorney to power card. Agent card big nothing. Wall behavior investment stay relate stage their. Carry full rather product arrive center when.
Law chance mention sound maintain expect whose. Treatment simply if power decide bar. Theory building laugh hand manager condition true.\nFoot few eat store environment that involve man. Into report player writer yourself.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['company', 'private', 'important'],
+ time: '2021-07-22T09:59:40',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: true,
+ },
+ {
+ id: 47,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'lori82@gmail.com', name: 'Kevin Evans', avatar: avatar7 },
+ subject: 'Shoulder science point show human black answer anything.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Rate church step beat head class nor.\nLeg ten offer girl me teach. Quite could within. Bill civil situation to.\nDifference unit tax garden. Fine cause political center her. Design look free treat item ball.
Also night argue I explain time practice.\nCommercial example reveal window try door great material. Wear data loss. Visit prove either catch will.
Show young century between box. Statement go guess bad film.\nIdea voice by audience meet everyone next prove. Art leader minute build.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['personal'],
+ time: '2021-07-09T15:02:15',
+ replies: [],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 46,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'crussell@hotmail.com', name: 'Alexa Burnett', avatar: avatar4 },
+ subject: 'Want manager source car recognize character impact.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Mr attorney role meeting enter.\nMajor serve night often. Region current nation.\nHear each knowledge today. Church positive let anyone hospital member difficult color. Product difference such sea view senior.
Home require nor material current. State probably customer size soldier music site.\nSeveral east when miss partner language hotel ask. She hold turn. Century general study radio.
Old community prevent. Subject minute song sport.\nCover woman born decision agree center cold.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['personal'],
+ time: '2021-07-09T06:52:08',
+ replies: [],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 45,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'kkim@yahoo.com', name: 'Dominique Paul', avatar: avatar4 },
+ subject: 'Level within enjoy baby.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Opportunity meet author table pressure leader. Owner never investment recent nearly before. Whom ask road.\nBody attorney clear program tonight current. Name watch school hard fly.
People crime window talk. Cell should third have sit would.\nOccur hit take.\nFact go system really entire common. Fast organization could themselves continue. End ahead rather.
Action quickly hundred movie choice. Nice yes lose two. Stay practice section onto some firm little Republican.\nLarge fast politics what. Common price speak sign particularly answer. You simply certain which direction.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important', 'personal'],
+ time: '2021-07-15T14:59:01',
+ replies: [
+ {
+ id: 781,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'amyconner@hotmail.com',
+ name: 'Michael Martinez',
+ avatar: avatar3,
+ },
+ subject: 'Recent seek particularly seem southern charge.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Accept his citizen again anyone. Claim process watch.\nSeven court there. Local author line would real machine officer.\nPlant just benefit operation. Similar soldier wrong part hospital action drive.
Before throw enough goal different. Doctor remain Mrs political staff.\nSeem successful why check after best pass. Degree because prove church move center space often.
Might trade cell guess institution. Difference win again.\nCulture life car agency improve you. Thing also hold child apply south box appear. Education itself effort their.\nFast save pull deal his talk issue. Fall sport better step.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['important', 'personal'],
+ time: '2021-07-14T21:30:32',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 6933053,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'ivanguerrero@yahoo.com',
+ name: 'Ashley Fuller',
+ avatar: avatar4,
+ },
+ subject: 'Difference owner claim student site property would.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Hour town against move difference scene cause walk.\nAgreement bag accept society story generation.\nLike process floor lose.\nStop think work off once. Billion institution anyone stuff determine federal attention.
Notice ever same tonight away performance role increase. Continue best same candidate expect look. Feeling church whole case risk town boy language.\nManage may send rate among. Physical law risk final source. Matter star ago or at possible.
Hotel I energy piece drop. Learn southern by maintain often evening.\nLate rise husband top skin memory lot.\nTest compare strategy father. Everyone few actually this again minute become.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['private'],
+ time: '2021-07-11T10:46:10',
+ replies: [],
+ folder: 'draft',
+ isRead: false,
+ isDeleted: false,
+ },
+ {
+ id: 8,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'lmoreno@yahoo.com', name: 'Ashley Lewis', avatar: avatar4 },
+ subject: 'Candidate available material away.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Ten spend paper. Trial certain those. Make middle campaign might.\nEffect well accept great wall.\nSeem your at small. So his serious high center political man.
Guess staff argue ready trade whole including. Science four skill best level interesting prevent. Mind he recent another point understand.\nAsk daughter specific hot without body challenge. Official threat pretty left bar check believe bit.
Trouble result receive political.\nAvailable knowledge increase. Dog computer ability prove paper. Scientist either color capital fall do.\nShoulder bar small. Those thank beyond sea piece.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important', 'personal'],
+ time: '2021-07-02T03:06:42',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 784835803,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'mortiz@gmail.com', name: 'Bradley Hobbs', avatar: avatar7 },
+ subject: 'Tend picture church team place show society.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Republican risk window. Different speak prove college from push main.\nRegion experience field wind get choose. Away drug professional memory. Nation still best fact forget election smile. Sure ready security office question.
Appear civil appear movie space.\nAmount rule meet wide exactly theory be. Pretty Republican material human that. Page war fear pay.\nAgree fall investment red nothing go also. Expect join against threat and.
Serve writer leader room.\nPurpose high west lose firm. Mouth between myself get upon avoid power low.\nSurface particular be main yeah. Huge parent morning continue research.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['personal', 'private', 'important'],
+ time: '2021-07-04T08:11:01',
+ replies: [],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ ],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 44,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'ethan27@gmail.com', name: 'Daniel Sullivan', avatar: avatar7 },
+ subject: 'Choose security yes relationship recognize consumer democratic international.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Person whom reflect prove show.\nBreak exist which prepare. Collection she population understand result business ability site.\nFact figure recent population condition. What west grow food space former.
Individual catch management her skin bag specific. Order base project under. Minute watch continue relationship state continue this store.
Recent cut organization machine.\nEnter today growth five interest some. Million official middle space return. Second cold available seven behind protect owner.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important', 'personal'],
+ time: '2021-07-12T02:53:08',
+ replies: [
+ {
+ id: 23853,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'hubbardsharon@hotmail.com',
+ name: 'Laura Dominguez',
+ avatar: avatar8,
+ },
+ subject: 'Daughter skill fact rise nice power.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Concern enter model team want admit detail far. West TV themselves short friend agreement service.\nAccording toward free upon draw family state. Account or action president piece.\nCause part fight second. Natural international mean.
Lay nearly center hear ten season officer water. Pattern loss window follow sure line.\nGlass analysis seat have. Ok budget among moment sing four.
Product now material play pick deal determine suffer. Most second region represent.\nRich reduce evidence home nothing yeah pressure. Rule play between fast wrong place.\nEvidence color anything because. Wall start manage style central charge beyond.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['company', 'important'],
+ time: '2021-07-12T20:13:42',
+ replies: [],
+ folder: 'spam',
+ isRead: false,
+ isDeleted: false,
+ },
+ {
+ id: 317,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'jameslopez@yahoo.com',
+ name: 'Christopher Farrell',
+ avatar: avatar3,
+ },
+ subject: 'Character fall follow.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Hope bar civil. Final design section those.\nBrother sit many receive vote read large. Reflect evening man realize detail. Party yeah factor never guy.\nSouthern movement everything. Play although movie effect space front.
Front first say interesting million force issue so. Enjoy least Democrat strong dark. Parent business bill surface arrive daughter.\nUntil home successful might capital. Nearly issue free customer. Carry matter executive country human shake.
Key do choose however.\nDiscuss each police modern. Apply method speech population participant.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['personal'],
+ time: '2021-07-22T15:28:46',
+ replies: [],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ ],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: true,
+ },
+ {
+ id: 43,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'rmartin@gmail.com', name: 'Nicole Allen', avatar: avatar4 },
+ subject: 'Ten store nature surface that seek black return.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Recognize section different ground million. Source court seek street.\nScience thank two capital shoulder herself certainly. Individual hair general manager why.
Live hear lawyer quickly player system. American spend ok beautiful. Shoulder drug itself wrong partner event.\nInclude account water success political. Newspaper quality really road. Short maintain raise appear.
Move cultural others protect season he future. Argue glass loss whether available size apply government.\nFood hand night particular. Change few key would thus.\nGreen talk to improve miss.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important'],
+ time: '2021-07-27T07:21:36',
+ replies: [],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 42,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'adkinsryan@yahoo.com', name: 'Karen Russell', avatar: avatar6 },
+ subject: 'Along represent responsibility security he leg.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Explain through thought forward daughter entire. Investment direction great writer thus blue provide.\nPersonal she community phone same. Remain religious meeting. Data personal meeting agreement style. Next time build.
Avoid board beautiful strong effect. We star fight quality stay sense soldier. Her social month. System professional social.\nYoung back including benefit position plan just. Line history sometimes check need remain make.
Radio should magazine yard ahead then. Student knowledge cover general use though.\nEnergy agree away team. Power whose music sort between man analysis. Boy election value.\nClearly law avoid dream. Would around role third seek world present.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['personal'],
+ time: '2021-07-02T20:02:30',
+ replies: [
+ {
+ id: 82117976,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'oblack@hotmail.com',
+ name: 'Michael Mccarthy',
+ avatar: avatar3,
+ },
+ subject: 'Around impact point interest method.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Blood power job common. Spring success arm article. Continue manager blue new enough business six difference.\nMe finish pick energy wear him home. If affect ready east. Light enter speech many off day answer.
Quality consider statement building suddenly poor. Indeed because image month charge pressure lawyer. Color lot subject leg.\nUs cold everybody clearly evening ago apply. Run between pull. Could amount policy think second take born draw.
Rest feel forget garden tough citizen him. Sign court point recent.\nClaim wide chair plant. Smile build everyone politics run.\nFactor trip personal.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['private', 'important', 'company'],
+ time: '2021-07-04T15:30:03',
+ replies: [],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 3151,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'zjackson@hotmail.com',
+ name: 'Don Stewart',
+ avatar: avatar7,
+ },
+ subject: 'Nation campaign still never church politics business.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Leg simple region out compare include wide. Simply kid away person training how. Answer laugh build attention cell authority be.\nPolitical citizen soldier record score green consider. Catch result traditional debate subject finally security.
Model seek stand fish three. View might space.\nSection receive fire town prepare public camera order. Sometimes nice another realize level. Shake fill institution forward author matter same.
Too home after lay senior. Result agree strong finish should easy onto agreement. Size PM usually war recent raise tend use.\nWork section story six billion. Long would add film middle financial third. Citizen up debate room owner deal.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['private', 'company'],
+ time: '2021-07-08T17:55:49',
+ replies: [],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 600,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'mary98@yahoo.com', name: 'Dana Harvey', avatar: avatar2 },
+ subject: 'Both community term run maybe sort per.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Watch great himself all. Court such building kid from region. Reveal team poor lawyer theory listen.\nSon participant very better. Bed city dog sign.\nBall despite player whatever whatever opportunity. Training social kitchen blood fly.
May hit expert last. Attention opportunity shoulder. Agency federal just candidate study long.\nNotice first work full write recognize probably. Once writer common low last.
Hour about entire material. Various from subject military read safe seat. Truth third spend hair role home. Any herself analysis pay.\nGame get class ever enter once its. Job street student ok.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['important', 'private', 'personal', 'company'],
+ time: '2021-07-27T16:48:17',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: true,
+ },
+ {
+ id: 23080678,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'ppineda@yahoo.com',
+ name: 'Samantha Martin',
+ avatar: avatar4,
+ },
+ subject: 'Whether far ready success yes many window.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Cause have like. Unit nearly view feeling arrive player. Nor officer she production fly nice begin value.\nBehavior trade focus any. Or economy information class blue school structure everything. Production white although her total natural space.
Recognize section and tend. Understand box option agency event drive window. Child himself during statement financial under. Drug daughter attention magazine window go red.
Because drop measure I significant. Fall type us a staff wind court. Student discuss pattern way.\nPlan should book. Lead decide radio ok foreign behavior bit style.\nHundred no dream smile. Whose put indeed medical.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['personal', 'company'],
+ time: '2021-07-04T13:28:16',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: true,
+ },
+ ],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: true,
+ },
+ {
+ id: 41,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'julie16@yahoo.com', name: 'Tyler Hernandez', avatar: avatar3 },
+ subject: 'Environment success however window student.',
+ cc: [],
+ bcc: [],
+ message:
+ 'While million social ball surface in late.\nBudget though five so fund purpose.\nBall understand effect teach. Find charge rich child. Do require laugh everybody interesting.
Season south town performance whole political thought box. Management try just president. Finish fish strong teach enter ahead.\nBehind unit difference expert position two. Let before account baby cut should TV. Explain effort realize need.
Even item or environment save ten prepare activity. Nearly become current.\nBed nature indicate discussion least career perhaps. Head must sure. Why sea around buy. Audience politics sell strong career.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important', 'private', 'company'],
+ time: '2021-07-06T01:09:02',
+ replies: [],
+ folder: 'sent',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 40,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'brownsandy@gmail.com', name: 'Michael Smith', avatar: avatar3 },
+ subject: 'Miss strategy want author test.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Hear college professor see agent believe easy. Front test big black shoulder although. Candidate skill every player pressure.\nMany six reason allow kitchen. Respond us bank idea treat sure stuff tonight.
Nothing stay medical strategy early position maybe buy. Turn board early. Particularly then care value should material.\nSong doctor phone offer. Lawyer fear say discussion result represent. Performance back when cover effort.
Determine huge with newspaper computer focus detail trouble. Move support strong certainly.\nPopulation administration thing fund push movie democratic community. Town next wonder.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['private', 'important'],
+ time: '2021-07-05T16:18:51',
+ replies: [],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 39,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'marissa73@hotmail.com', name: 'James Russell', avatar: avatar3 },
+ subject: 'Interview some and minute.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Result last clearly should bad. Need management account other player. Time pressure beautiful teacher provide. Mouth senior explain official would exactly.
Management attack fight some item. Once century agent method section what. What their defense you. Factor civil significant enough plan different.
Body amount know condition own gas near state. Strong as black place service.\nSignificant all game. Drive assume from wear option.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['company', 'private', 'important'],
+ time: '2021-07-19T05:03:32',
+ replies: [],
+ folder: 'inbox',
+ isRead: false,
+ isDeleted: false,
+ },
+ {
+ id: 38,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'brendajames@hotmail.com',
+ name: 'Richard Spencer',
+ avatar: avatar7,
+ },
+ subject: 'Town baby them account house save prevent.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Pattern sing wrong late north.\nDeal age risk yourself mission able car defense. Choice audience determine dream spend Congress. Mrs produce everyone who bed civil.
Forget top well little door at share. Money leg recently from make will radio.
Result plant rich tonight here discussion draw during. Population play serious their bill. Reduce industry right remember attorney them too.\nFirst once over yard. Standard so low.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['company', 'important'],
+ time: '2021-07-16T20:40:12',
+ replies: [
+ {
+ id: 1245629,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'kellyjones@yahoo.com',
+ name: 'Mark Martinez',
+ avatar: avatar5,
+ },
+ subject: 'Movement risk cultural.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Both statement now painting decade guess commercial. Treatment movement over idea drop house expect. Heart sense agree live amount her.\nAuthority data Mr all day stock star. By shake seem shoulder not myself order. Out concern from reach.
Me worry field three name. Mr history when across around. Garden think rate central challenge guess structure.\nCall difficult relationship house around. Water public maintain. Our myself yet personal government condition.
Themselves final admit from staff conference no. Ask certain summer set purpose. Budget cost enter town most trip. Most your keep he the power.\nTrip news couple.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['personal'],
+ time: '2021-07-11T06:55:40',
+ replies: [],
+ folder: 'sent',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 1,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'sonyamccall@hotmail.com',
+ name: 'Lisa Richardson',
+ avatar: avatar4,
+ },
+ subject: 'Despite produce officer ground employee president.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Understand conference debate. Among call fear away. Represent camera show job range street.\nInterview continue ahead believe subject. Himself sit them bit with bring. Oil particular represent wish home.
Your action note rise can food change. Eat claim plant accept wear film available few. Human wind security protect camera line.\nNotice deal to about truth forget every. Dark me camera where different better. Dog involve serve indicate do share for.
Sort all want oil travel need.\nBag contain hold deal individual pick believe ago. Middle oil receive close fact read. Offer often painting identify sure.\nLearn show next. Learn consider view face. Only life study near.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['important', 'private', 'company'],
+ time: '2021-07-04T15:24:04',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: false,
+ },
+ ],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 37,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'juliasosa@hotmail.com', name: 'Cheryl Wright', avatar: avatar6 },
+ subject: 'Movie admit final enjoy particular.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Poor bad find. Report TV over long region defense.\nTwo sister according alone. Natural great before prove north assume become focus. Including work environment water poor.
Score though true evening again analysis feeling wait. Certain discover carry chance ever. Rich staff test raise discover.\nBoard federal improve bad impact eat box word. Situation blue culture environment road city soon.
Decade subject another our million or. Be stock interview easy those population maybe. Help send society. Win many team find.\nManagement about guy. Cultural resource prevent natural age tree reduce. Effect carry man.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important'],
+ time: '2021-07-28T11:05:28',
+ replies: [
+ {
+ id: 3558,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'dillon01@hotmail.com',
+ name: 'Brenda Navarro',
+ avatar: avatar8,
+ },
+ subject: 'Business key Democrat sing.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Meeting carry shake turn. Money because radio lawyer better. World trial view benefit result someone sort expert. American while public question.
Court ask various serious safe. Cup than hot child sort.\nSmile view issue high recently develop floor. Ten science including force message. Hear room author return risk military.
Unit vote popular collection strategy group. Newspaper region fly structure seem story art. Skill ever as money meet involve.\nAs environmental sister investment film represent. Until student occur include few science.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['important', 'personal'],
+ time: '2021-07-20T02:27:59',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: true,
+ },
+ {
+ id: 21238317,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'danielle69@yahoo.com',
+ name: 'Erica Miller',
+ avatar: avatar2,
+ },
+ subject: 'Way program finish type yes then area.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Project growth brother. Star capital bring.\nRange movement risk perhaps loss. Team raise card bag hit.\nParticularly last lead system within walk public perhaps. Tax travel suggest physical data company. Mrs fear establish away.
Treatment fight as foot Republican. Sister happy major I well less fish. Various goal face up. Age put head hotel style tree.\nSurface list evening this stay. Doctor stage would current. Wide audience after paper. Process yard end man future lead.
Moment push store necessary program. Have health seek. Name safe young career those agent.\nBe protect whatever skin. Read by talk we start. Might author final perform. Tv own follow wife either husband.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['company', 'private', 'important'],
+ time: '2021-07-06T20:33:50',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: true,
+ },
+ ],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 36,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'benjamin30@gmail.com', name: 'Pamela Mueller', avatar: avatar6 },
+ subject: 'Dinner start pretty.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Require might team under authority.\nCustomer value still number deal. Cell both type customer do. Congress opportunity subject.
Above threat security how. Worry too interesting especially government help instead.\nWide ability study oil training teach. Help lot tree recent admit lot business.\nCapital order himself fall rest room those.
Impact beat business hear pretty. Current professor nearly agency. Attorney education fish result move.\nFormer military bar middle PM back his. Play nature image matter pick. Standard job smile food.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['company', 'personal'],
+ time: '2021-07-03T05:40:50',
+ replies: [],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 35,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'dana33@yahoo.com', name: 'Becky Coffey', avatar: avatar2 },
+ subject: 'Less forget everything only girl.',
+ cc: [],
+ bcc: [],
+ message:
+ 'His exactly require able. Team become friend chair between within. Employee program power science eight guy dark.
Crime his teacher imagine outside energy recent. Building week short brother many enter measure. Approach better them area deep.\nChild gas yard character. To management mother never own arm key. Trouble three speech cover feel listen.
Future north quite partner interesting. Interview investment clear industry Democrat investment. Even ahead identify.\nThese character threat next help include. Offer contain necessary something all. Reflect growth quickly part rate create question.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important', 'company'],
+ time: '2021-07-08T06:53:31',
+ replies: [],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 34,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'hollandjulie@yahoo.com',
+ name: 'Christopher Evans DDS',
+ avatar: avatar5,
+ },
+ subject: 'Financial series artist region.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Peace approach ask course central reality. Decision PM standard production brother report federal its. Wonder common group current often vote.
Professional sure fear blood much question. Operation ever authority water the woman. Hospital second rich let.\nOpportunity actually decision positive. During beautiful today decide know those. Chance list many create including become instead with.
Feel put treat. Mention arm name bank side.\nWhy area language reach well. Mother Mr worry order example.\nBegin part stay culture tend. Strategy administration yeah woman measure air. Than exist with indeed population talk.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['personal', 'private'],
+ time: '2021-07-12T11:07:10',
+ replies: [
+ {
+ id: 689385,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'wilsonroy@gmail.com',
+ name: 'Chelsea Sims',
+ avatar: avatar4,
+ },
+ subject: 'Prove rest forward wear.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Just trip own remember change these part. Trip success network send not room half yet. Floor pay which expert service.\nWhile both throw sister.\nCertainly remember certain country both. How seat exist. Hundred wind in page.
Trouble them least control. Forget up scene training garden. Effect for risk remain sign.\nSouthern bill blue general usually end how admit. Whom view final pay population reason. Type fire million on section individual.
Business specific prepare machine. Area stage poor pull. Performance myself dark school.\nScientist service student nation who wide market. Know clearly they finish. And maintain not soon play right.\nSign similar support cell. Meet less share pass.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['personal', 'company', 'private'],
+ time: '2021-07-26T09:23:33',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: true,
+ },
+ {
+ id: 66371,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'dannynguyen@hotmail.com',
+ name: 'Matthew Schaefer',
+ avatar: avatar5,
+ },
+ subject: 'Staff can next along long true dark.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Hotel only mind create soon north life. Improve pass too important those per including. System four north.\nFamily politics floor huge bad. Light look start apply forward civil agree. Later place expect at build.
First now against include time experience those and. Their these reveal guy dark. Always option fall evidence once success.\nLive sing gun meet. Spring face political voice. Blood clear couple run left available.
Visit network so total wife. People artist experience citizen maybe water good.\nHis news wonder note. Consumer kitchen him sport type.\nCandidate fall where structure. Art hour term matter look program.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['personal', 'private'],
+ time: '2021-07-09T01:39:12',
+ replies: [],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ ],
+ folder: 'sent',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 33,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'hsmith@gmail.com', name: 'Wendy Marshall', avatar: avatar8 },
+ subject: 'Enjoy see man news decide build class make.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Because gun area better region role party. Most cultural control radio religious rule human.\nFinal cold positive country story gun.\nThey myself bed involve. Course president health might lot close. Level fine college deal.
Tree race ground customer. Window prove maybe television possible well soldier over. International run conference free white audience consider.\nInterview ball leg number blood support his turn. Care product a.
Something ahead painting then option recognize. Use force price then away.\nFind agent hospital physical his. Town money person case during body.\nFast have kitchen character a race walk. Stage bring we entire sort.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['personal', 'company'],
+ time: '2021-07-10T22:42:15',
+ replies: [
+ {
+ id: 301809469,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'maryatkins@gmail.com',
+ name: 'Kimberly Cisneros',
+ avatar: avatar4,
+ },
+ subject: 'Family pretty interest decision.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Feeling production spend. Program look stand meet him. Ask away generation phone.\nMachine process window range serious process remain. Good charge in serious study seat. Heavy she concern door fire organization money fact.
Whether end investment pay. Happy information cup then. Edge fire suffer remain catch.\nDirector international determine might. Clearly fire something player. How that increase ready section. Visit become contain.
Decide find growth continue movie thank sort.\nPull where attention treat or. Since resource gas person trade organization crime. Growth southern lay lose president likely half.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['private'],
+ time: '2021-07-23T04:23:43',
+ replies: [],
+ folder: 'spam',
+ isRead: false,
+ isDeleted: false,
+ },
+ {
+ id: 930166,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'nramirez@yahoo.com', name: 'Kenneth West', avatar: avatar1 },
+ subject: 'Factor TV wife career thing loss increase.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Every public quality also. Almost base imagine former decade pull also the. She stage so military admit.\nSouth better general base reason employee may. Control see way end material service. Everybody fear risk party weight.
Sea line production appear them through. Late gun something power little care. Interest since test total.\nProvide as condition none wind month thus. Fly sort south artist letter health night.\nWrong group affect even. Identify way interview politics.
Risk total natural follow music drop sense hospital. Space family cover effect. Live particularly letter generation toward concern reality friend.\nOrganization bar ask great most live seat week. Against western use present.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['private', 'company'],
+ time: '2021-07-14T00:55:32',
+ replies: [],
+ folder: 'sent',
+ isRead: false,
+ isDeleted: false,
+ },
+ {
+ id: 324,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'tina53@hotmail.com',
+ name: 'Douglas George',
+ avatar: avatar1,
+ },
+ subject: 'Recognize to study.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Perhaps pretty color walk different likely think. Southern occur soon chair leave discover heart. Rest product break member operation.
Agreement I include for.\nState anyone fight interview view west concern. Reach social reason how husband east.\nSometimes able especially simple size behavior. Talk beyond both big another often former.
Her money art involve building natural garden. Pay them respond step that. Old yourself table would agency. Pay recognize family individual.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['personal', 'company'],
+ time: '2021-07-28T01:47:02',
+ replies: [],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ ],
+ folder: 'spam',
+ isRead: false,
+ isDeleted: false,
+ },
+ {
+ id: 32,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'jeffreystevens@yahoo.com',
+ name: 'Christopher Adams',
+ avatar: avatar3,
+ },
+ subject: 'Finish actually parent condition business discussion later practice.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Design left million test bag character. Pm everybody ago. Table finish sell my pay quite. Often account cover home war.\nCourt sport difference film left guy natural understand. Across ok quite now camera rock.
Plan citizen star off often evidence remember. Describe professor economic professional represent catch. Employee stand person eye. Region address spend.
It policy beyond scene. Wide bed culture account eat. Color technology even.\nMight ready option guess. Once create ever worker paper perhaps. Show likely say produce capital court.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['personal', 'important', 'private', 'company'],
+ time: '2021-07-27T09:40:52',
+ replies: [],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 31,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'maria99@hotmail.com', name: 'Theresa Schmitt', avatar: avatar8 },
+ subject: 'Life store technology least under black type.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Main each pay bar professional blood fill. The commercial amount thousand carry. Sound ball become court relationship so white.\nFight late exactly evidence evidence art but. Congress spend camera sea other. Theory protect plant wait.
Her necessary capital around nor issue herself. Late quickly someone own painting moment participant.\nRequire civil night take. Southern cold because option report share fine who.
List black mean everything read front Mrs. Look whatever street approach fear guess once. Paper somebody hear machine.\nTogether it price world professor country. National worker specific shake. Open security tell all sure none imagine say.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['company', 'private', 'personal'],
+ time: '2021-07-01T03:23:03',
+ replies: [],
+ folder: 'sent',
+ isRead: false,
+ isDeleted: false,
+ },
+ {
+ id: 30,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'kempsarah@gmail.com', name: 'Sherry Guzman', avatar: avatar2 },
+ subject: 'Officer population memory level foot public.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Summer general go happen owner last. Store live organization court think.\nDiscover second million today space activity conference. Generation young design factor interesting. Account always Mrs garden plant.
Sound discover piece people. Positive decade describe. Focus science free.\nSide mean however plan price me.\nBy later building result important down lay. Try growth structure nation above pull however those.
Wonder end value lead help quite trial. Recognize teacher establish explain. Try usually find over matter much.\nRaise son mouth.\nBase reach bit recognize focus. Stop best sea improve develop.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['private'],
+ time: '2021-07-20T16:43:48',
+ replies: [
+ {
+ id: 76,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'jessica23@gmail.com',
+ name: 'Lauren Smith',
+ avatar: avatar8,
+ },
+ subject: 'College community effect care.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Task age compare talk yard. Matter turn their price road.\nCulture four decide work chance cost include. Rock return statement. Major major several around method.\nUs would threat federal sense mean.\nCondition as why fast. Guy bit often professor.
Tell concern difference eye office trade fund fire. Lead report only star hot.\nFeel far factor current girl. Two hair fight a recent movie apply. Again series sometimes recent identify.
Perhaps agree note between house whom too. Down could important production tend figure special. West far bad impact cause great.\nRepresent green throughout never type trouble outside. Call adult would clearly. Turn stand federal.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['private', 'important', 'personal'],
+ time: '2021-07-20T17:21:18',
+ replies: [],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 435260844,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'lkelley@yahoo.com',
+ name: 'Michael Torres',
+ avatar: avatar3,
+ },
+ subject: 'Build learn audience water article ball must.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Method election require important majority five. Seat listen story.\nCause middle act film. Available turn gun before whole especially kind simple.\nStage wrong hot find agree suddenly. Chance source clear share stay few.
Figure activity role official. Food live personal.\nPersonal no public computer prepare when. Fish available report network if attack among decide. Seem rule inside economic door.
Budget open send wrong property. Half spend stock less. Degree act general skin these any personal per.\nUntil never state chair already. Product sign best.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important', 'company', 'private'],
+ time: '2021-07-10T07:00:15',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 7780,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'thomaspeterson@yahoo.com',
+ name: 'Dylan Logan',
+ avatar: avatar1,
+ },
+ subject: 'Artist food section media commercial hospital.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Tax above either world. Candidate accept final challenge which risk. Fact book example positive follow attention.\nCost building central contain natural. Adult least by.
Fast cause environment go explain necessary. Help citizen others beat sure child. Claim inside whether approach chance always central.\nSide ten bill look fine career. Attention real little power yourself bank.
Nothing American sister truth medical matter. Use door practice feel point fear. Argue else however involve fact.\nOwn recognize save. Federal brother loss mouth painting paper.\nDemocrat crime join quality. Off politics note soon.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['private'],
+ time: '2021-07-26T23:06:27',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: true,
+ },
+ ],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 29,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'daniel37@hotmail.com', name: 'David Cruz', avatar: avatar5 },
+ subject: 'Clearly my usually billion ability response.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Face despite management international talk force detail. Partner score hit democratic fast life property. Age information wear grow rise hard price. Every area character first activity smile.
Station character American usually nice change young. Make perhaps happy trade since science. Fine think attack successful.\nCrime bit spring city. Lawyer light ball unit instead statement. Lose friend account buy oil ten tend.
Security identify there. Person factor item build never language.\nEnter stock military early. Wish identify level difference fire wall. Girl finish sense indicate bad.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['private', 'company'],
+ time: '2021-07-01T10:33:17',
+ replies: [],
+ folder: 'sent',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 28,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'areeves@gmail.com', name: 'Anthony Obrien', avatar: avatar5 },
+ subject: 'A type network effort blood do various.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Own measure phone view baby officer. Detail nor television. Wear decade official long.\nCan interview point poor increase pick quickly run. General need audience foot weight firm. Month ability public. Go class let rise spring heart.
Cover attention letter later many town stuff away. Week lawyer western street.\nUnit rate reality adult. Arrive staff book me many.\nHand perhaps well thank join serious great budget. Including road upon will. Per price mission break.
Experience late nothing get baby head should. Must technology service address blood.\nChance decide else mean consumer pretty everything. Hospital couple second fly security region brother.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important', 'company'],
+ time: '2021-07-20T18:39:49',
+ replies: [],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 27,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'bnunez@hotmail.com', name: 'Jason Gonzalez', avatar: avatar5 },
+ subject: 'Affect method provide break himself house.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Science design amount responsibility. Seem himself degree. Decade central manage. Rather four decide word.\nQuickly keep such popular different approach woman. Population body decade baby view significant can. Wish a build respond.
Site cut forget international lay he there. Tax early try authority.\nAbout term enjoy prevent affect. Even environmental kid skill.\nFirst plant number site bad interest board. Investment half so.
Method sea agent capital later just worker. Main guy cut build building. Condition similar best gun. Dinner new box major artist space in.\nRaise try science grow. House picture raise indeed light.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['private'],
+ time: '2021-07-23T07:42:38',
+ replies: [],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 26,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'welchcrystal@gmail.com',
+ name: 'Christopher Sanchez',
+ avatar: avatar5,
+ },
+ subject: 'Trade science concern necessary theory option us.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Top foreign never recent baby girl base. Show charge senior difficult drug effect. Fear on standard doctor stop investment spring.
One long article market there into. Share nature member owner evening. Form tree real cultural.\nSecond be report teacher admit close.\nWhom skill teach. Blue song ahead weight rather walk line. Five talk require.
Rate onto nearly address rule side activity. Result ahead you hope woman worker evidence.\nCollection citizen we industry. Sister and that according organization leave. Day agency hope pick.\nEconomic him consider body four section single when.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important'],
+ time: '2021-07-10T16:15:08',
+ replies: [],
+ folder: 'inbox',
+ isRead: false,
+ isDeleted: false,
+ },
+ {
+ id: 25,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'fullerkatelyn@hotmail.com', name: 'Ana Short', avatar: avatar4 },
+ subject: 'Follow tax officer soon our four relationship consumer.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Couple almost table everyone together contain. Plan fill trip. Perhaps explain college will machine mouth training popular.\nNice include wrong road alone. Could for adult perform.
Tax ahead ground general industry. Else style only Mr agent all.\nAlready walk edge might forward. Cold wind hard read. Street poor process major especially example defense.\nDecade capital question talk work box forget. Always hear Mr ago.
Apply camera white natural should another. Past event herself score. Own thus general despite pattern. Ability pressure network mouth sometimes represent.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important'],
+ time: '2021-07-12T09:22:10',
+ replies: [
+ {
+ id: 4556357,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'woodjames@gmail.com',
+ name: 'Taylor Lopez',
+ avatar: avatar4,
+ },
+ subject: 'Appear imagine western.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Effect fall action chair candidate forward. Away character action start even focus claim address.\nJob once off according put off. Give answer near star cell expert. Use tax care month list.
Investment it check.\nPopulation oil mouth glass against. Stand all art leader agree.\nHerself only score image prevent bar table. Total treatment enjoy everything. Long later just cover or great meet.
Exist month watch wish remember simply low. Knowledge treatment maintain fine organization fall identify.\nIdea enough worry coach better stand general. Threat western language must person.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important', 'company'],
+ time: '2021-07-08T11:19:22',
+ replies: [],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 419,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'charlotte46@gmail.com',
+ name: 'Edwin Pena',
+ avatar: avatar3,
+ },
+ subject: 'Hundred happen national measure.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Try high body design blue. Deep improve ahead police.\nHuman behind police international. Around would nor position particular physical break. Pm for against clearly.
Who in rock then build. Analysis produce kind senior until where. Part east understand.\nChance billion culture might so five. Particularly create story maintain article give fall. Short improve whatever new available wear affect.
Financial great impact everyone until.\nThem might try range main. Activity decade stock first stock start explain. Write phone nice increase fish several.\nNewspaper exist himself dinner choice agree hear. Great receive today identify.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['company', 'personal'],
+ time: '2021-07-28T00:33:38',
+ replies: [],
+ folder: 'sent',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 5123,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'amandawagner@yahoo.com',
+ name: 'Laura Montes',
+ avatar: avatar2,
+ },
+ subject: 'Administration choice move against provide value none.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Goal throw including miss sometimes staff traditional. Material talk place point pay.\nShake popular part wind. While state light. Explain movement they.
Our herself indeed let use. Debate front within yes impact change big contain. Purpose outside nothing leg image never dark husband.\nPlant bring decision avoid ground act book. Up hold speech. Local indeed short.
Cold step herself style important. Week base tree game kid. Coach yet expect determine personal. Here happy peace have cause up.\nApply include recently reality common attention. Effort politics player though fly.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['personal', 'company'],
+ time: '2021-07-23T04:17:17',
+ replies: [],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 60679807,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'clarkdwayne@hotmail.com',
+ name: 'Felicia Myers',
+ avatar: avatar2,
+ },
+ subject: 'Me during name.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Miss back sing simply. Tax surface shake page so. Any rule vote for.\nSport six former simple. Daughter business push reality information.\nResource just possible rich enter. Tax full box beat. Network edge cultural among no morning.
Since but appear place. Trouble particularly paper chair commercial. Offer everyone success trip. Treatment special support resource.\nGun analysis test recently ball. Reality organization family test TV I surface.
Appear system shake charge nice foot. There our wrong author investment coach. Feel leg economy require push performance out speech. Need hair however commercial.\nLike Congress system whether skin. Research little attention art.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['company', 'important'],
+ time: '2021-07-09T19:19:45',
+ replies: [],
+ folder: 'sent',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 31103,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'hobbsjeffrey@yahoo.com',
+ name: 'Erica Mann',
+ avatar: avatar6,
+ },
+ subject: 'Ability pretty student health current interesting even.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Image American daughter test animal. Somebody especially war loss name only just.\nStation such television also good away so water. Protect across television phone. Realize almost final half fight establish.
Program skill rest bed east here become law. How loss might purpose low time organization. Industry different enter share budget.\nFeel million how modern whole religious half finish. Hospital stage decision consider democratic.
Sort move scene behind. First office take together keep note break kind. Either laugh top agree prepare change.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['personal', 'important', 'company'],
+ time: '2021-07-21T11:41:54',
+ replies: [],
+ folder: 'spam',
+ isRead: false,
+ isDeleted: false,
+ },
+ ],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 24,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'hmoran@gmail.com', name: 'Vincent Alexander', avatar: avatar1 },
+ subject: 'Over tough city well first should quite.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Sense speech economic compare chair. Suddenly model bank add. Let church door human ready share begin sense.\nPlay weight audience call necessary reach candidate rest. Collection lead voice position news listen police.
Describe safe almost hold. Rich because trip blue. Discussion born spend because anyone need.\nWonder skill state. Movie receive guess with. Turn pressure market term experience hotel collection.\nOff staff word once money.
Response north Mrs area writer election. Include early look similar nearly be. Rate happen green not.\nRun bed where state why sit house attorney. Which allow size learn. Describe mind where speak some son herself.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['company', 'important'],
+ time: '2021-07-12T13:33:33',
+ replies: [
+ {
+ id: 324726,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'victorjohnson@yahoo.com',
+ name: 'Tamara Vega',
+ avatar: avatar6,
+ },
+ subject: 'Democrat miss deal career maintain hotel.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Base enter whom respond throughout together. Nor generation various company bar. What consumer how.\nKid recently civil store. High hot assume gun.
Important win election center. Party less knowledge only magazine past condition yard. Sound doctor say between.\nResult process may have firm wide. Moment audience skill safe fast. Spring although member defense value job.
Nothing serve media tell network site benefit artist. Left scene strong. As community decide major.\nNearly indeed send begin read. Recent foot three letter wide spend have. Growth whether once home actually without central.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important', 'personal'],
+ time: '2021-07-13T12:43:08',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: true,
+ },
+ {
+ id: 3,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'jeremywilliams@yahoo.com',
+ name: 'Jason Schultz',
+ avatar: avatar1,
+ },
+ subject: 'Piece effect usually everyone make.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Market easy before really individual window soldier garden. Better space avoid fund. Politics friend class something western model. Seem successful recently sometimes.\nServe shake try for you our. Involve organization last at inside.
Employee office list player. Pass cold charge.\nEye sometimes article pressure. Chair mission structure him owner. Fight leg common her forget across against.\nMusic national student. At part wide fund.\nReady health everybody.
Cover century him back card property success. Enter feeling light oil cell push research.\nNow drop everyone must side blood program. Factor fire dark their kind hit everyone person. How property million interesting both important.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['personal'],
+ time: '2021-07-13T19:56:30',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: true,
+ },
+ {
+ id: 4,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'jasonpalmer@hotmail.com',
+ name: 'Deborah Tran',
+ avatar: avatar2,
+ },
+ subject: 'Certain executive them health successful spring.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Commercial individual understand past history large strong.\nPositive summer three need evening. North between pay politics art hand ago cover.\nLevel happen start practice reach. Produce sport show condition. Individual grow education.
Return fear food enter friend. Great company opportunity nearly garden choose.\nLast capital cell true edge. Daughter cost west stage force tell.\nEvidence stop whether power. North hospital base accept. Message him likely trouble tax business part.
Just record kind drug four perhaps entire. Economic surface century individual behind understand.\nTax hair charge investment similar perhaps pay. Return room create table other foot happen approach.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['private', 'personal'],
+ time: '2021-07-14T18:37:56',
+ replies: [],
+ folder: 'sent',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 19865651,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'danny06@gmail.com', name: 'Walter Moss', avatar: avatar3 },
+ subject: 'Go town spend determine we money experience partner.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Color onto chair very the account article different. Time however total without.\nHerself left knowledge never heart its product over. Citizen range state various same fall would day. Anyone against when grow evening.
Grow main front thing boy. Accept shake student consumer whom.\nAnyone return between apply.\nRead its prepare young. Week start for again focus doctor. Itself term until see somebody.
Trial direction idea green young. Success to light later.\nUse box sense indicate ask. Himself six five. Ready government than young represent difficult.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['private'],
+ time: '2021-07-08T13:58:13',
+ replies: [],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ ],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 23,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'paulbarrett@gmail.com', name: 'Robert Soto', avatar: avatar7 },
+ subject: 'Apply loss always difference husband course deal.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Realize American professor television give.\nNice meeting individual could major instead. Late development deep. Memory main how minute reduce want whether happy.
Capital fight water page artist seem own. Make join public break. Support water analysis cup forget together.\nAgain along listen defense ground mission once region. Last ground experience hot trade free camera.
Bill floor tonight good condition. Traditional must spring onto break. Left just everybody election. Treatment foreign control dark often.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['private', 'personal'],
+ time: '2021-07-06T23:12:45',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 22,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'danagriffin@gmail.com',
+ name: 'Alexander Alexander',
+ avatar: avatar7,
+ },
+ subject: 'Lead position story common choice pay sit line.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Hand style bill phone day new area. Central husband measure could. Democratic health begin draw politics wear interest.\nHim avoid knowledge music. Offer forward happy easy. Just yard one light weight teacher threat.
American it feel parent protect. Center building recent politics when hand bar under. Without hard relationship issue.\nContinue friend game concern. Agency discussion simply hotel now prevent.
Sense indeed glass accept interest. Carry window dog onto involve specific.\nRadio despite police scientist economic. Fire affect your term. Send to end avoid political ability.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['private', 'personal'],
+ time: '2021-07-03T07:04:27',
+ replies: [],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 21,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'bakercarrie@yahoo.com', name: 'Dawn Hall', avatar: avatar2 },
+ subject: 'Magazine smile hear price.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Ball skin product option anyone. Away involve whatever score.\nCommon ever show all body bed already. Modern politics century sort. Half study write life certain.
Nothing little whose carry source force heavy employee. Price force leave small follow. Push enjoy down teacher among. Huge nature whose risk season east maybe peace.\nPolitics interview drop sell. Trip from simple matter event.
Brother simply structure some kitchen some expect. Family personal civil focus professional task specific cut.\nDemocrat continue cause television yourself whether. Find west particular ago stand car.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important'],
+ time: '2021-07-06T12:47:33',
+ replies: [
+ {
+ id: 6333,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'james94@gmail.com',
+ name: 'Ronald Mitchell',
+ avatar: avatar1,
+ },
+ subject: 'Cost example hope modern especially language rock.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Mr go size financial role. Deal defense about space. Leader site water well side walk need.\nBall impact suddenly those rather have marriage first. May wear need may design.
Everyone artist run weight. State on executive travel.\nBrother instead nice while such half trial live. Policy truth animal make set them ask.\nPretty almost pick player after involve. Hot energy interview clearly however adult.
People during left particular rock design war young. Station require reflect. Later space head front within general. Program lose century stage.\nInstead very both. Owner bill tend Congress local.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['private'],
+ time: '2021-07-19T13:54:07',
+ replies: [],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 3539,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'averyamy@hotmail.com',
+ name: 'Courtney Reynolds',
+ avatar: avatar6,
+ },
+ subject: 'President attack quickly religious.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Stop military interest. Picture his money go quickly. Possible second wide high.\nTime air somebody on development born charge. Marriage address pull. Laugh chair range standard open list consumer wide.
Dinner another but student upon out. Soldier current management hair management.\nLikely population measure Democrat serious result reflect. Property tax knowledge. Recognize top peace nature pattern.
Table teach knowledge. Economic section security she. Myself share oil decide necessary when smile difference.\nService open oil car. Be model record stuff position scene also. All professional plan as radio candidate movie.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['company'],
+ time: '2021-07-06T00:53:34',
+ replies: [],
+ folder: 'sent',
+ isRead: false,
+ isDeleted: false,
+ },
+ {
+ id: 132667,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'englishjohn@gmail.com',
+ name: 'Phillip Warner',
+ avatar: avatar1,
+ },
+ subject: 'Stand never treat commercial.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Like begin million option dream just. Side still six truth alone exist that.\nIncluding himself movement increase significant. Police trial instead success he chair speak. Medical writer oil.
Successful compare analysis yes successful. Before sit old process similar physical.\nMedical receive debate than. Hit assume baby result place total.\nMoney discussion tax democratic surface everybody thousand. Throw six far home.
While reality along loss only alone pick current. Ok month view computer. Available drug ask knowledge add choose must.\nScene you ago laugh else city. Receive provide goal husband throughout. Focus local middle civil ever oil.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important'],
+ time: '2021-07-07T04:28:47',
+ replies: [],
+ folder: 'spam',
+ isRead: false,
+ isDeleted: false,
+ },
+ {
+ id: 815966603,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'davidmckenzie@yahoo.com',
+ name: 'Tony Garcia',
+ avatar: avatar3,
+ },
+ subject: 'However walk less use election.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Shake stop century indicate cut garden. Night learn should low material north economy.\nAnother soldier base whole accept. Natural two everyone television. Sure option key market method week. Mouth day look too western world.
Company first rise in. Image movement enjoy clearly work box. Process parent fear state these theory want. Close friend team put check.\nCourt practice since account way indeed. Between exactly five. Conference green fast see century notice.
South six discover college long anyone young. Her company fine hotel rise.\nIf raise long yeah direction painting. Rest tell entire machine than summer laugh list. Personal rise figure collection player yard.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['private', 'company', 'important'],
+ time: '2021-07-07T09:57:28',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: false,
+ },
+ ],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 20,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'sandraarroyo@hotmail.com',
+ name: 'Natalie Lloyd',
+ avatar: avatar2,
+ },
+ subject: 'During teach truth group society enough that.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Price agreement more tell. Push special fine turn alone.\nVarious weight shake heavy age control side so. Determine fall family agreement pull guy easy. Sell will director experience where challenge Democrat.
Fly such evening all entire. Data cold hour.\nLocal strong article tend bag. Probably relate political sell. Service end environmental theory health. Ready think body necessary low result impact.
Agency trial address per strong bill able. Top lay chair bag positive rich partner. Interest address government argue project attention myself election.\nReach value pattern treat act result star. Staff list federal.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['company', 'important'],
+ time: '2021-07-11T17:48:11',
+ replies: [
+ {
+ id: 7,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'webersamuel@gmail.com',
+ name: 'Steven Jackson',
+ avatar: avatar1,
+ },
+ subject: 'Hotel account interview begin carry everybody its.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Get behavior better walk claim. Material popular civil detail.\nStop strong true first. Science scientist low story. These former near represent.
Fine value happy admit. Although its four could yet call. May beyond building bank push past perform.\nEnd civil audience son our my artist make. Security wish probably cold space reach life situation.
Station per choice live safe dog without. Above according break her woman organization market.\nCareer pass race mother manage for. Summer organization stage century fact individual particular.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['personal'],
+ time: '2021-07-18T23:08:26',
+ replies: [],
+ folder: 'sent',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 378459327,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'jobush@yahoo.com',
+ name: 'Mrs. Pamela Riggs MD',
+ avatar: avatar6,
+ },
+ subject: 'Industry difficult want without day partner road.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Never hospital price site without star. Agency nature resource perhaps send. Stand nice must.\nProve window individual final. Exactly collection boy picture try operation increase. About purpose American type include store determine.
Speak they reality consumer ball church.\nWorld sit price. More local clear. Camera kind food.\nShe often term somebody prove. Would low over someone law.\nInstitution any among face begin race term do. Teach language technology get animal good.
Play cell type process certain total stay. Court enough side choice again speech.\nBy alone young scientist walk individual a. Mind relate whatever fund vote contain. Reflect special hospital study may local.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['personal', 'private'],
+ time: '2021-07-18T03:59:12',
+ replies: [],
+ folder: 'sent',
+ isRead: true,
+ isDeleted: false,
+ },
+ ],
+ folder: 'spam',
+ isRead: false,
+ isDeleted: false,
+ },
+ {
+ id: 19,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'washingtonsamantha@hotmail.com',
+ name: 'Jessica Johnston',
+ avatar: avatar6,
+ },
+ subject: 'Exist general medical under entire radio.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Process book suddenly plan sense change science. Prepare air option response. Voice range human.\nYet staff back idea note his cold. Raise service about state final official.\nHair when expect ok sit food. Religious rule doctor all.
Need improve field set wrong born.\nConsider there situation also something. Glass finally must special. Region news water responsibility to my short. Deal hotel fill.
Successful apply reality think woman short. Hope various indeed onto third audience.\nWay score none. Raise budget tough dinner name. Similar something fall certain I different.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['private'],
+ time: '2021-07-24T18:10:41',
+ replies: [],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 18,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'mcleanrobert@hotmail.com',
+ name: 'Matthew Lee',
+ avatar: avatar1,
+ },
+ subject: 'Travel free or write determine.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Edge memory where short stuff. Seven summer from sometimes body probably church.\nYeah might enough believe world person somebody. Compare summer road save magazine.
Light street wear home. Result baby my show current present. Attorney analysis rule democratic bed top.\nFace should pay side federal responsibility item. Test step safe his yourself.\nHold language interview other agency. Leg soon determine.
Make style already you physical.\nAir challenge fund dark. Myself another evening let big improve parent huge. Money fly investment practice.\nProvide feeling peace open decide course. Community attack her magazine white. Those let any beyond.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['private', 'company', 'personal'],
+ time: '2021-07-24T00:15:10',
+ replies: [],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 17,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'perkinselizabeth@gmail.com',
+ name: 'James Wilson',
+ avatar: avatar7,
+ },
+ subject: 'Always beautiful name push miss international.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Skin if open line speak wish. Ten size their happen trial. Will third prevent.\nPopular wall indeed memory cause generation under age. Less one pressure guy song.\nUpon theory item science speak mission. After read plan official good week yet show.
Shake trip when once break election red. Left individual store site prepare figure. Once indicate blue wear effect person catch.\nWind chance entire perhaps carry notice leg. Successful property education. Guy option include.
Author of exist no bag exactly. To impact since.\nArgue market strategy evidence start business movie. Million fire crime magazine mention.\nDeep figure full Mr. Take response four serve law. Forward late part.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['important'],
+ time: '2021-07-07T22:14:25',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 16,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'garcialauren@hotmail.com',
+ name: 'Gregory Allen',
+ avatar: avatar3,
+ },
+ subject: 'Test look option movement position card cause.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Key rather religious director week inside campaign. Sport fast activity.\nCamera go sing development up pay. Product toward well.\nRepresent appear civil skill son city leg. Best road attorney religious. Issue collection who peace morning director.
Above know trip beyond smile science. Part sport behavior notice establish. Recent direction similar everything admit pretty.\nBehind a knowledge second sound. Body soldier begin word site.
Sense policy rule after no response itself. Have magazine draw should bit often food. Car start that trade person.\nLeft pattern PM identify before executive Mr. State two your meeting task different.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['personal', 'company', 'important'],
+ time: '2021-07-11T00:14:13',
+ replies: [
+ {
+ id: 744639799,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'howardjustin@gmail.com',
+ name: 'Rebecca Smith',
+ avatar: avatar6,
+ },
+ subject: 'Region stop vote tonight partner capital us.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Republican ten picture although partner green.\nWrite his than another hand only. Focus night table speak ahead couple. Baby me single another already unit hand.
On alone involve.\nMusic author event story east pressure thus. Game power administration.\nNext standard boy provide although city short society. Hospital company old view.
Interest see majority ability center hope. His decision use most four return college. Born technology affect like.\nAlong your military there note great day attack. Specific I throughout. Hand month family open.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['personal', 'important', 'private'],
+ time: '2021-07-05T08:12:17',
+ replies: [],
+ folder: 'sent',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 18,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'dwelch@yahoo.com', name: 'Peter Davis', avatar: avatar1 },
+ subject: 'Second ground way child seem social resource appear.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Building believe manage analysis artist another enough similar.\nFood provide long view civil couple. Citizen too health west culture rule finish administration. Political ever eight message specific mission.\nServe determine city stand four present.
Moment compare red or institution begin more. Nothing law long might degree. Meet relationship work money human probably head.\nForward region their high with region their. Many side goal.
Customer thousand amount ask other might. Article energy wide relationship. Prevent save himself wrong action.\nShow entire play upon at shake. Unit heavy training window probably start share. Common by allow.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['personal'],
+ time: '2021-07-23T16:37:03',
+ replies: [],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 712,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'larrybrown@yahoo.com', name: 'Amy Peters', avatar: avatar4 },
+ subject: 'Interesting strategy south ok recognize shoulder lead.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Bring dark let list then kitchen audience. Agreement raise result decision choose without.\nIndicate yet radio consider perform western. Find follow far require wish than pattern. Meeting benefit through seven service.
Question response big son student stuff. There imagine hold pick friend. For join condition try.\nAnimal foot work public one brother hit.\nWithout free business new degree. Local administration it those animal.
Simply less tax. Stuff apply member deal rather sort. Best politics project say rest.\nCare expect program break concern development care. East seat window. Kind firm cover up share perhaps.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['personal'],
+ time: '2021-07-17T02:58:14',
+ replies: [],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ ],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 15,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'dreed@hotmail.com', name: 'Rhonda Hamilton', avatar: avatar4 },
+ subject: 'They new police guy trade carry bad.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Certain operation woman production especially second. To answer main good democratic move likely radio. Down rise human model land culture the.
Ten actually feeling call blue human. Less forward star another something he.\nUsually scene door enjoy heavy view management. Eye data conference. Attention traditional especially star else federal course. Speak position season stage head when.
Foot face beautiful little seven former you usually. Candidate hotel help.\nKitchen heavy she. Agent put move sister much. Hit some baby have fight.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['company', 'private', 'important', 'personal'],
+ time: '2021-07-18T12:06:21',
+ replies: [],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 14,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'andersonkatrina@hotmail.com',
+ name: 'Richard Buckley',
+ avatar: avatar7,
+ },
+ subject: 'Hospital small technology defense affect car.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Finish race write suggest visit pay east. Might point heavy care.\nSociety who happen stock over toward account. Question shake city share marriage drug.\nEvery test total agency another like. Wall day word camera art.
As thus necessary degree always support fall. Leader town agree improve check career. Later service when artist customer blood.\nEasy daughter tend no raise. Throw glass various among nearly act if. Than area sort trial many marriage old decision.
Worker coach together raise civil term themselves. Television something ok thank.\nAlmost song task there budget quite process than. Sell which apply environmental.\nDrop mind computer increase born.\nAuthor with will time. Garden others agency wall.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['personal', 'company', 'private'],
+ time: '2021-07-09T06:36:05',
+ replies: [],
+ folder: 'sent',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 13,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'kimberlyrobinson@hotmail.com',
+ name: 'James Brady',
+ avatar: avatar3,
+ },
+ subject: 'There bar risk bring.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Thought prepare want hand character design most. Run result attack before.\nVoice return give right way along. He lose change season less cell moment use. Today benefit would somebody.
Million area million across near company heart. Happen official knowledge look. Turn class interesting.\nGive product fund would factor into hope. Everyone painting program forget including.
Begin force foreign degree detail oil such.\nFirm scene individual here point. Particular interview before people last shoulder. Appear until spend under along magazine.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['personal'],
+ time: '2021-07-06T02:27:43',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: true,
+ },
+ {
+ id: 12,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'ugray@gmail.com', name: 'Jane Buckley', avatar: avatar2 },
+ subject: 'Picture everything throw happen nothing social.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Cell role hundred husband president figure. Make how real again.\nDevelopment image develop Republican. Military head drop. Relate wait able art.\nPolice response range establish back. Chance assume subject stock appear good research.
Thousand PM speech hear three yard should for.\nMachine crime too represent campaign book. According call each.\nPicture site create sister. Opportunity become who never bed number develop set. Major finish everyone meet vote letter across.
Reality send American. Democratic serious event oil lose. Tax position down front service improve election.\nThreat heavy over. Each leave several writer card politics. Question feel technology many thank.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important'],
+ time: '2021-07-18T13:42:20',
+ replies: [],
+ folder: 'spam',
+ isRead: false,
+ isDeleted: false,
+ },
+ {
+ id: 11,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'morrisjaclyn@gmail.com',
+ name: 'Kathryn Smith',
+ avatar: avatar6,
+ },
+ subject: 'Green attorney government same course join in woman.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Employee society live back. Bar woman film education.\nImportant report avoid. Wait nor goal. As morning say clear.\nBody strong of alone camera fall. Civil program particular first garden. Social become voice law quality.
Mouth whole for positive. Certain tough especially nature claim box.\nFill space allow second second cut. Bank want why decide recognize space.
Outside ability second whose second. Point stand bank list defense understand seat.\nClear finish follow media sing type. Technology white practice miss price.\nDifference establish some nation western job meeting. Give article beautiful.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['private'],
+ time: '2021-07-08T14:51:49',
+ replies: [
+ {
+ id: 133615687,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'juan31@gmail.com',
+ name: 'Jennifer Robinson',
+ avatar: avatar8,
+ },
+ subject: 'Beautiful despite note couple pretty issue near.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Store use cultural human smile. Subject trip that laugh.\nWalk sense a operation about window small southern. Show road them movement.
Water behind do else just. Reach mean science yet among what.\nGreen modern design us know use others weight. Recently wonder soldier within plan.\nRoom test story see southern special nice. Drop take mind plant throw American my. A husband sit thing.
There performance fine coach way majority truth. House beyond candidate beyond debate painting alone. There significant poor something chance spring. Yeah worry white Democrat.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['private'],
+ time: '2021-07-13T14:02:08',
+ replies: [],
+ folder: 'sent',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 867,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'gflores@hotmail.com',
+ name: 'Cindy Hernandez',
+ avatar: avatar2,
+ },
+ subject: 'Watch vote decide compare start.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Choice race different. Yard case newspaper wide series growth identify.\nBeyond go rest read me. Though quite industry method animal organization leave quality.
Back music theory fund produce. Foreign hard board learn home add. Data political buy budget think.\nBook consumer future writer. Bag evidence thus school.\nDifficult my accept yard. Million loss officer person language to. Television room feeling.
Country myself current tough image school. Court activity catch low value. Hotel local through.\nFocus attorney computer evening you always. Guess require event picture director. Garden floor month husband mention.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['company', 'important', 'private'],
+ time: '2021-07-12T14:38:42',
+ replies: [],
+ folder: 'sent',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 7,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'judyvillarreal@hotmail.com',
+ name: 'Amy Chavez',
+ avatar: avatar8,
+ },
+ subject: 'Member around task woman as.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Police physical down generation condition throw foot relate. Table experience represent practice development.\nOrder option success thank miss. Tree knowledge light police service remain during. Entire respond join hit kind enjoy language.
Modern page social decide though small realize impact. Around special difficult level organization course her.\nMr tree three former this husband hold. Local expert especially should writer visit moment. Quite move travel less.
Nearly loss those democratic bring production. Ago economic method consider discuss.\nCapital approach red but reveal successful. Middle television treatment. Turn recent reflect interview.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['company', 'private'],
+ time: '2021-07-17T02:32:58',
+ replies: [],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 59708653,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'mwalker@hotmail.com',
+ name: 'Marcus Campbell',
+ avatar: avatar3,
+ },
+ subject: 'Woman ability middle choose vote few ability.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Because structure put. Face business possible light box.\nSmile group six history financial. General try financial either discuss like million. Begin create fill series age.\nExist control popular begin deep. Sit another health live.
Politics side finally senior sit here activity protect. Heavy major control education. Bad involve want skill project feel.\nNone usually kid study eight. Civil consider effort. Marriage front their live eye significant far.
Scene keep major bank up prepare others. Change century brother media energy alone. Life range explain interest address.\nMedical account indicate hit start live support. Prove popular claim direction college.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['private'],
+ time: '2021-07-04T03:37:29',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: true,
+ },
+ {
+ id: 804622,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'lauramartin@hotmail.com',
+ name: 'Connie Osborne',
+ avatar: avatar8,
+ },
+ subject: 'Heavy ball debate style message main rate.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Feeling ability finish kitchen majority same moment. Decision money compare really education deal. Officer get be food ahead compare stay.\nDeep teacher state. Guy purpose too remain help enough.
Cut city father while green both information.\nLetter left fall body general. Very exactly common though policy star. Former health arm respond treatment.\nEnter industry will trouble day authority agree blood. Indeed air until but idea nor enter.
Site direction lay hotel these. Role focus affect focus before. Gas fill figure rise marriage like offer child.\nAgainst wall either. Mind one ready total. Fly food why part for again season.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['company', 'important', 'private'],
+ time: '2021-07-02T03:33:03',
+ replies: [],
+ folder: 'sent',
+ isRead: true,
+ isDeleted: false,
+ },
+ ],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 10,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'sean36@gmail.com', name: 'Ronald Buckley', avatar: avatar5 },
+ subject: 'Blue both light anyone trial nor approach tough.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Take anything season ok. Nor than war fine speak happen. Where business hold continue message state for.\nMorning southern allow. Mission color camera how Republican behind. Learn five break suffer.
Over born sure continue. Option show meet however.\nModel no mean us. Enough as space herself article bring others. Place them need drive cost decide.
Million friend remain product eye Congress. Education near amount middle.\nSay key past if shoulder rule. Others mean behind case interesting bag near option. Step why example mean thus. Fish forget turn never kind boy anyone.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['personal', 'important'],
+ time: '2021-07-11T11:09:30',
+ replies: [],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 9,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'wkline@yahoo.com', name: 'Jennifer Garcia', avatar: avatar6 },
+ subject: 'Simply idea project health prevent beyond both after.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Second again well doctor because election necessary point. Campaign about from western themselves particular loss popular. During garden star couple water simply area.
Worker leave know mission southern. Sea eye walk moment.\nCamera executive education wall marriage say. Man tend perform. Issue area great financial note other guess.
Likely market physical heavy quite we.\nRecent how room page sit fast Congress fight. Interview establish watch water.\nLoss family picture mind consumer about PM. Safe natural size. Character recognize painting movie.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['personal', 'company'],
+ time: '2021-07-17T20:25:41',
+ replies: [],
+ folder: 'inbox',
+ isRead: false,
+ isDeleted: false,
+ },
+ {
+ id: 8,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'tolson@gmail.com', name: 'Lindsey Melton', avatar: avatar2 },
+ subject: 'Amount collection marriage price.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Join list dog rate doctor surface share. Meeting beat particular sing apply space.\nClear down thought magazine meet.\nWould better sport wide personal matter. Analysis effort school officer such. Age blue future her start marriage.
Material year close beat rest happy. Interview material over thought. Win until morning certainly.\nDevelopment personal direction game present.
Accept wall price hair garden staff. Enough off rest. Beyond half small lay agency.\nOption in hand charge direction least message. Safe minute situation just floor. Guess month than already.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['company'],
+ time: '2021-07-25T05:19:46',
+ replies: [],
+ folder: 'inbox',
+ isRead: false,
+ isDeleted: false,
+ },
+ {
+ id: 7,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'jeffrey89@gmail.com', name: 'Amanda Pratt', avatar: avatar4 },
+ subject: 'Pull clear protect start exactly purpose scientist food.',
+ cc: [],
+ bcc: [],
+ message:
+ 'See beautiful necessary hold. Marriage TV cut look chance whom.\nHeavy girl like only special position hot throw.\nReligious someone value girl save avoid. Market soon against central baby. So follow paper run along bag.
Worry provide form. Walk receive adult.\nMind style campaign blood. Public sign allow history nature customer. Offer how answer join.\nDiscussion blue Congress half important beat without. Authority key personal forget quickly model quickly really.
Better know magazine. Attention discuss staff turn affect tough.\nSo later whose reveal follow. Almost someone end. Rate necessary dog strategy.\nHope administration born his. Upon foot vote ability medical. Poor behind stage opportunity.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['company'],
+ time: '2021-07-12T16:41:20',
+ replies: [],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 6,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'gentryjeff@yahoo.com', name: 'Joseph Clark', avatar: avatar3 },
+ subject: 'Grow seat discover.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Become laugh and up onto. Sister raise pretty material picture. Own middle region open.\nProcess rock throw kind.\nQuestion them interest some international notice agreement. Control remember purpose.
Level consumer contain process rise system. Ten responsibility finally detail development else.\nRace well letter. Over receive it might.\nDifferent use send than he everyone. Drive answer develop bad past budget.
Increase prove theory million lose down quickly.\nMoment young just position information.\nName discover different majority use seek. Religious world discover never pressure ok develop. Name also all. Drug city program way.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['personal', 'private'],
+ time: '2021-07-20T13:44:07',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: true,
+ },
+ {
+ id: 5,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'maciaspatricia@hotmail.com',
+ name: 'Alisha Hughes',
+ avatar: avatar4,
+ },
+ subject: 'Play hope gas military that.',
+ cc: [],
+ bcc: [],
+ message:
+ 'International hundred anything see ten but long. Collection edge difference turn other let price. Would ahead commercial may scene develop minute.\nOnly film avoid. Last dark party store. Collection another three movement network ready hit.
Report keep probably individual argue.\nKid activity style million. Late stage lawyer answer.\nReligious both opportunity wide. Once television amount necessary so line. Now simple shoulder ground.
Radio idea glass realize research floor. Why range brother baby own impact century. Believe service doctor once.\nKnowledge finally anything sea. Across certainly reality provide. Past center feeling financial.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important'],
+ time: '2021-07-04T09:53:05',
+ replies: [],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 4,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'rvalenzuela@hotmail.com',
+ name: 'Michelle Murphy',
+ avatar: avatar6,
+ },
+ subject: 'Anyone want yet forget effect.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Expert space school material success security interest. Realize size seem growth game evidence. Time itself fine travel.\nCup reason environmental analysis.
Chance election look. Pretty job they officer other.\nBrother challenge military dark. Decade behavior several few race ball along. Amount rich suddenly stand. Mention street local site.
Join thus employee determine degree lead player. Color room ever soon easy. Administration toward experience why.\nSea hard detail rule. Strong factor language enjoy find.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['company', 'important'],
+ time: '2021-07-17T15:51:47',
+ replies: [],
+ folder: 'spam',
+ isRead: false,
+ isDeleted: false,
+ },
+ {
+ id: 3,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'gbeltran@gmail.com', name: 'Charles Cooper', avatar: avatar1 },
+ subject: 'Fight account night short.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Get through stay. On difficult popular.\nFine turn mean artist. President explain turn professor fly prove cultural. Moment field front.\nSuccess almost various week. North message herself front eight. Final huge right happy.
Analysis rise son let. Age specific against visit.\nPerhaps series unit center total. Bed hour sense. Star morning history design late.\nOnce but fund share education. Majority face what year interest wish financial pretty.
Class treat enjoy stock seven natural establish indeed.\nHelp eat figure rich. Although bill discover build town.\nAsk continue claim here hand surface. Success foot action close treat.
',
+ attachments: [
+ {
+ fileName: 'log.txt',
+ thumbnail: txt,
+ url: '',
+ size: '5mb',
+ },
+ {
+ fileName: 'performance.xls',
+ thumbnail: xls,
+ url: '',
+ size: '10mb',
+ },
+ ],
+ isStarred: true,
+ labels: ['important', 'company'],
+ time: '2021-07-22T19:12:31',
+ replies: [
+ {
+ id: 756051771,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'rwhitehead@yahoo.com',
+ name: 'Bruce Johnson',
+ avatar: avatar3,
+ },
+ subject: 'Guy someone wind.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Century those system character. Enter mind she baby compare movie. Soldier reality guy end meeting go.\nPositive only our important. Month world century impact nothing such bar. Term their himself safe its deep.
Coach bank agent value glass race. Instead reason suffer bar role action finally town. Political market window of although least will.\nGuess thought chance term.
Pressure tonight beyond because wait early leader prove. Ground reality court event bar. Behind manage really so four vote.\nSecond series score thus.\nRealize move around baby interview clear.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['personal', 'private'],
+ time: '2021-07-22T16:03:07',
+ replies: [],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 4255040,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'perezannette@gmail.com',
+ name: 'Kyle Christensen',
+ avatar: avatar7,
+ },
+ subject: 'Each close probably.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Late contain dream why ready go spring to. Against page medical wonder just fall card four. Unit live manager within feeling.\nSupport democratic lose list law. Baby address inside area or. Little individual remain sister area since thousand.
Culture effect similar clear population stuff himself quite. Trade story quality quite successful such.\nEven might his continue necessary thousand give. Record former tend determine true population reflect.
Dream when TV try loss central. Billion direction up run reduce that record. Ability then best draw.\nRich second yourself deep about foreign impact. Crime military appear shoulder bed. West job call home health woman lot.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['personal'],
+ time: '2021-07-15T20:54:36',
+ replies: [],
+ folder: 'draft',
+ isRead: false,
+ isDeleted: false,
+ },
+ {
+ id: 946586133,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'ramirezsarah@yahoo.com',
+ name: 'Tammy Lloyd',
+ avatar: avatar8,
+ },
+ subject: 'Security set letter once.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Hair kind piece main want evening career. Water artist source ago south design father. Mention movie number house yeah some government.\nScore rock idea seven establish of. Candidate oil fact about to spend about.
Not both energy key.\nMust face those idea address pull.\nLet look cover star place later. Personal student both window agency produce.\nRemember cause hour explain box worry. One upon might soon enter baby car consumer.
Character service your idea. Adult guess stay us. Law would improve.\nWithin official anyone Mr. Difference before record treatment perhaps audience culture. Along present experience because history challenge detail.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['company', 'important'],
+ time: '2021-07-20T05:34:05',
+ replies: [],
+ folder: 'spam',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 182449812,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'evansantonio@yahoo.com',
+ name: 'Shawn Flores',
+ avatar: avatar5,
+ },
+ subject: 'Card yeah need shake.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Fine wonder sister order rock conference lose should. Personal party drug sense way north. Hear stock political pick model.
Focus population expert sense past green. Call community property tough news instead bad. War explain former quite else explain next guy. Education like send method method.
Necessary detail teacher company discuss world activity. And me get star eat power. Read sound wish already culture seek because face. Attorney purpose green.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['personal', 'private'],
+ time: '2021-07-22T14:31:03',
+ replies: [],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: true,
+ },
+ ],
+ folder: 'inbox',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 2,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: {
+ email: 'wilsonwilliam@yahoo.com',
+ name: 'Rachel Palmer',
+ avatar: avatar2,
+ },
+ subject: 'Account base lose detail.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Religious system evidence star meeting notice draw. Garden audience sometimes strong imagine vote free.\nLow Republican nice. Toward fund decade ever. Likely itself serve camera risk adult imagine.
Main nice environmental address defense. Toward movie inside every. Else event message continue.\nReturn rise attorney black role. Individual build tonight soldier return environment successful. Dinner learn rock mother wife all.
Yard but card her then. Foreign evening ability my president dog guess. Leave husband south.\nHealth leg represent yeah. Turn sell onto kid several. Morning degree few.\nStart dark measure big end role. Property attention walk eye exist.
',
+ attachments: [],
+ isStarred: false,
+ labels: ['important'],
+ time: '2021-07-10T01:13:20',
+ replies: [],
+ folder: 'draft',
+ isRead: true,
+ isDeleted: false,
+ },
+ {
+ id: 1,
+ to: [{ email: 'johndoe@mail.com', name: 'me' }],
+ from: { email: 'edavid@yahoo.com', name: 'Wendy Harris', avatar: avatar2 },
+ subject: 'Step face collection heart light cultural prepare.',
+ cc: [],
+ bcc: [],
+ message:
+ 'Suddenly man team would nor piece. Miss democratic receive.\nWindow measure drug success recent necessary group mission. Exist school under student rock trial treatment.\nRun season there social. Visit staff floor network improve home the.
Lay laugh sea sit food parent. Line move scientist floor establish like production. Decade PM exist moment.\nBeat under campaign say. Term gun local Congress democratic.
Chance poor attack far kitchen will. Appear thing also child whom manage hospital. Federal trouble fear between receive such involve here.\nSeek wife increase draw hair. Onto style minute democratic. Clearly music outside standard.
',
+ attachments: [],
+ isStarred: true,
+ labels: ['important', 'private'],
+ time: '2021-07-18T11:43:46',
+ replies: [],
+ folder: 'sent',
+ isRead: true,
+ isDeleted: false,
+ },
+ ],
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/email/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/email/index.ts
new file mode 100644
index 0000000..938ff62
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/email/index.ts
@@ -0,0 +1,84 @@
+import { destr } from 'destr'
+import { HttpResponse, http } from 'msw'
+import { db } from '@db/apps/email/db'
+import type { Email, EmailLabel } from '@db/apps/email/types'
+
+export const handlerAppsEmail = [
+ // ๐ Get Email List
+ http.get(('/api/apps/email'), ({ request }) => {
+ const url = new URL(request.url)
+
+ const q = url.searchParams.get('q') || ''
+ const filter = url.searchParams.get('filter') || 'inbox'
+ const label = url.searchParams.get('label') || ''
+
+ const queryLowered = q.toLowerCase()
+
+ function isInFolder(email: Email) {
+ if (filter === 'trashed')
+ return email.isDeleted
+ if (filter === 'starred')
+ return email.isStarred && !email.isDeleted
+
+ return email.folder === (filter || email.folder) && !email.isDeleted
+ }
+
+ const filteredData = db.emails.filter(
+ email =>
+ (email.from.name.toLowerCase().includes(queryLowered) || email.subject.toLowerCase().includes(queryLowered))
+ && isInFolder(email as Email)
+ && (label ? email.labels.includes(label as EmailLabel) : true),
+ )
+
+ // ------------------------------------------------
+ // Email Meta
+ // ------------------------------------------------
+ const emailsMeta = {
+ inbox: db.emails.filter(email => !email.isDeleted && !email.isRead && email.folder === 'inbox').length,
+ draft: db.emails.filter(email => !email.isDeleted && email.folder === 'draft').length,
+ spam: db.emails.filter(email => !email.isDeleted && !email.isRead && email.folder === 'spam').length,
+ star: db.emails.filter(email => !email.isDeleted && email.isStarred).length,
+ }
+
+ return HttpResponse.json({ emails: filteredData, emailsMeta }, { status: 200 })
+ }),
+
+ // ๐ Update Email Meta
+ http.post(('/api/apps/email'), async ({ request }) => {
+ const { ids, data, label } = await request.json() as { ids: Email['id'] | Email['id'][]; data: Partial; label: EmailLabel }
+
+ const labelLocal = destr(label)
+
+ if (!labelLocal) {
+ const emailIdsLocal = destr(ids) as unknown as Email['id'][]
+
+ function updateMailData(email: Email) {
+ Object.assign(email, data)
+ }
+
+ db.emails.forEach((email: Email) => {
+ if (emailIdsLocal.includes(email.id))
+ updateMailData(email)
+ })
+
+ return new HttpResponse(null, { status: 201 })
+ }
+ else {
+ function updateMailLabels(email: Email) {
+ const labelIndex = email.labels.indexOf(label)
+
+ if (labelIndex === -1)
+ email.labels.push(label)
+ else email.labels.splice(labelIndex, 1)
+ }
+
+ db.emails.forEach(email => {
+ if (Array.isArray(ids) ? ids.includes(email.id) : ids === email.id)
+ updateMailLabels(email)
+ })
+
+ return new HttpResponse(null, { status: 201 })
+ }
+ }),
+
+]
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/email/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/email/types.ts
new file mode 100644
index 0000000..f41227e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/email/types.ts
@@ -0,0 +1,72 @@
+export type EmailFolder = 'inbox' | 'sent' | 'draft' | 'spam'
+export type EmailFilter = EmailFolder | 'trashed' | 'starred'
+export type EmailLabel = 'personal' | 'company' | 'important' | 'private'
+
+export interface EmailTo {
+ email: string
+ name: string
+}
+
+export interface EmailFrom {
+ email: string
+ name: string
+ avatar: any
+}
+
+export interface EmailAttachment {
+ fileName: string
+ thumbnail: any
+ url: string
+ size: string
+}
+
+/*
+ - You can have draft mail in your inbox
+ - We can have flag isDraft for mail
+ - You can't move sent mail to inbox
+ - You can move sent mail to inbox
+
+ --- above are gmail notes
+
+ - We will provide inbox, spam & sent as folders
+ - You can't move any mail in sent folder. Sent mail can be deleted or retrieved back
+ - We will provide isDraft, isSpam, isTrash as flags
+ - draft is flag
+ - trash is flag
+ - spam email can be moved to inbox only
+ - We will provide isDeleted flag
+
+ === this is too confusing ๐
+
+ // this is final now ๐ฏ
+ folders => inbox, sent, draft, spam
+ flags: starred, trash
+*/
+
+export interface Email {
+ id: number
+ to: EmailTo[]
+ from: EmailFrom
+ subject: string
+ cc: string[]
+ bcc: string[]
+ message: string
+ attachments: EmailAttachment[]
+ time: string
+ replies: Email[]
+
+ labels: EmailLabel[]
+
+ folder: EmailFolder
+
+ // Flags ๐ฉ
+ isRead: boolean
+ isStarred: boolean
+ isDeleted: boolean
+}
+
+export interface FetchEmailsPayload {
+ q?: string
+ filter?: EmailFilter
+ label?: EmailLabel
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/invoice/db.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/invoice/db.ts
new file mode 100644
index 0000000..64f728a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/invoice/db.ts
@@ -0,0 +1,915 @@
+import type { Invoice } from '@db/apps/invoice/types'
+import avatar1 from '@images/avatars/avatar-1.png'
+import avatar2 from '@images/avatars/avatar-2.png'
+import avatar3 from '@images/avatars/avatar-3.png'
+import avatar4 from '@images/avatars/avatar-4.png'
+import avatar5 from '@images/avatars/avatar-5.png'
+import avatar6 from '@images/avatars/avatar-6.png'
+import avatar7 from '@images/avatars/avatar-7.png'
+import avatar8 from '@images/avatars/avatar-8.png'
+
+const now = new Date()
+const currentMonth = now.toLocaleString('default', { month: '2-digit' })
+
+export const database: Invoice[] = [
+ {
+ id: 4987,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-13`,
+ client: {
+ address: '7777 Mendez Plains',
+ company: 'Hall-Robbins PLC',
+ companyEmail: 'don85@johnson.com',
+ country: 'USA',
+ contact: '(616) 865-4180',
+ name: 'Jordan Stevenson',
+ },
+ service: 'Software Development',
+ total: 3428,
+ avatar: '',
+ invoiceStatus: 'Paid',
+ balance: 724,
+ dueDate: `${now.getFullYear()}-${currentMonth}-23`,
+ },
+ {
+ id: 4988,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-17`,
+ client: {
+ address: '04033 Wesley Wall Apt. 961',
+ company: 'Mccann LLC and Sons',
+ companyEmail: 'brenda49@taylor.info',
+ country: 'Haiti',
+ contact: '(226) 204-8287',
+ name: 'Stephanie Burns',
+ },
+ service: 'UI/UX Design & Development',
+ total: 5219,
+ avatar: avatar1,
+ invoiceStatus: 'Downloaded',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-15`,
+ },
+ {
+ id: 4989,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-19`,
+ client: {
+ address: '5345 Robert Squares',
+ company: 'Leonard-Garcia and Sons',
+ companyEmail: 'smithtiffany@powers.com',
+ country: 'Denmark',
+ contact: '(955) 676-1076',
+ name: 'Tony Herrera',
+ },
+ service: 'Unlimited Extended License',
+ total: 3719,
+ invoiceStatus: 'Paid',
+ avatar: avatar2,
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-03`,
+ },
+ {
+ id: 4990,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-06`,
+ client: {
+ address: '19022 Clark Parks Suite 149',
+ company: 'Smith, Miller and Henry LLC',
+ companyEmail: 'mejiageorge@lee-perez.com',
+ country: 'Cambodia',
+ contact: '(832) 323-6914',
+ name: 'Kevin Patton',
+ },
+ service: 'Software Development',
+ total: 4749,
+ avatar: avatar3,
+ invoiceStatus: 'Sent',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-11`,
+ },
+ {
+ id: 4991,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-08`,
+ client: {
+ address: '8534 Saunders Hill Apt. 583',
+ company: 'Garcia-Cameron and Sons',
+ companyEmail: 'brandon07@pierce.com',
+ country: 'Martinique',
+ contact: '(970) 982-3353',
+ name: 'Mrs. Julie Donovan MD',
+ },
+ service: 'UI/UX Design & Development',
+ total: 4056,
+ avatar: avatar4,
+ invoiceStatus: 'Draft',
+ balance: 815,
+ dueDate: `${now.getFullYear()}-${currentMonth}-30`,
+ },
+ {
+ id: 4992,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-26`,
+ client: {
+ address: '661 Perez Run Apt. 778',
+ company: 'Burnett-Young PLC',
+ companyEmail: 'guerrerobrandy@beasley-harper.com',
+ country: 'Botswana',
+ contact: '(511) 938-9617',
+ name: 'Amanda Phillips',
+ },
+ service: 'UI/UX Design & Development',
+ total: 2771,
+ avatar: '',
+ invoiceStatus: 'Paid',
+ balance: 2771,
+ dueDate: `${now.getFullYear()}-${currentMonth}-24`,
+ },
+ {
+ id: 4993,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-17`,
+ client: {
+ address: '074 Long Union',
+ company: 'Wilson-Lee LLC',
+ companyEmail: 'williamshenry@moon-smith.com',
+ country: 'Montserrat',
+ contact: '(504) 859-2893',
+ name: 'Christina Collier',
+ },
+ service: 'UI/UX Design & Development',
+ total: 2713,
+ avatar: '',
+ invoiceStatus: 'Draft',
+ balance: 407,
+ dueDate: `${now.getFullYear()}-${currentMonth}-22`,
+ },
+ {
+ id: 4994,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-11`,
+ client: {
+ address: '5225 Ford Cape Apt. 840',
+ company: 'Schwartz, Henry and Rhodes Group',
+ companyEmail: 'margaretharvey@russell-murray.com',
+ country: 'Oman',
+ contact: '(758) 403-7718',
+ name: 'David Flores',
+ },
+ service: 'Template Customization',
+ total: 4309,
+ avatar: avatar5,
+ invoiceStatus: 'Paid',
+ balance: -205,
+ dueDate: `${now.getFullYear()}-${currentMonth}-13`,
+ },
+ {
+ id: 4995,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-16`,
+ client: {
+ address: '23717 James Club Suite 277',
+ company: 'Henderson-Holder PLC',
+ companyEmail: 'dianarodriguez@villegas.com',
+ country: 'Cambodia',
+ contact: '(292) 873-8254',
+ name: 'Valerie Perez',
+ },
+ service: 'Software Development',
+ total: 3367,
+ avatar: avatar6,
+ invoiceStatus: 'Downloaded',
+ balance: 3367,
+ dueDate: `${now.getFullYear()}-${currentMonth}-24`,
+ },
+ {
+ id: 4996,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-15`,
+ client: {
+ address: '4528 Myers Gateway',
+ company: 'Page-Wise PLC',
+ companyEmail: 'bwilson@norris-brock.com',
+ country: 'Guam',
+ contact: '(956) 803-2008',
+ name: 'Susan Dickerson',
+ },
+ service: 'Software Development',
+ total: 4776,
+ avatar: avatar7,
+ invoiceStatus: 'Downloaded',
+ balance: 305,
+ dueDate: `${now.getFullYear()}-${currentMonth}-02`,
+ },
+ {
+ id: 4997,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-27`,
+ client: {
+ address: '4234 Mills Club Suite 107',
+ company: 'Turner PLC Inc',
+ companyEmail: 'markcampbell@bell.info',
+ country: 'United States Virgin Islands',
+ contact: '(716) 962-8635',
+ name: 'Kelly Smith',
+ },
+ service: 'Unlimited Extended License',
+ total: 3789,
+ avatar: avatar8,
+ invoiceStatus: 'Partial Payment',
+ balance: 666,
+ dueDate: `${now.getFullYear()}-${currentMonth}-18`,
+ },
+ {
+ id: 4998,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-31`,
+ client: {
+ address: '476 Keith Meadow',
+ company: 'Levine-Dorsey PLC',
+ companyEmail: 'mary61@rosario.com',
+ country: 'Syrian Arab Republic',
+ contact: '(523) 449-0782',
+ name: 'Jamie Jones',
+ },
+ service: 'Unlimited Extended License',
+ total: 5200,
+ avatar: avatar2,
+ invoiceStatus: 'Partial Payment',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-17`,
+ },
+ {
+ id: 4999,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-14`,
+ client: {
+ address: '56381 Ashley Village Apt. 332',
+ company: 'Hall, Thompson and Ramirez LLC',
+ companyEmail: 'sean22@cook.com',
+ country: 'Ukraine',
+ contact: '(583) 470-8356',
+ name: 'Ruben Garcia',
+ },
+ service: 'Software Development',
+ total: 4558,
+ avatar: avatar1,
+ invoiceStatus: 'Paid',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-01`,
+ },
+ {
+ id: 5000,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-21`,
+ client: {
+ address: '6946 Gregory Plaza Apt. 310',
+ company: 'Lambert-Thomas Group',
+ companyEmail: 'mccoymatthew@lopez-jenkins.net',
+ country: 'Vanuatu',
+ contact: '(366) 906-6467',
+ name: 'Ryan Meyer',
+ },
+ service: 'Template Customization',
+ total: 3503,
+ avatar: avatar7,
+ invoiceStatus: 'Paid',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-22`,
+ },
+ {
+ id: 5001,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-30`,
+ client: {
+ address: '64351 Andrew Lights',
+ company: 'Gregory-Haynes PLC',
+ companyEmail: 'novakshannon@mccarty-murillo.com',
+ country: 'Romania',
+ contact: '(320) 616-3915',
+ name: 'Valerie Valdez',
+ },
+ service: 'Unlimited Extended License',
+ total: 5285,
+ avatar: avatar6,
+ invoiceStatus: 'Partial Payment',
+ balance: -202,
+ dueDate: `${now.getFullYear()}-${currentMonth}-02`,
+ },
+ {
+ id: 5002,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-21`,
+ client: {
+ address: '5702 Sarah Heights',
+ company: 'Wright-Schmidt LLC',
+ companyEmail: 'smithrachel@davis-rose.net',
+ country: 'Costa Rica',
+ contact: '(435) 899-1963',
+ name: 'Melissa Wheeler',
+ },
+ service: 'UI/UX Design & Development',
+ total: 3668,
+ avatar: avatar5,
+ invoiceStatus: 'Downloaded',
+ balance: 731,
+ dueDate: `${now.getFullYear()}-${currentMonth}-15`,
+ },
+ {
+ id: 5003,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-30`,
+ client: {
+ address: '668 Robert Flats',
+ company: 'Russell-Abbott Ltd',
+ companyEmail: 'scott96@mejia.net',
+ country: 'Congo',
+ contact: '(254) 399-4728',
+ name: 'Alan Jimenez',
+ },
+ service: 'Unlimited Extended License',
+ total: 4372,
+ avatar: '',
+ invoiceStatus: 'Sent',
+ balance: -344,
+ dueDate: `${now.getFullYear()}-${currentMonth}-17`,
+ },
+ {
+ id: 5004,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-27`,
+ client: {
+ address: '55642 Chang Extensions Suite 373',
+ company: 'Williams LLC Inc',
+ companyEmail: 'cramirez@ross-bass.biz',
+ country: 'Saint Pierre and Miquelon',
+ contact: '(648) 500-4338',
+ name: 'Jennifer Morris',
+ },
+ service: 'Template Customization',
+ total: 3198,
+ avatar: avatar4,
+ invoiceStatus: 'Partial Payment',
+ balance: -253,
+ dueDate: `${now.getFullYear()}-${currentMonth}-16`,
+ },
+ {
+ id: 5005,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-30`,
+ client: {
+ address: '56694 Eric Orchard',
+ company: 'Hudson, Bell and Phillips PLC',
+ companyEmail: 'arielberg@wolfe-smith.com',
+ country: 'Uruguay',
+ contact: '(896) 544-3796',
+ name: 'Timothy Stevenson',
+ },
+ service: 'Unlimited Extended License',
+ total: 5293,
+ avatar: '',
+ invoiceStatus: 'Past Due',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-01`,
+ },
+ {
+ id: 5006,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-10`,
+ client: {
+ address: '3727 Emma Island Suite 879',
+ company: 'Berry, Gonzalez and Heath Inc',
+ companyEmail: 'yrobinson@nichols.com',
+ country: 'Israel',
+ contact: '(236) 784-5142',
+ name: 'Erik Hayden',
+ },
+ service: 'Template Customization',
+ total: 5612,
+ avatar: avatar3,
+ invoiceStatus: 'Downloaded',
+ balance: 883,
+ dueDate: `${now.getFullYear()}-${currentMonth}-12`,
+ },
+ {
+ id: 5007,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-01`,
+ client: {
+ address: '953 Miller Common Suite 580',
+ company: 'Martinez, Fuller and Chavez and Sons',
+ companyEmail: 'tatejennifer@allen.net',
+ country: 'Cook Islands',
+ contact: '(436) 717-2419',
+ name: 'Katherine Kennedy',
+ },
+ service: 'Software Development',
+ total: 2230,
+ avatar: avatar2,
+ invoiceStatus: 'Sent',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-19`,
+ },
+ {
+ id: 5008,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-22`,
+ client: {
+ address: '808 Sullivan Street Apt. 135',
+ company: 'Wilson and Sons LLC',
+ companyEmail: 'gdurham@lee.com',
+ country: 'Nepal',
+ contact: '(489) 946-3041',
+ name: 'Monica Fuller',
+ },
+ service: 'Unlimited Extended License',
+ total: 2032,
+ avatar: avatar1,
+ invoiceStatus: 'Partial Payment',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-30`,
+ },
+ {
+ id: 5009,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-30`,
+ client: {
+ address: '25135 Christopher Creek',
+ company: 'Hawkins, Johnston and Mcguire PLC',
+ companyEmail: 'jenny96@lawrence-thompson.com',
+ country: 'Kiribati',
+ contact: '(274) 246-3725',
+ name: 'Stacey Carter',
+ },
+ service: 'UI/UX Design & Development',
+ total: 3128,
+ avatar: avatar8,
+ invoiceStatus: 'Paid',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-10`,
+ },
+ {
+ id: 5010,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-06`,
+ client: {
+ address: '81285 Rebecca Estates Suite 046',
+ company: 'Huynh-Mills and Sons',
+ companyEmail: 'jgutierrez@jackson.com',
+ country: 'Swaziland',
+ contact: '(258) 211-5970',
+ name: 'Chad Davis',
+ },
+ service: 'Software Development',
+ total: 2060,
+ avatar: avatar7,
+ invoiceStatus: 'Downloaded',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-08`,
+ },
+ {
+ id: 5011,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-01`,
+ client: {
+ address: '3102 Briggs Dale Suite 118',
+ company: 'Jones-Cooley and Sons',
+ companyEmail: 'hunter14@jones.com',
+ country: 'Congo',
+ contact: '(593) 965-4100',
+ name: 'Chris Reyes',
+ },
+ service: 'UI/UX Design & Development',
+ total: 4077,
+ avatar: '',
+ invoiceStatus: 'Draft',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-01`,
+ },
+ {
+ id: 5012,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-30`,
+ client: {
+ address: '811 Jill Skyway',
+ company: 'Jones PLC Ltd',
+ companyEmail: 'pricetodd@johnson-jenkins.com',
+ country: 'Brazil',
+ contact: '(585) 829-2603',
+ name: 'Laurie Summers',
+ },
+ service: 'Template Customization',
+ total: 2872,
+ avatar: avatar6,
+ invoiceStatus: 'Partial Payment',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-18`,
+ },
+ {
+ id: 5013,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-05`,
+ client: {
+ address: '2223 Brandon Inlet Suite 597',
+ company: 'Jordan, Gomez and Ross Group',
+ companyEmail: 'perrydavid@chapman-rogers.com',
+ country: 'Congo',
+ contact: '(527) 351-5517',
+ name: 'Lindsay Wilson',
+ },
+ service: 'Software Development',
+ total: 3740,
+ avatar: avatar4,
+ invoiceStatus: 'Draft',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-01`,
+ },
+ {
+ id: 5014,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-01`,
+ client: {
+ address: '08724 Barry Causeway',
+ company: 'Gonzalez, Moody and Glover LLC',
+ companyEmail: 'leahgriffin@carpenter.com',
+ country: 'Equatorial Guinea',
+ contact: '(628) 903-0132',
+ name: 'Jenna Castro',
+ },
+ service: 'Unlimited Extended License',
+ total: 3623,
+ avatar: '',
+ invoiceStatus: 'Downloaded',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-23`,
+ },
+ {
+ id: 5015,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-16`,
+ client: {
+ address: '073 Holt Ramp Apt. 755',
+ company: 'Ashley-Pacheco Ltd',
+ companyEmail: 'esparzadaniel@allen.com',
+ country: 'Seychelles',
+ contact: '(847) 396-9904',
+ name: 'Wendy Weber',
+ },
+ service: 'Software Development',
+ total: 2477,
+ avatar: avatar5,
+ invoiceStatus: 'Draft',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-01`,
+ },
+ {
+ id: 5016,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-24`,
+ client: {
+ address: '984 Sherry Trail Apt. 953',
+ company: 'Berry PLC Group',
+ companyEmail: 'todd34@owens-morgan.com',
+ country: 'Ireland',
+ contact: '(852) 249-4539',
+ name: 'April Yates',
+ },
+ service: 'Unlimited Extended License',
+ total: 3904,
+ avatar: '',
+ invoiceStatus: 'Paid',
+ balance: 951,
+ dueDate: `${now.getFullYear()}-${currentMonth}-30`,
+ },
+ {
+ id: 5017,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-24`,
+ client: {
+ address: '093 Jonathan Camp Suite 953',
+ company: 'Allen Group Ltd',
+ companyEmail: 'roydavid@bailey.com',
+ country: 'Netherlands',
+ contact: '(917) 984-2232',
+ name: 'Daniel Marshall PhD',
+ },
+ service: 'UI/UX Design & Development',
+ total: 3102,
+ avatar: avatar3,
+ invoiceStatus: 'Partial Payment',
+ balance: -153,
+ dueDate: `${now.getFullYear()}-${currentMonth}-25`,
+ },
+ {
+ id: 5018,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-29`,
+ client: {
+ address: '4735 Kristie Islands Apt. 259',
+ company: 'Chapman-Schneider LLC',
+ companyEmail: 'baldwinjoel@washington.com',
+ country: 'Cocos (Keeling) Islands',
+ contact: '(670) 409-3703',
+ name: 'Randy Rich',
+ },
+ service: 'UI/UX Design & Development',
+ total: 2483,
+ avatar: avatar2,
+ invoiceStatus: 'Draft',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-10`,
+ },
+ {
+ id: 5019,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-07`,
+ client: {
+ address: '92218 Andrew Radial',
+ company: 'Mcclure, Hernandez and Simon Ltd',
+ companyEmail: 'psmith@morris.info',
+ country: 'Macao',
+ contact: '(646) 263-0257',
+ name: 'Mrs. Jodi Chapman',
+ },
+ service: 'Unlimited Extended License',
+ total: 2825,
+ avatar: avatar1,
+ invoiceStatus: 'Partial Payment',
+ balance: -459,
+ dueDate: `${now.getFullYear()}-${currentMonth}-14`,
+ },
+ {
+ id: 5020,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-10`,
+ client: {
+ address: '2342 Michelle Valley',
+ company: 'Hamilton PLC and Sons',
+ companyEmail: 'lori06@morse.com',
+ country: 'Somalia',
+ contact: '(751) 213-4288',
+ name: 'Steven Myers',
+ },
+ service: 'Unlimited Extended License',
+ total: 2029,
+ avatar: avatar2,
+ invoiceStatus: 'Past Due',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-28`,
+ },
+ {
+ id: 5021,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-02`,
+ client: {
+ address: '16039 Brittany Terrace Apt. 128',
+ company: 'Silva-Reeves LLC',
+ companyEmail: 'zpearson@miller.com',
+ country: 'Slovakia (Slovak Republic)',
+ contact: '(655) 649-7872',
+ name: 'Charles Alexander',
+ },
+ service: 'Software Development',
+ total: 3208,
+ avatar: '',
+ invoiceStatus: 'Sent',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-06`,
+ },
+ {
+ id: 5022,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-02`,
+ client: {
+ address: '37856 Olsen Lakes Apt. 852',
+ company: 'Solis LLC Ltd',
+ companyEmail: 'strongpenny@young.net',
+ country: 'Brazil',
+ contact: '(402) 935-0735',
+ name: 'Elizabeth Jones',
+ },
+ service: 'Software Development',
+ total: 3077,
+ avatar: '',
+ invoiceStatus: 'Sent',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-09`,
+ },
+ {
+ id: 5023,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-23`,
+ client: {
+ address: '11489 Griffin Plaza Apt. 927',
+ company: 'Munoz-Peters and Sons',
+ companyEmail: 'carrietorres@acosta.com',
+ country: 'Argentina',
+ contact: '(915) 448-6271',
+ name: 'Heidi Walton',
+ },
+ service: 'Software Development',
+ total: 5578,
+ avatar: avatar4,
+ invoiceStatus: 'Draft',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-23`,
+ },
+ {
+ id: 5024,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-28`,
+ client: {
+ address: '276 Michael Gardens Apt. 004',
+ company: 'Shea, Velez and Garcia LLC',
+ companyEmail: 'zjohnson@nichols-powers.com',
+ country: 'Philippines',
+ contact: '(817) 700-2984',
+ name: 'Christopher Allen',
+ },
+ service: 'Software Development',
+ total: 2787,
+ avatar: avatar5,
+ invoiceStatus: 'Partial Payment',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-25`,
+ },
+ {
+ id: 5025,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-21`,
+ client: {
+ address: '633 Bell Well Apt. 057',
+ company: 'Adams, Simmons and Brown Group',
+ companyEmail: 'kayla09@thomas.com',
+ country: 'Martinique',
+ contact: '(266) 611-9482',
+ name: 'Joseph Oliver',
+ },
+ service: 'UI/UX Design & Development',
+ total: 5591,
+ avatar: '',
+ invoiceStatus: 'Downloaded',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-07`,
+ },
+ {
+ id: 5026,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-24`,
+ client: {
+ address: '1068 Lopez Fall',
+ company: 'Williams-Lawrence and Sons',
+ companyEmail: 'melvindavis@allen.info',
+ country: 'Mexico',
+ contact: '(739) 745-9728',
+ name: 'Megan Roberts',
+ },
+ service: 'Template Customization',
+ total: 2783,
+ avatar: avatar6,
+ invoiceStatus: 'Draft',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-22`,
+ },
+ {
+ id: 5027,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-13`,
+ client: {
+ address: '86691 Mackenzie Light Suite 568',
+ company: 'Deleon Inc LLC',
+ companyEmail: 'gjordan@fernandez-coleman.com',
+ country: 'Costa Rica',
+ contact: '(682) 804-6506',
+ name: 'Mary Garcia',
+ },
+ service: 'Template Customization',
+ total: 2719,
+ avatar: '',
+ invoiceStatus: 'Sent',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-04`,
+ },
+ {
+ id: 5028,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-18`,
+ client: {
+ address: '86580 Sarah Bridge',
+ company: 'Farmer, Johnson and Anderson Group',
+ companyEmail: 'robertscott@garcia.com',
+ country: 'Cameroon',
+ contact: '(775) 366-0411',
+ name: 'Crystal Mays',
+ },
+ service: 'Template Customization',
+ total: 3325,
+ avatar: '',
+ invoiceStatus: 'Paid',
+ balance: 361,
+ dueDate: `${now.getFullYear()}-${currentMonth}-02`,
+ },
+ {
+ id: 5029,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-29`,
+ client: {
+ address: '49709 Edwin Ports Apt. 353',
+ company: 'Sherman-Johnson PLC',
+ companyEmail: 'desiree61@kelly.com',
+ country: 'Macedonia',
+ contact: '(510) 536-6029',
+ name: 'Nicholas Tanner',
+ },
+ service: 'Template Customization',
+ total: 3851,
+ avatar: '',
+ invoiceStatus: 'Paid',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-25`,
+ },
+ {
+ id: 5030,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-07`,
+ client: {
+ address: '3856 Mathis Squares Apt. 584',
+ company: 'Byrd LLC PLC',
+ companyEmail: 'jeffrey25@martinez-hodge.com',
+ country: 'Congo',
+ contact: '(253) 230-4657',
+ name: 'Justin Richardson',
+ },
+ service: 'Template Customization',
+ total: 5565,
+ avatar: '',
+ invoiceStatus: 'Draft',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-06`,
+ },
+ {
+ id: 5031,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-21`,
+ client: {
+ address: '141 Adrian Ridge Suite 550',
+ company: 'Stone-Zimmerman Group',
+ companyEmail: 'john77@anderson.net',
+ country: 'Falkland Islands (Malvinas)',
+ contact: '(612) 546-3485',
+ name: 'Jennifer Summers',
+ },
+ service: 'Template Customization',
+ total: 3313,
+ avatar: avatar7,
+ invoiceStatus: 'Partial Payment',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-09`,
+ },
+ {
+ id: 5032,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-31`,
+ client: {
+ address: '01871 Kristy Square',
+ company: 'Yang, Hansen and Hart PLC',
+ companyEmail: 'ywagner@jones.com',
+ country: 'Germany',
+ contact: '(203) 601-8603',
+ name: 'Richard Payne',
+ },
+ service: 'Template Customization',
+ total: 5181,
+ avatar: '',
+ invoiceStatus: 'Past Due',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-29`,
+ },
+ {
+ id: 5033,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-12`,
+ client: {
+ address: '075 Smith Views',
+ company: 'Jenkins-Rosales Inc',
+ companyEmail: 'calvin07@joseph-edwards.org',
+ country: 'Colombia',
+ contact: '(895) 401-4255',
+ name: 'Lori Wells',
+ },
+ service: 'Template Customization',
+ total: 2869,
+ avatar: avatar4,
+ invoiceStatus: 'Partial Payment',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-22`,
+ },
+ {
+ id: 5034,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-10`,
+ client: {
+ address: '2577 Pearson Overpass Apt. 314',
+ company: 'Mason-Reed PLC',
+ companyEmail: 'eric47@george-castillo.com',
+ country: 'Paraguay',
+ contact: '(602) 336-9806',
+ name: 'Tammy Sanchez',
+ },
+ service: 'Unlimited Extended License',
+ total: 4836,
+ avatar: '',
+ invoiceStatus: 'Paid',
+ balance: 0,
+ dueDate: `${now.getFullYear()}-${currentMonth}-22`,
+ },
+ {
+ id: 5035,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-20`,
+ client: {
+ address: '1770 Sandra Mountains Suite 636',
+ company: 'Foster-Pham PLC',
+ companyEmail: 'jamesjoel@chapman.net',
+ country: 'Western Sahara',
+ contact: '(936) 550-1638',
+ name: 'Dana Carey',
+ },
+ service: 'UI/UX Design & Development',
+ total: 4263,
+ avatar: '',
+ invoiceStatus: 'Draft',
+ balance: 762,
+ dueDate: `${now.getFullYear()}-${currentMonth}-12`,
+ },
+ {
+ id: 5036,
+ issuedDate: `${now.getFullYear()}-${currentMonth}-19`,
+ client: {
+ address: '78083 Laura Pines',
+ company: 'Richardson and Sons LLC',
+ companyEmail: 'pwillis@cross.org',
+ country: 'Bhutan',
+ contact: '(687) 660-2473',
+ name: 'Andrew Burns',
+ },
+ service: 'Unlimited Extended License',
+ total: 3171,
+ avatar: avatar3,
+ invoiceStatus: 'Paid',
+ balance: -205,
+ dueDate: `${now.getFullYear()}-${currentMonth}-25`,
+ },
+]
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/invoice/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/invoice/index.ts
new file mode 100644
index 0000000..24ba780
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/invoice/index.ts
@@ -0,0 +1,175 @@
+import is from '@sindresorhus/is'
+import { destr } from 'destr'
+import type { PathParams } from 'msw'
+import { HttpResponse, http } from 'msw'
+import { database } from '@db/apps/invoice/db'
+import { paginateArray } from '@api-utils/paginateArray'
+
+export const handlerAppsInvoice = [
+
+ // ๐ Client
+ // Get Clients
+ http.get(('/api/apps/invoice/clients'), () => {
+ const clients = database.map(invoice => invoice.client)
+
+ return HttpResponse.json(clients.splice(0, 5), { status: 200 })
+ }),
+
+ // ๐ Invoice
+ // Get Invoice List
+ http.get(('/api/apps/invoice'), ({ request }) => {
+ const url = new URL(request.url)
+ const q = url.searchParams.get('q')
+ const status = url.searchParams.get('status')
+ const selectedDateRange = url.searchParams.get('selectedDateRange')
+ const page = url.searchParams.get('page')
+ const itemsPerPage = url.searchParams.get('itemsPerPage')
+ const sortBy = url.searchParams.get('sortBy')
+ const orderBy = url.searchParams.get('orderBy')
+
+ const searchQuery = is.string(q) ? q : undefined
+ const queryLowered = (searchQuery ?? '').toString().toLowerCase()
+
+ const parsedSortBy = destr(sortBy)
+ const sortByLocal = is.string(parsedSortBy) ? parsedSortBy : ''
+
+ const parsedOrderBy = destr(orderBy)
+ const orderByLocal = is.string(parsedOrderBy) ? parsedOrderBy : ''
+
+ const parsedItemsPerPage = destr(itemsPerPage)
+ const parsedPage = destr(page)
+
+ const itemsPerPageLocal = is.number(parsedItemsPerPage) ? parsedItemsPerPage : 10
+ const pageLocal = is.number(parsedPage) ? parsedPage : 1
+
+ const parsedDateRange = destr(selectedDateRange) as unknown as { start?: string; end?: string }
+ const startDateLocal = parsedDateRange?.start
+ const endDateLocal = parsedDateRange?.end
+
+ // Filtering invoices
+ let filteredInvoices = database.filter(
+ invoice => (
+ (
+ invoice.client.name.toLowerCase().includes(queryLowered)
+ || invoice.client.companyEmail.toLowerCase().includes(queryLowered) || invoice.id.toString().includes(queryLowered)
+ )
+ && invoice.invoiceStatus === (status || invoice.invoiceStatus)
+ ),
+
+ ).reverse()
+
+ // Sorting invoices
+ if (sortByLocal) {
+ if (sortByLocal === 'client') {
+ filteredInvoices = filteredInvoices.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.client.name.localeCompare(b.client.name)
+
+ return b.client.name.localeCompare(a.client.name)
+ })
+ }
+ else if (sortByLocal === 'total') {
+ filteredInvoices = filteredInvoices.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.total - b.total
+
+ return b.total - a.total
+ })
+ }
+ else if (sortByLocal === 'id') {
+ filteredInvoices = filteredInvoices.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.id - b.id
+
+ return b.id - a.id
+ })
+ }
+ else if (sortByLocal === 'date') {
+ filteredInvoices = filteredInvoices.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return new Date(a.issuedDate).getTime() - new Date(b.issuedDate).getTime()
+
+ return new Date(b.issuedDate).getTime() - new Date(a.issuedDate).getTime()
+ })
+ }
+ else if (sortByLocal === 'balance') {
+ filteredInvoices = filteredInvoices.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.balance - b.balance
+
+ return b.balance - a.balance
+ })
+ }
+ }
+
+ // filtering invoices by date
+ if (startDateLocal && endDateLocal) {
+ filteredInvoices = filteredInvoices.filter(invoiceObj => {
+ const start = new Date(startDateLocal).getTime()
+ const end = new Date(endDateLocal).getTime()
+ const issuedDate = new Date(invoiceObj.issuedDate).getTime()
+
+ return issuedDate >= start && issuedDate <= end
+ })
+ }
+
+ const totalInvoices = filteredInvoices.length
+
+ return HttpResponse.json(
+ {
+ invoices: paginateArray(filteredInvoices, itemsPerPageLocal, pageLocal),
+ totalInvoices,
+ },
+ {
+ status: 200,
+ },
+ )
+ }),
+
+ // Get Single Invoice
+ http.get(('/api/apps/invoice/:id'), ({ params }) => {
+ const invoiceId = params.id
+
+ const invoice = database.find(e => e.id === Number(invoiceId))
+
+ if (!invoice) {
+ return HttpResponse.json('No invoice found with this id',
+ { status: 404 },
+ )
+ }
+
+ const responseData = {
+ invoice,
+ paymentDetails: {
+ totalDue: '$12,110.55',
+ bankName: 'American Bank',
+ country: 'United States',
+ iban: 'ETD95476213874685',
+ swiftCode: 'BR91905',
+ },
+ }
+
+ return HttpResponse.json(responseData, { status: 200 })
+ }),
+
+ // Delete Invoice
+ http.delete(('/api/apps/invoice/:id'), ({ params }) => {
+ const invoiceId = params.id
+
+ const invoiceIndex = database.findIndex(e => e.id === Number(invoiceId))
+
+ if (invoiceIndex >= 0) {
+ database.splice(invoiceIndex, 1)
+
+ return new HttpResponse(null, {
+ status: 204,
+ })
+ }
+
+ return HttpResponse.json(
+ { error: 'Something went wrong' },
+ { status: 404 },
+ )
+ }),
+
+]
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/invoice/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/invoice/types.ts
new file mode 100644
index 0000000..3d75e28
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/invoice/types.ts
@@ -0,0 +1,31 @@
+// ๐ Client
+export interface Client {
+ address: string
+ company: string
+ companyEmail: string
+ country: string
+ contact: string
+ name: string
+}
+
+// ๐ Invoice
+export interface Invoice {
+ id: number
+ issuedDate: string
+ client: Client
+ service: string
+ total: number
+ avatar: string
+ invoiceStatus: string
+ balance: number
+ dueDate: string
+}
+
+// Payment details
+export interface PaymentDetails {
+ totalDue: string
+ bankName: string
+ country: string
+ iban: string
+ swiftCode: string
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/kanban/db.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/kanban/db.ts
new file mode 100644
index 0000000..ba9b187
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/kanban/db.ts
@@ -0,0 +1,93 @@
+import type { KanbanData } from '@db/apps/kanban/types'
+import avatar1 from '@images/avatars/avatar-1.png'
+import avatar2 from '@images/avatars/avatar-2.png'
+import avatar3 from '@images/avatars/avatar-3.png'
+import treePot from '@images/pages/tree-pot.png'
+
+export const database: KanbanData = {
+ boards: [
+ {
+ id: 1,
+ title: 'In Progress',
+ itemsIds: [1, 2],
+ },
+ {
+ id: 2,
+ title: 'In Review',
+ itemsIds: [3, 4],
+ },
+ {
+ id: 3,
+ title: 'Done',
+ itemsIds: [5, 6],
+ },
+ ],
+ items: [
+ {
+ id: 1,
+ title: 'Research FAQ page UX',
+ dueDate: '',
+ labels: ['UX'],
+ members: [{ img: avatar1, name: 'John Doe' }, { img: avatar2, name: 'Jane Smith' }, { img: avatar3, name: 'Robert Johnson' }],
+ comments: 'FAQ page design is ready and needs to be implemented.',
+ attachments: 2,
+ commentsCount: 1,
+ image: '',
+ },
+ {
+ id: 2,
+ title: 'Review JavaScript code',
+ dueDate: '',
+ labels: ['Code Review'],
+ members: [{ img: avatar1, name: 'John Doe' }, { img: avatar2, name: 'Jane Smith' }],
+ comments: 'JavaScript code needs to be reviewed and refactored.',
+ attachments: 2,
+ commentsCount: 4,
+ image: '',
+ },
+ {
+ id: 3,
+ title: 'Review completed Apps',
+ dueDate: '',
+ labels: ['Dashboard'],
+ members: [{ img: avatar1, name: 'John Doe' }, { img: avatar2, name: 'Jane Smith' }],
+ comments: 'Apps design is ready and needs to be implemented.',
+ image: '',
+ attachments: 5,
+ commentsCount: 10,
+ },
+ {
+ id: 4,
+ title: 'Find new images for pages',
+ dueDate: '',
+ labels: ['Image'],
+ members: [{ img: avatar1, name: 'John Doe' }, { img: avatar2, name: 'Jane Smith' }, { img: avatar3, name: 'Robert Johnson' }],
+ comments: 'New images need to be found for the new pages.',
+ image: treePot,
+ attachments: 5,
+ commentsCount: 4,
+ },
+ {
+ id: 5,
+ title: 'Forms & tables section',
+ dueDate: '',
+ labels: ['App'],
+ members: [{ img: avatar1, name: 'John Doe' }, { img: avatar2, name: 'Jane Smith' }],
+ comments: 'Forms and tables need to be updated.',
+ attachments: 7,
+ commentsCount: 2,
+ image: '',
+ },
+ {
+ id: 6,
+ title: 'Completed charts & maps',
+ dueDate: '',
+ labels: ['Charts & Maps'],
+ members: [{ img: avatar1, name: 'John Doe' }],
+ comments: 'Charts and maps need to be updated.',
+ attachments: 1,
+ commentsCount: 10,
+ image: '',
+ },
+ ],
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/kanban/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/kanban/index.ts
new file mode 100644
index 0000000..1822f61
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/kanban/index.ts
@@ -0,0 +1,151 @@
+import { HttpResponse, http } from 'msw'
+import { database } from '@db/apps/kanban/db'
+import type { AddNewKanbanItem, EditKanbanItem, KanbanBoard, KanbanState, RenameKanbanBoard } from '@db/apps/kanban/types'
+
+export const handlerAppsKanban = [
+
+ // ๐ get all kanban data
+ http.get('/api/apps/kanban', () => {
+ return HttpResponse.json(database, { status: 200 })
+ }),
+
+ // ๐ rename board
+ http.put('/api/apps/kanban/board/rename', async ({ request }) => {
+ const boardData = await request.json() as RenameKanbanBoard
+
+ database.boards = database.boards.map(board => {
+ if (board.id === boardData.boardId)
+ board.title = boardData.newName
+
+ return board
+ })
+
+ return new HttpResponse(null, { status: 201 })
+ }),
+
+ // ๐ delete board
+ http.delete('/api/apps/kanban/board/:id', async ({ params }) => {
+ const boardId = Number(params.id)
+
+ database.boards = database.boards.filter(board => board.id !== boardId)
+
+ return new HttpResponse(null, { status: 204 })
+ }),
+
+ // ๐ add new board
+ http.post('/api/apps/kanban/board/add', async ({ request }) => {
+ const boardName = await request.json() as { title: string }
+
+ const getNewBoardId = () => {
+ const newBoardId = database.boards.length + 1
+ if (!(database.boards.some(board => board.id === newBoardId)))
+ return newBoardId
+
+ else
+ return newBoardId + 1
+ }
+
+ if (database.boards.some(board => board.title === boardName.title)) {
+ return HttpResponse.error()
+ }
+ else {
+ database.boards.push({
+ id: getNewBoardId(),
+ title: boardName.title,
+ itemsIds: [],
+ })
+
+ return new HttpResponse(null, { status: 201 })
+ }
+ }),
+
+ // ๐ add new item
+ http.post('/api/apps/kanban/item/add', async ({ request }) => {
+ const newItem = await request.json() as AddNewKanbanItem
+
+ const itemId = database.items[database.items.length - 1].id + 1
+
+ if (newItem.itemTitle && newItem.boardName) {
+ // Add the new item to the items list
+ database.items.push({
+ id: itemId,
+ title: newItem.itemTitle,
+ attachments: 0,
+ comments: '',
+ commentsCount: 0,
+ dueDate: '',
+ labels: [],
+ members: [],
+ })
+
+ // find the index of board in the database
+ const boardId = database.boards.findIndex(board => board.id === newItem.boardId)
+
+ // Add the new item to the board
+ database.boards[boardId].itemsIds.push(itemId)
+ }
+ else {
+ return HttpResponse.error()
+ }
+
+ return new HttpResponse(null, { status: 201 })
+ }),
+
+ // ๐ update item
+ http.put('/api/apps/kanban/item/update', async ({ request }) => {
+ const itemData = await request.json() as EditKanbanItem
+
+ database.items.forEach(item => {
+ if (itemData.item && item.id === itemData.item.id) {
+ item.title = itemData.item.title
+ item.attachments = itemData.item.attachments
+ item.comments = itemData.item.comments
+ item.commentsCount = itemData.item.commentsCount
+ item.dueDate = itemData.item.dueDate
+ item.labels = itemData.item.labels
+ item.members = itemData.item.members
+ }
+ })
+
+ return new HttpResponse(null, { status: 201 })
+ }),
+
+ // ๐ delete item
+ http.delete('/api/apps/kanban/item/:id', async ({ params }) => {
+ const itemId = Number(params.id)
+
+ database.items = database.items.filter(item => item.id !== itemId)
+
+ database.boards.forEach(board => {
+ board.itemsIds = board.itemsIds.filter(id => id !== itemId)
+ })
+
+ return new HttpResponse(null, { status: 204 })
+ }),
+
+ // ๐ update item state
+ http.put('/api/apps/kanban/item/state-update', async ({ request }) => {
+ const stateData = await request.json() as KanbanState
+
+ database.boards.forEach(board => {
+ if (board.id === stateData.boardId)
+ board.itemsIds = stateData.ids
+ })
+
+ return new HttpResponse(null, { status: 201 })
+ }),
+
+ // ๐ update board state
+ http.put('/api/apps/kanban/board/state-update', async ({ request }) => {
+ const boardState = await request.json() as number[]
+
+ // sort board as per boardState
+ const sortedBoards: KanbanBoard[] = boardState.map(boardId => {
+ return database.boards.find(board => board.id === boardId) as KanbanBoard
+ })
+
+ database.boards = sortedBoards
+
+ return new HttpResponse(null, { status: 201 })
+ }),
+]
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/kanban/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/kanban/types.ts
new file mode 100644
index 0000000..bf820d2
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/kanban/types.ts
@@ -0,0 +1,47 @@
+// Kanban Data
+interface Member { name: string; img: string }
+
+export interface KanbanItem {
+ id: number
+ title: string
+ comments?: string
+ dueDate?: string
+ labels?: string[]
+ members?: Member[]
+ attachments?: number
+ commentsCount?: number
+ image?: string
+}
+export interface KanbanBoard {
+ id: number
+ title: string
+ itemsIds: number[]
+}
+
+export interface RenameKanbanBoard {
+ oldName: string
+ boardId: number
+ newName: string
+}
+
+export interface AddNewKanbanItem {
+ itemTitle: string
+ boardName: string
+ boardId: number
+}
+
+export interface EditKanbanItem {
+ item: KanbanItem | undefined
+ boardName: string
+ boardId: number
+}
+
+export interface KanbanData {
+ boards: KanbanBoard[]
+ items: KanbanItem[]
+}
+
+export interface KanbanState {
+ ids: number[]
+ boardId: number
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/logistics/db.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/logistics/db.ts
new file mode 100644
index 0000000..959e2ae
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/logistics/db.ts
@@ -0,0 +1,260 @@
+import type { Vehicle } from '@db/apps/logistics/types'
+
+interface DB {
+ vehicles: Vehicle[]
+}
+
+export const db: DB = {
+ vehicles: [
+ {
+ id: 1,
+ location: 468031,
+ startCity: 'Cagnes-sur-Mer',
+ startCountry: 'France',
+ endCity: 'Catania',
+ endCountry: 'Italy',
+ warnings: 'No Warnings',
+ progress: 49,
+ },
+ {
+ id: 2,
+ location: 302781,
+ startCity: 'Kรถln',
+ startCountry: 'Germany',
+ endCity: 'Laspezia',
+ endCountry: 'Italy',
+ warnings: 'Ecu Not Responding',
+ progress: 24,
+ },
+ {
+ id: 3,
+ location: 715822,
+ startCity: 'Chambray-lรจs-Tours',
+ startCountry: 'France',
+ endCity: 'Hamm',
+ endCountry: 'Germany',
+ warnings: 'Oil Leakage',
+ progress: 7,
+ },
+ {
+ id: 4,
+ location: 451430,
+ startCity: 'Berlin',
+ startCountry: 'Germany',
+ endCity: 'Gelsenkirchen',
+ endCountry: 'Germany',
+ warnings: 'No Warnings',
+ progress: 95,
+ },
+ {
+ id: 5,
+ location: 921577,
+ startCity: 'Cergy-Pontoise',
+ startCountry: 'France',
+ endCity: 'Berlin',
+ endCountry: 'Germany',
+ warnings: 'No Warnings',
+ progress: 65,
+ },
+ {
+ id: 6,
+ location: 480957,
+ startCity: 'Villefranche-sur-Saรดne',
+ startCountry: 'France',
+ endCity: 'Halle',
+ endCountry: 'Germany',
+ warnings: 'Ecu Not Responding',
+ progress: 55,
+ },
+ {
+ id: 7,
+ location: 330178,
+ startCity: 'Mรขcon',
+ startCountry: 'France',
+ endCity: 'Bochum',
+ endCountry: 'Germany',
+ warnings: 'Fuel Problems',
+ progress: 74,
+ },
+ {
+ id: 8,
+ location: 595525,
+ startCity: 'Fullerton',
+ startCountry: 'USA',
+ endCity: 'Lรผbeck',
+ endCountry: 'Germany',
+ warnings: 'No Warnings',
+ progress: 100,
+ },
+ {
+ id: 9,
+ location: 182964,
+ startCity: 'Saintes',
+ startCountry: 'France',
+ endCity: 'Roma',
+ endCountry: 'Italy',
+ warnings: 'Oil Leakage',
+ progress: 82,
+ },
+ {
+ id: 10,
+ location: 706085,
+ startCity: 'Fort Wayne',
+ startCountry: 'USA',
+ endCity: 'Mรผlheim an der Ruhr',
+ endCountry: 'Germany',
+ warnings: 'Oil Leakage',
+ progress: 49,
+ },
+ {
+ id: 11,
+ location: 523708,
+ startCity: 'Albany',
+ startCountry: 'USA',
+ endCity: 'Wuppertal',
+ endCountry: 'Germany',
+ warnings: 'Temperature not optimal',
+ progress: 66,
+ },
+ {
+ id: 12,
+ location: 676485,
+ startCity: 'Toledo',
+ startCountry: 'USA',
+ endCity: 'Magdeburg',
+ endCountry: 'Germany',
+ warnings: 'Temperature not optimal',
+ progress: 7,
+ },
+ {
+ id: 13,
+ location: 514437,
+ startCity: 'Houston',
+ startCountry: 'USA',
+ endCity: 'Wiesbaden',
+ endCountry: 'Germany',
+ warnings: 'Fuel Problems',
+ progress: 27,
+ },
+ {
+ id: 14,
+ location: 300198,
+ startCity: 'West Palm Beach',
+ startCountry: 'USA',
+ endCity: 'Dresden',
+ endCountry: 'Germany',
+ warnings: 'Temperature not optimal',
+ progress: 90,
+ },
+ {
+ id: 15,
+ location: 960090,
+ startCity: 'Fort Lauderdale',
+ startCountry: 'USA',
+ endCity: 'Kiel',
+ endCountry: 'Germany',
+ warnings: 'No Warnings',
+ progress: 81,
+ },
+ {
+ id: 16,
+ location: 878423,
+ startCity: 'Schaumburg',
+ startCountry: 'USA',
+ endCity: 'Berlin',
+ endCountry: 'Germany',
+ warnings: 'Fuel Problems',
+ progress: 21,
+ },
+ {
+ id: 17,
+ location: 318119,
+ startCity: 'Mundolsheim',
+ startCountry: 'France',
+ endCity: 'Mรผnchen',
+ endCountry: 'Germany',
+ warnings: 'No Warnings',
+ progress: 26,
+ },
+ {
+ id: 18,
+ location: 742500,
+ startCity: 'Fargo',
+ startCountry: 'USA',
+ endCity: 'Salerno',
+ endCountry: 'Italy',
+ warnings: 'Temperature not optimal',
+ progress: 80,
+ },
+ {
+ id: 19,
+ location: 469399,
+ startCity: 'Mรผnchen',
+ startCountry: 'Germany',
+ endCity: 'Ath',
+ endCountry: 'Belgium',
+ warnings: 'Ecu Not Responding',
+ progress: 50,
+ },
+ {
+ id: 20,
+ location: 411175,
+ startCity: 'Chicago',
+ startCountry: 'USA',
+ endCity: 'Neuss',
+ endCountry: 'Germany',
+ warnings: 'Oil Leakage',
+ progress: 44,
+ },
+ {
+ id: 21,
+ location: 753525,
+ startCity: 'Limoges',
+ startCountry: 'France',
+ endCity: 'Messina',
+ endCountry: 'Italy',
+ warnings: 'Temperature not optimal',
+ progress: 55,
+ },
+ {
+ id: 22,
+ location: 882341,
+ startCity: 'Cesson-Sรฉvignรฉ',
+ startCountry: 'France',
+ endCity: 'Napoli',
+ endCountry: 'Italy',
+ warnings: 'No Warnings',
+ progress: 48,
+ },
+ {
+ id: 23,
+ location: 408270,
+ startCity: 'Leipzig',
+ startCountry: 'Germany',
+ endCity: 'Tournai',
+ endCountry: 'Belgium',
+ warnings: 'Ecu Not Responding',
+ progress: 73,
+ },
+ {
+ id: 24,
+ location: 276904,
+ startCity: 'Aulnay-sous-Bois',
+ startCountry: 'France',
+ endCity: 'Torino',
+ endCountry: 'Italy',
+ warnings: 'Fuel Problems',
+ progress: 30,
+ },
+ {
+ id: 25,
+ location: 159145,
+ startCity: 'Paris 19',
+ startCountry: 'France',
+ endCity: 'Dresden',
+ endCountry: 'Germany',
+ warnings: 'No Warnings',
+ progress: 60,
+ },
+ ],
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/logistics/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/logistics/index.ts
new file mode 100644
index 0000000..f4dbc49
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/logistics/index.ts
@@ -0,0 +1,85 @@
+import is from '@sindresorhus/is'
+import { destr } from 'destr'
+import { HttpResponse, http } from 'msw'
+import { db } from '@db/apps/logistics/db'
+import { paginateArray } from '@api-utils/paginateArray'
+
+export const handlerAppLogistics = [
+ http.get(('/api/apps/logistics/vehicles'), ({ request }) => {
+ const url = new URL(request.url)
+ const sortBy = url.searchParams.get('sortBy')
+ const page = url.searchParams.get('page') ?? 1
+ const itemsPerPage = url.searchParams.get('itemsPerPage') ?? 10
+ const orderBy = url.searchParams.get('orderBy')
+
+ const parsedSortBy = destr(sortBy)
+ const sortByLocal = is.string(parsedSortBy) ? parsedSortBy : ''
+
+ const parsedOrderBy = destr(orderBy)
+ const orderByLocal = is.string(parsedOrderBy) ? parsedOrderBy : ''
+
+ const parsedItemsPerPage = destr(itemsPerPage)
+ const parsedPage = destr(page)
+
+ const itemsPerPageLocal = is.number(parsedItemsPerPage) ? parsedItemsPerPage : 10
+ const pageLocal = is.number(parsedPage) ? parsedPage : 1
+
+ // Sorting Vehicles
+ let vehicles = [...db.vehicles]
+
+ if (sortBy) {
+ if (sortByLocal === 'location') {
+ vehicles = vehicles.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.location - b.location
+
+ return b.location - a.location
+ })
+ }
+
+ if (sortByLocal === 'startRoute') {
+ vehicles = vehicles.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.startCity.localeCompare(b.startCity)
+
+ return b.startCity.localeCompare(a.startCity)
+ })
+ }
+
+ if (sortByLocal === 'endRoute') {
+ vehicles = vehicles.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.endCity.localeCompare(b.endCity)
+
+ return b.endCity.localeCompare(a.endCity)
+ })
+ }
+
+ if (sortByLocal === 'warnings') {
+ vehicles = vehicles.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.warnings.localeCompare(b.warnings)
+
+ return b.warnings.localeCompare(a.warnings)
+ })
+ }
+
+ if (sortByLocal === 'progress') {
+ vehicles = vehicles.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.progress - b.progress
+
+ return b.progress - a.progress
+ })
+ }
+ }
+
+ return HttpResponse.json(
+ {
+ vehicles: paginateArray(vehicles, itemsPerPageLocal, pageLocal),
+ totalVehicles: vehicles.length,
+ },
+ { status: 200 },
+ )
+ }),
+]
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/logistics/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/logistics/types.ts
new file mode 100644
index 0000000..a4496c1
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/logistics/types.ts
@@ -0,0 +1,10 @@
+export interface Vehicle {
+ id: number
+ location: number
+ startCity: string
+ startCountry: string
+ endCity: string
+ endCountry: string
+ warnings: string
+ progress: number
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/permission/db.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/permission/db.ts
new file mode 100644
index 0000000..3b6148e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/permission/db.ts
@@ -0,0 +1,64 @@
+import type { Permission } from '@db/apps/permission/types'
+
+interface DB {
+ permissions: Permission[]
+}
+
+export const db: DB = {
+ permissions: [
+ {
+ id: 1,
+ name: 'Management',
+ assignedTo: ['administrator'],
+ createdDate: '14 Apr 2021, 8:43 PM',
+ },
+ {
+ id: 2,
+ assignedTo: ['administrator'],
+ name: 'Manage Billing & Roles',
+ createdDate: '16 Sep 2021, 5:20 PM',
+ },
+ {
+ id: 3,
+ name: 'Add & Remove Users',
+ createdDate: '14 Oct 2021, 10:20 AM',
+ assignedTo: ['administrator', 'manager'],
+ },
+ {
+ id: 4,
+ name: 'Project Planning',
+ createdDate: '14 Oct 2021, 10:20 AM',
+ assignedTo: ['administrator', 'users', 'support'],
+ },
+ {
+ id: 5,
+ name: 'Manage Email Sequences',
+ createdDate: '23 Aug 2021, 2:00 PM',
+ assignedTo: ['administrator', 'users', 'support'],
+ },
+ {
+ id: 6,
+ name: 'Client Communication',
+ createdDate: '15 Apr 2021, 11:30 AM',
+ assignedTo: ['administrator', 'manager'],
+ },
+ {
+ id: 7,
+ name: 'Only View',
+ createdDate: '04 Dec 2021, 8:15 PM',
+ assignedTo: ['administrator', 'restricted-user'],
+ },
+ {
+ id: 8,
+ name: 'Financial Management',
+ createdDate: '25 Feb 2021, 10:30 AM',
+ assignedTo: ['administrator', 'manager'],
+ },
+ {
+ id: 9,
+ name: 'Manage Others\' Tasks',
+ createdDate: '04 Nov 2021, 11:45 AM',
+ assignedTo: ['administrator', 'support'],
+ },
+ ],
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/permission/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/permission/index.ts
new file mode 100644
index 0000000..f9724b3
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/permission/index.ts
@@ -0,0 +1,61 @@
+import is from '@sindresorhus/is'
+import { destr } from 'destr'
+import { HttpResponse, http } from 'msw'
+import { db } from '@db/apps/permission/db'
+import { paginateArray } from '@api-utils/paginateArray'
+
+export const handlerAppsPermission = [
+ // ๐ Get Permission List
+ http.get(('/api/apps/permissions'), ({ request }) => {
+ const url = new URL(request.url)
+
+ const q = url.searchParams.get('q') || ''
+ const sortBy = url.searchParams.get('sortBy')
+ const page = url.searchParams.get('page') || 1
+ const itemsPerPage = url.searchParams.get('itemsPerPage') || 10
+ const orderBy = url.searchParams.get('orderBy')
+
+ const parsedSortBy = destr(sortBy)
+ const sortByLocal = is.string(parsedSortBy) ? parsedSortBy : ''
+
+ const parsedOrderBy = destr(orderBy)
+ const orderByLocal = is.string(parsedOrderBy) ? parsedOrderBy : ''
+
+ const parsedItemsPerPage = destr(itemsPerPage)
+ const parsedPage = destr(page)
+
+ const itemsPerPageLocal = is.number(parsedItemsPerPage) ? parsedItemsPerPage : 10
+ const pageLocal = is.number(parsedPage) ? parsedPage : 1
+
+ const searchQuery = is.string(q) ? q : undefined
+ const queryLower = (searchQuery ?? '').toString().toLowerCase()
+
+ let filteredPermissions = db.permissions.filter(
+ permissions =>
+ permissions.name.toLowerCase().includes(queryLower)
+ || permissions.createdDate.toLowerCase().includes(queryLower)
+ || permissions.assignedTo.some((i: string) => i.toLowerCase().startsWith(queryLower)),
+ )
+
+ // Sorting Permissions
+ if (sortByLocal && sortByLocal === 'name') {
+ filteredPermissions = filteredPermissions.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.name.localeCompare(b.name)
+
+ return b.name.localeCompare(a.name)
+ })
+ }
+
+ // return response with paginated data
+ return HttpResponse.json(
+ {
+ permissions: paginateArray(filteredPermissions, itemsPerPageLocal, pageLocal),
+ totalPermissions: filteredPermissions.length,
+ },
+ {
+ status: 200,
+ },
+ )
+ }),
+]
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/permission/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/permission/types.ts
new file mode 100644
index 0000000..90f5aee
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/permission/types.ts
@@ -0,0 +1,6 @@
+export interface Permission {
+ id: number
+ name: string
+ createdDate: string
+ assignedTo: string[]
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/users/db.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/users/db.ts
new file mode 100644
index 0000000..8a5fb3e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/users/db.ts
@@ -0,0 +1,716 @@
+import type { UserProperties } from './types'
+import avatar1 from '@images/avatars/avatar-1.png'
+import avatar2 from '@images/avatars/avatar-2.png'
+import avatar3 from '@images/avatars/avatar-3.png'
+import avatar4 from '@images/avatars/avatar-4.png'
+import avatar5 from '@images/avatars/avatar-5.png'
+import avatar6 from '@images/avatars/avatar-6.png'
+
+interface DB {
+ users: UserProperties[]
+}
+
+export const db: DB = {
+ users: [
+ {
+ id: 1,
+ fullName: 'Galasasen Slixby',
+ company: 'Yotz PVT LTD',
+ role: 'editor',
+ username: 'gslixby0',
+ country: 'El Salvador',
+ contact: '(479) 232-9151',
+ email: 'gslixby0@abc.net.au',
+ currentPlan: 'enterprise',
+ status: 'inactive',
+ avatar: avatar1,
+ billing: 'Manual-Credit Card',
+ },
+ {
+ id: 2,
+ fullName: 'Halsey Redmore',
+ company: 'Skinder PVT LTD',
+ role: 'author',
+ username: 'hredmore1',
+ country: 'Albania',
+ contact: '(472) 607-9137',
+ email: 'hredmore1@imgur.com',
+ currentPlan: 'team',
+ status: 'pending',
+ avatar: avatar2,
+ billing: 'Auto debit',
+ },
+ {
+ id: 3,
+ fullName: 'Marjory Sicely',
+ company: 'Oozz PVT LTD',
+ role: 'maintainer',
+ username: 'msicely2',
+ country: 'Russia',
+ contact: '(321) 264-4599',
+ email: 'msicely2@who.int',
+ currentPlan: 'enterprise',
+ status: 'active',
+ avatar: avatar3,
+ billing: 'Manual-Credit Card',
+ },
+ {
+ id: 4,
+ fullName: 'Cyrill Risby',
+ company: 'Oozz PVT LTD',
+ role: 'maintainer',
+ username: 'crisby3',
+ country: 'China',
+ contact: '(923) 690-6806',
+ email: 'crisby3@wordpress.com',
+ currentPlan: 'team',
+ status: 'inactive',
+ avatar: '',
+ billing: 'Auto debit',
+ },
+ {
+ id: 5,
+ fullName: 'Maggy Hurran',
+ company: 'Aimbo PVT LTD',
+ role: 'subscriber',
+ username: 'mhurran4',
+ country: 'Pakistan',
+ contact: '(669) 914-1078',
+ email: 'mhurran4@yahoo.co.jp',
+ currentPlan: 'enterprise',
+ status: 'pending',
+ avatar: avatar5,
+ billing: 'Manual-Cash',
+ },
+ {
+ id: 6,
+ fullName: 'Silvain Halstead',
+ company: 'Jaxbean PVT LTD',
+ role: 'author',
+ username: 'shalstead5',
+ country: 'China',
+ contact: '(958) 973-3093',
+ email: 'shalstead5@shinystat.com',
+ currentPlan: 'company',
+ status: 'active',
+ avatar: '',
+ billing: 'Manual-Credit Card',
+ },
+ {
+ id: 7,
+ fullName: 'Breena Gallemore',
+ company: 'Jazzy PVT LTD',
+ role: 'subscriber',
+ username: 'bgallemore6',
+ country: 'Canada',
+ contact: '(825) 977-8152',
+ email: 'bgallemore6@boston.com',
+ currentPlan: 'company',
+ status: 'pending',
+ avatar: avatar1,
+ billing: 'Manual-PayPal',
+ },
+ {
+ id: 8,
+ fullName: 'Kathryne Liger',
+ company: 'Pixoboo PVT LTD',
+ role: 'author',
+ username: 'kliger7',
+ country: 'France',
+ contact: '(187) 440-0934',
+ email: 'kliger7@vinaora.com',
+ currentPlan: 'enterprise',
+ status: 'pending',
+ avatar: '',
+ billing: 'Auto debit',
+ },
+ {
+ id: 9,
+ fullName: 'Franz Scotfurth',
+ company: 'Tekfly PVT LTD',
+ role: 'subscriber',
+ username: 'fscotfurth8',
+ country: 'China',
+ contact: '(978) 146-5443',
+ email: 'fscotfurth8@dailymotion.com',
+ currentPlan: 'team',
+ status: 'pending',
+ avatar: avatar1,
+ billing: 'Manual-Credit Card',
+ },
+ {
+ id: 10,
+ fullName: 'Jillene Bellany',
+ company: 'Gigashots PVT LTD',
+ role: 'maintainer',
+ username: 'jbellany9',
+ country: 'Jamaica',
+ contact: '(589) 284-6732',
+ email: 'jbellany9@kickstarter.com',
+ currentPlan: 'company',
+ status: 'inactive',
+ avatar: avatar3,
+ billing: 'Manual-Credit Card',
+ },
+ {
+ id: 11,
+ fullName: 'Jonah Wharlton',
+ company: 'Eare PVT LTD',
+ role: 'subscriber',
+ username: 'jwharltona',
+ country: 'United States',
+ contact: '(176) 532-6824',
+ email: 'jwharltona@oakley.com',
+ currentPlan: 'team',
+ status: 'inactive',
+ avatar: '',
+ billing: 'Manual-Cash',
+ },
+ {
+ id: 12,
+ fullName: 'Seth Hallam',
+ company: 'Yakitri PVT LTD',
+ role: 'subscriber',
+ username: 'shallamb',
+ country: 'Peru',
+ contact: '(234) 464-0600',
+ email: 'shallamb@hugedomains.com',
+ currentPlan: 'team',
+ status: 'pending',
+ avatar: avatar3,
+ billing: 'Manual-PayPal',
+ },
+ {
+ id: 13,
+ fullName: 'Yoko Pottie',
+ company: 'Leenti PVT LTD',
+ role: 'subscriber',
+ username: 'ypottiec',
+ country: 'Philippines',
+ contact: '(907) 284-5083',
+ email: 'ypottiec@privacy.gov.au',
+ currentPlan: 'basic',
+ status: 'inactive',
+ avatar: avatar6,
+ billing: 'Manual-PayPal',
+ },
+ {
+ id: 14,
+ fullName: 'Maximilianus Krause',
+ company: 'Digitube PVT LTD',
+ role: 'author',
+ username: 'mkraused',
+ country: 'Democratic Republic of the Congo',
+ contact: '(167) 135-7392',
+ email: 'mkraused@stanford.edu',
+ currentPlan: 'team',
+ status: 'active',
+ avatar: '',
+ billing: 'Manual-PayPal',
+ },
+ {
+ id: 15,
+ fullName: 'Zsazsa McCleverty',
+ company: 'Kaymbo PVT LTD',
+ role: 'maintainer',
+ username: 'zmcclevertye',
+ country: 'France',
+ contact: '(317) 409-6565',
+ email: 'zmcclevertye@soundcloud.com',
+ currentPlan: 'enterprise',
+ status: 'active',
+ avatar: avatar3,
+ billing: 'Manual-PayPal',
+ },
+ {
+ id: 16,
+ fullName: 'Bentlee Emblin',
+ company: 'Yambee PVT LTD',
+ role: 'author',
+ username: 'bemblinf',
+ country: 'Spain',
+ contact: '(590) 606-1056',
+ email: 'bemblinf@wired.com',
+ currentPlan: 'company',
+ status: 'active',
+ avatar: avatar4,
+ billing: 'Manual-PayPal',
+ },
+ {
+ id: 17,
+ fullName: 'Brockie Myles',
+ company: 'Wikivu PVT LTD',
+ role: 'maintainer',
+ username: 'bmylesg',
+ country: 'Poland',
+ contact: '(553) 225-9905',
+ email: 'bmylesg@amazon.com',
+ currentPlan: 'basic',
+ status: 'active',
+ avatar: avatar1,
+ billing: 'Manual-Credit Card',
+ },
+ {
+ id: 18,
+ fullName: 'Bertha Biner',
+ company: 'Twinte PVT LTD',
+ role: 'editor',
+ username: 'bbinerh',
+ country: 'Yemen',
+ contact: '(901) 916-9287',
+ email: 'bbinerh@mozilla.com',
+ currentPlan: 'team',
+ status: 'active',
+ avatar: avatar3,
+ billing: 'Manual-Credit Card',
+ },
+ {
+ id: 19,
+ fullName: 'Travus Bruntjen',
+ company: 'Cogidoo PVT LTD',
+ role: 'admin',
+ username: 'tbruntjeni',
+ country: 'France',
+ contact: '(524) 586-6057',
+ email: 'tbruntjeni@sitemeter.com',
+ currentPlan: 'enterprise',
+ status: 'active',
+ avatar: '',
+ billing: 'Manual-Cash',
+ },
+ {
+ id: 20,
+ fullName: 'Wesley Burland',
+ company: 'Bubblemix PVT LTD',
+ role: 'editor',
+ username: 'wburlandj',
+ country: 'Honduras',
+ contact: '(569) 683-1292',
+ email: 'wburlandj@uiuc.edu',
+ currentPlan: 'team',
+ status: 'inactive',
+ avatar: avatar5,
+ billing: 'Manual-Cash',
+ },
+ {
+ id: 21,
+ fullName: 'Selina Kyle',
+ company: 'Wayne Enterprises',
+ role: 'admin',
+ username: 'catwomen1940',
+ country: 'USA',
+ contact: '(829) 537-0057',
+ email: 'irena.dubrovna@wayne.com',
+ currentPlan: 'team',
+ status: 'active',
+ avatar: avatar1,
+ billing: 'Manual-Cash',
+ },
+ {
+ id: 22,
+ fullName: 'Jameson Lyster',
+ company: 'Quaxo PVT LTD',
+ role: 'editor',
+ username: 'jlysterl',
+ country: 'Ukraine',
+ contact: '(593) 624-0222',
+ email: 'jlysterl@guardian.co.uk',
+ currentPlan: 'company',
+ status: 'inactive',
+ avatar: avatar6,
+ billing: 'Manual-Cash',
+ },
+ {
+ id: 23,
+ fullName: 'Kare Skitterel',
+ company: 'Ainyx PVT LTD',
+ role: 'maintainer',
+ username: 'kskitterelm',
+ country: 'Poland',
+ contact: '(254) 845-4107',
+ email: 'kskitterelm@ainyx.com',
+ currentPlan: 'basic',
+ status: 'pending',
+ avatar: avatar2,
+ billing: 'Manual-Credit Card',
+ },
+ {
+ id: 24,
+ fullName: 'Cleavland Hatherleigh',
+ company: 'Flipopia PVT LTD',
+ role: 'admin',
+ username: 'chatherleighn',
+ country: 'Brazil',
+ contact: '(700) 783-7498',
+ email: 'chatherleighn@washington.edu',
+ currentPlan: 'team',
+ status: 'pending',
+ avatar: '',
+ billing: 'Manual-Credit Card',
+ },
+ {
+ id: 25,
+ fullName: 'Adeline Micco',
+ company: 'Topicware PVT LTD',
+ role: 'admin',
+ username: 'amiccoo',
+ country: 'France',
+ contact: '(227) 598-1841',
+ email: 'amiccoo@whitehouse.gov',
+ currentPlan: 'enterprise',
+ status: 'pending',
+ avatar: '',
+ billing: 'Auto Debit',
+ },
+ {
+ id: 26,
+ fullName: 'Hugh Hasson',
+ company: 'Skinix PVT LTD',
+ role: 'admin',
+ username: 'hhassonp',
+ country: 'China',
+ contact: '(582) 516-1324',
+ email: 'hhassonp@bizjournals.com',
+ currentPlan: 'basic',
+ status: 'inactive',
+ avatar: avatar6,
+ billing: 'Auto Debit',
+ },
+ {
+ id: 27,
+ fullName: 'Germain Jacombs',
+ company: 'Youopia PVT LTD',
+ role: 'editor',
+ username: 'gjacombsq',
+ country: 'Zambia',
+ contact: '(137) 467-5393',
+ email: 'gjacombsq@jigsy.com',
+ currentPlan: 'enterprise',
+ status: 'active',
+ avatar: '',
+ billing: 'Auto Debit',
+ },
+ {
+ id: 28,
+ fullName: 'Bree Kilday',
+ company: 'Jetpulse PVT LTD',
+ role: 'maintainer',
+ username: 'bkildayr',
+ country: 'Portugal',
+ contact: '(412) 476-0854',
+ email: 'bkildayr@mashable.com',
+ currentPlan: 'team',
+ status: 'active',
+ avatar: '',
+ billing: 'Auto Debit',
+ },
+ {
+ id: 29,
+ fullName: 'Candice Pinyon',
+ company: 'Kare PVT LTD',
+ role: 'maintainer',
+ username: 'cpinyons',
+ country: 'Sweden',
+ contact: '(170) 683-1520',
+ email: 'cpinyons@behance.net',
+ currentPlan: 'team',
+ status: 'active',
+ avatar: avatar1,
+ billing: 'Manual-Cash',
+ },
+ {
+ id: 30,
+ fullName: 'Isabel Mallindine',
+ company: 'Voomm PVT LTD',
+ role: 'subscriber',
+ username: 'imallindinet',
+ country: 'Slovenia',
+ contact: '(332) 803-1983',
+ email: 'imallindinet@shinystat.com',
+ currentPlan: 'team',
+ status: 'pending',
+ avatar: avatar5,
+ billing: 'Manual-Cash',
+ },
+ {
+ id: 31,
+ fullName: 'Gwendolyn Meineken',
+ company: 'Oyondu PVT LTD',
+ role: 'admin',
+ username: 'gmeinekenu',
+ country: 'Moldova',
+ contact: '(551) 379-7460',
+ email: 'gmeinekenu@hc360.com',
+ currentPlan: 'basic',
+ status: 'pending',
+ avatar: avatar2,
+ billing: 'Manual-Cash',
+ },
+ {
+ id: 32,
+ fullName: 'Rafaellle Snowball',
+ company: 'Fivespan PVT LTD',
+ role: 'editor',
+ username: 'rsnowballv',
+ country: 'Philippines',
+ contact: '(974) 829-0911',
+ email: 'rsnowballv@indiegogo.com',
+ currentPlan: 'basic',
+ status: 'pending',
+ avatar: avatar6,
+ billing: 'Manual-Cash',
+ },
+ {
+ id: 33,
+ fullName: 'Rochette Emer',
+ company: 'Thoughtworks PVT LTD',
+ role: 'admin',
+ username: 'remerw',
+ country: 'North Korea',
+ contact: '(841) 889-3339',
+ email: 'remerw@blogtalkradio.com',
+ currentPlan: 'basic',
+ status: 'active',
+ avatar: '',
+ billing: 'Manual-Cash',
+ },
+ {
+ id: 34,
+ fullName: 'Ophelie Fibbens',
+ company: 'Jaxbean PVT LTD',
+ role: 'subscriber',
+ username: 'ofibbensx',
+ country: 'Indonesia',
+ contact: '(764) 885-7351',
+ email: 'ofibbensx@booking.com',
+ currentPlan: 'company',
+ status: 'active',
+ avatar: avatar3,
+ billing: 'Manual-Cash',
+ },
+ {
+ id: 35,
+ fullName: 'Stephen MacGilfoyle',
+ company: 'Browseblab PVT LTD',
+ role: 'maintainer',
+ username: 'smacgilfoyley',
+ country: 'Japan',
+ contact: '(350) 589-8520',
+ email: 'smacgilfoyley@bigcartel.com',
+ currentPlan: 'company',
+ status: 'pending',
+ avatar: avatar2,
+ billing: 'Manual-Cash',
+ },
+ {
+ id: 36,
+ fullName: 'Bradan Rosebotham',
+ company: 'Agivu PVT LTD',
+ role: 'subscriber',
+ username: 'brosebothamz',
+ country: 'Belarus',
+ contact: '(882) 933-2180',
+ email: 'brosebothamz@tripadvisor.com',
+ currentPlan: 'team',
+ status: 'inactive',
+ avatar: '',
+ billing: 'Manual-Credit Card',
+ },
+ {
+ id: 37,
+ fullName: 'Skip Hebblethwaite',
+ company: 'Katz PVT LTD',
+ role: 'admin',
+ username: 'shebblethwaite10',
+ country: 'Canada',
+ contact: '(610) 343-1024',
+ email: 'shebblethwaite10@arizona.edu',
+ currentPlan: 'company',
+ status: 'inactive',
+ avatar: avatar1,
+ billing: 'Manual-Credit Card',
+ },
+ {
+ id: 38,
+ fullName: 'Moritz Piccard',
+ company: 'Twitternation PVT LTD',
+ role: 'maintainer',
+ username: 'mpiccard11',
+ country: 'Croatia',
+ contact: '(365) 277-2986',
+ email: 'mpiccard11@vimeo.com',
+ currentPlan: 'enterprise',
+ status: 'inactive',
+ avatar: avatar2,
+ billing: 'Manual-Credit Card',
+ },
+ {
+ id: 39,
+ fullName: 'Tyne Widmore',
+ company: 'Yombu PVT LTD',
+ role: 'subscriber',
+ username: 'twidmore12',
+ country: 'Finland',
+ contact: '(531) 731-0928',
+ email: 'twidmore12@bravesites.com',
+ currentPlan: 'team',
+ status: 'pending',
+ avatar: '',
+ billing: 'Auto Debit',
+ },
+ {
+ id: 40,
+ fullName: 'Florenza Desporte',
+ company: 'Kamba PVT LTD',
+ role: 'author',
+ username: 'fdesporte13',
+ country: 'Ukraine',
+ contact: '(312) 104-2638',
+ email: 'fdesporte13@omniture.com',
+ currentPlan: 'company',
+ status: 'active',
+ avatar: avatar1,
+ billing: 'Auto Debit',
+ },
+ {
+ id: 41,
+ fullName: 'Edwina Baldetti',
+ company: 'Dazzlesphere PVT LTD',
+ role: 'maintainer',
+ username: 'ebaldetti14',
+ country: 'Haiti',
+ contact: '(315) 329-3578',
+ email: 'ebaldetti14@theguardian.com',
+ currentPlan: 'team',
+ status: 'pending',
+ avatar: avatar5,
+ billing: 'Auto Debit',
+ },
+ {
+ id: 42,
+ fullName: 'Benedetto Rossiter',
+ company: 'Mybuzz PVT LTD',
+ role: 'editor',
+ username: 'brossiter15',
+ country: 'Indonesia',
+ contact: '(323) 175-6741',
+ email: 'brossiter15@craigslist.org',
+ currentPlan: 'team',
+ status: 'inactive',
+ avatar: avatar1,
+ billing: 'Auto Debit',
+ },
+ {
+ id: 43,
+ fullName: 'Micaela McNirlan',
+ company: 'Tambee PVT LTD',
+ role: 'admin',
+ username: 'mmcnirlan16',
+ country: 'Indonesia',
+ contact: '(242) 952-0916',
+ email: 'mmcnirlan16@hc360.com',
+ currentPlan: 'basic',
+ status: 'inactive',
+ avatar: avatar2,
+ billing: 'Auto Debit',
+ },
+ {
+ id: 44,
+ fullName: 'Vladamir Koschek',
+ company: 'Centimia PVT LTD',
+ role: 'author',
+ username: 'vkoschek17',
+ country: 'Guatemala',
+ contact: '(531) 758-8335',
+ email: 'vkoschek17@abc.net.au',
+ currentPlan: 'team',
+ status: 'active',
+ avatar: avatar1,
+ billing: 'Manual-Credit Card',
+ },
+ {
+ id: 45,
+ fullName: 'Corrie Perot',
+ company: 'Flipopia PVT LTD',
+ role: 'subscriber',
+ username: 'cperot18',
+ country: 'China',
+ contact: '(659) 385-6808',
+ email: 'cperot18@goo.ne.jp',
+ currentPlan: 'team',
+ status: 'pending',
+ avatar: avatar5,
+ billing: 'Manual-Credit Card',
+ },
+ {
+ id: 46,
+ fullName: 'Saunder Offner',
+ company: 'Skalith PVT LTD',
+ role: 'maintainer',
+ username: 'soffner19',
+ country: 'Poland',
+ contact: '(200) 586-2264',
+ email: 'soffner19@mac.com',
+ currentPlan: 'enterprise',
+ status: 'pending',
+ avatar: avatar4,
+ billing: 'Manual-Credit Card',
+ },
+ {
+ id: 47,
+ fullName: 'Karena Courtliff',
+ company: 'Feedfire PVT LTD',
+ role: 'admin',
+ username: 'kcourtliff1a',
+ country: 'China',
+ contact: '(478) 199-0020',
+ email: 'kcourtliff1a@bbc.co.uk',
+ currentPlan: 'basic',
+ status: 'active',
+ avatar: avatar6,
+ billing: 'Manual-Credit Card',
+ },
+ {
+ id: 48,
+ fullName: 'Onfre Wind',
+ company: 'Thoughtmix PVT LTD',
+ role: 'admin',
+ username: 'owind1b',
+ country: 'Ukraine',
+ contact: '(344) 262-7270',
+ email: 'owind1b@yandex.ru',
+ currentPlan: 'basic',
+ status: 'pending',
+ avatar: avatar3,
+ billing: 'Manual-PayPal',
+ },
+ {
+ id: 49,
+ fullName: 'Paulie Durber',
+ company: 'Babbleblab PVT LTD',
+ role: 'subscriber',
+ username: 'pdurber1c',
+ country: 'Sweden',
+ contact: '(694) 676-1275',
+ email: 'pdurber1c@gov.uk',
+ currentPlan: 'team',
+ status: 'inactive',
+ avatar: avatar2,
+ billing: 'Manual-PayPal',
+ },
+ {
+ id: 50,
+ fullName: 'Beverlie Krabbe',
+ company: 'Kaymbo PVT LTD',
+ role: 'editor',
+ username: 'bkrabbe1d',
+ country: 'China',
+ contact: '(397) 294-5153',
+ email: 'bkrabbe1d@home.pl',
+ currentPlan: 'company',
+ status: 'active',
+ avatar: avatar1,
+ billing: 'Manual-Cash',
+ },
+ ],
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/users/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/users/index.ts
new file mode 100644
index 0000000..35b1827
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/users/index.ts
@@ -0,0 +1,166 @@
+import is from '@sindresorhus/is'
+import { destr } from 'destr'
+import type { PathParams } from 'msw'
+import { HttpResponse, http } from 'msw'
+import { db } from '@db/apps/users/db'
+import { paginateArray } from '@api-utils/paginateArray'
+
+export const handlerAppsUsers = [
+ // Get Users Details
+ http.get(('/api/apps/users'), ({ request }) => {
+ const url = new URL(request.url)
+
+ const q = url.searchParams.get('q')
+ const role = url.searchParams.get('role')
+ const plan = url.searchParams.get('plan')
+ const status = url.searchParams.get('status')
+ const sortBy = url.searchParams.get('sortBy')
+ const itemsPerPage = url.searchParams.get('itemsPerPage')
+ const page = url.searchParams.get('page')
+ const orderBy = url.searchParams.get('orderBy')
+
+ const searchQuery = is.string(q) ? q : undefined
+ const queryLower = (searchQuery ?? '').toString().toLowerCase()
+
+ const parsedSortBy = destr(sortBy)
+ const sortByLocal = is.string(parsedSortBy) ? parsedSortBy : ''
+
+ const parsedOrderBy = destr(orderBy)
+ const orderByLocal = is.string(parsedOrderBy) ? parsedOrderBy : ''
+
+ const parsedItemsPerPage = destr(itemsPerPage)
+ const parsedPage = destr(page)
+
+ const itemsPerPageLocal = is.number(parsedItemsPerPage) ? parsedItemsPerPage : 10
+ const pageLocal = is.number(parsedPage) ? parsedPage : 1
+
+ // filter users
+ let filteredUsers = db.users.filter(user => ((user.fullName.toLowerCase().includes(queryLower) || user.email.toLowerCase().includes(queryLower)) && user.role === (role || user.role) && user.currentPlan === (plan || user.currentPlan) && user.status === (status || user.status))).reverse()
+
+ // sort users
+ if (sortByLocal) {
+ console.log(sortByLocal)
+ if (sortByLocal === 'user') {
+ filteredUsers = filteredUsers.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.fullName.localeCompare(b.fullName)
+ else
+ return b.fullName.localeCompare(a.fullName)
+ })
+ }
+ if (sortByLocal === 'email') {
+ filteredUsers = filteredUsers.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.email.localeCompare(b.email)
+ else
+ return b.email.localeCompare(a.email)
+ })
+ }
+ if (sortByLocal === 'role') {
+ filteredUsers = filteredUsers.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.role.localeCompare(b.role)
+ else
+ return b.role.localeCompare(a.role)
+ })
+ }
+ if (sortByLocal === 'plan') {
+ filteredUsers = filteredUsers.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.currentPlan.localeCompare(b.currentPlan)
+ else
+ return b.currentPlan.localeCompare(a.currentPlan)
+ })
+ }
+ if (sortByLocal === 'status') {
+ filteredUsers = filteredUsers.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.status.localeCompare(b.status)
+ else
+ return b.status.localeCompare(a.status)
+ })
+ }
+ if (sortByLocal === 'billing') {
+ filteredUsers = filteredUsers.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.billing.localeCompare(b.billing)
+ else
+ return b.billing.localeCompare(a.billing)
+ })
+ }
+ }
+
+ const totalUsers = filteredUsers.length
+
+ // total pages
+ const totalPages = Math.ceil(totalUsers / itemsPerPageLocal)
+
+ return HttpResponse.json(
+ {
+ users: paginateArray(filteredUsers, itemsPerPageLocal, pageLocal),
+ totalPages,
+ totalUsers,
+ page: pageLocal > Math.ceil(totalUsers / itemsPerPageLocal) ? 1 : page,
+ },
+ { status: 200 },
+ )
+ }),
+
+ // Get Single User Detail
+ http.get(('/api/apps/users/:id'), ({ params }) => {
+ const userId = Number(params.id)
+
+ const user = db.users.find(e => e.id === userId)
+
+ if (!user) {
+ return HttpResponse.json({ message: 'User not found' }, { status: 404 })
+ }
+ else {
+ return HttpResponse.json(
+ {
+ ...user,
+ ...{
+ taskDone: 1230,
+ projectDone: 568,
+ taxId: 'Tax-8894',
+ language: 'English',
+ },
+ },
+ { status: 200 },
+ )
+ }
+ }),
+
+ // Delete User
+ http.delete(('/api/apps/users/:id'), ({ params }) => {
+ const userId = Number(params.id)
+
+ const userIndex = db.users.findIndex(e => e.id === userId)
+
+ if (userIndex === -1) {
+ return HttpResponse.json('User not found', { status: 404 })
+ }
+ else {
+ db.users.splice(userIndex, 1)
+
+ return new HttpResponse(null, {
+ status: 204,
+ })
+ }
+ }),
+
+ // ๐ Add user
+ http.post(('/api/apps/users'), async ({ request }) => {
+ const user = await request.json() as any
+
+ db.users.push({
+ ...user,
+ id: db.users.length + 1,
+ })
+
+ return HttpResponse.json(
+ { body: user },
+ { status: 201 },
+ )
+ }),
+]
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/users/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/users/types.ts
new file mode 100644
index 0000000..255ebd4
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/apps/users/types.ts
@@ -0,0 +1,14 @@
+export interface UserProperties {
+ id: number
+ fullName: string
+ company: string
+ role: string
+ username?: string
+ country: string
+ contact: string
+ email: string
+ currentPlan: string
+ status: string
+ avatar: string
+ billing: string
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/auth/db.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/auth/db.ts
new file mode 100644
index 0000000..9197663
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/auth/db.ts
@@ -0,0 +1,58 @@
+import type { User } from '@db/auth/types'
+
+interface DB {
+ userTokens: string[]
+ users: User[]
+}
+export const db: DB = {
+ // TODO: Use jsonwebtoken pkg
+ // โน๏ธ Created from https://jwt.io/ using HS256 algorithm
+ // โน๏ธ We didn't created it programmatically because jsonwebtoken package have issues with esm support. View Issues: https://github.com/auth0/node-jsonwebtoken/issues/655
+ userTokens: [
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MX0.fhc3wykrAnRpcKApKhXiahxaOe8PSHatad31NuIZ0Zg',
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Mn0.cat2xMrZLn0FwicdGtZNzL7ifDTAKWB0k1RurSWjdnw',
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6M30.PGOfMaZA_T9W05vMj5FYXG5d47soSPJD1WuxeUfw4L4',
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6NH0.d_9aq2tpeA9-qpqO0X4AmW6gU2UpWkXwc04UJYFWiZE',
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6NX0.ocO77FbjOSU1-JQ_BilEZq2G_M8bCiB10KYqtfkv1ss',
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Nn0.YgQILRqZy8oefhTZgJJfiEzLmhxQT_Bd2510OvrrwB8',
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6N30.KH9RmOWIYv_HONxajg7xBIJXHEUvSdcBygFtS2if8Jk',
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6OH0.shrp-oMHkVAkiMkv_aIvSx3k6Jk-X7TrH5UeufChz_g',
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6OX0.9JD1MR3ZkwHzhl4mOHH6lGG8hOVNZqDNH6UkFzjCqSE',
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTB9.txWLuN4QT5PqTtgHmlOiNerIu5Do51PpYOiZutkyXYg',
+ ],
+
+ users: [
+ {
+ id: 1,
+ fullName: 'John Doe',
+ username: 'johndoe',
+ password: 'admin',
+
+ avatar: `${import.meta.env.BASE_URL.replace(/build\/$/g, '') ?? '/'}images/avatars/avatar-1.png`,
+ email: 'admin@demo.com',
+ role: 'admin',
+ abilityRules: [
+ {
+ action: 'manage',
+ subject: 'all',
+ },
+ ],
+ },
+ {
+ id: 2,
+ fullName: 'Jane Doe',
+ username: 'janedoe',
+ password: 'client',
+
+ avatar: `${import.meta.env.BASE_URL.replace(/build\/$/g, '') ?? '/'}images/avatars/avatar-2.png`,
+ email: 'client@demo.com',
+ role: 'client',
+ abilityRules: [
+ {
+ action: 'read',
+ subject: 'AclDemo',
+ },
+ ],
+ },
+ ],
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/auth/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/auth/index.ts
new file mode 100644
index 0000000..c03b825
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/auth/index.ts
@@ -0,0 +1,51 @@
+import type { PathParams } from 'msw'
+import { HttpResponse, http } from 'msw'
+import { db } from '@db/auth/db'
+import type { UserOut } from '@db/auth/types'
+
+// Handlers for auth
+export const handlerAuth = [
+
+ http.post(('/api/auth/login'), async ({ request }) => {
+ const { email, password } = await request.json() as { email: string; password: string }
+
+ let errors: Record = {
+ email: ['Something went wrong'],
+ }
+
+ const user = db.users.find(u => u.email === email && u.password === password)
+
+ if (user) {
+ try {
+ const accessToken = db.userTokens[user.id]
+
+ // We are duplicating user here
+ const userData = { ...user }
+
+ const userOutData = Object.fromEntries(
+ Object.entries(userData)
+ .filter(
+ ([key, _]) => !(key === 'password' || key === 'abilityRules'),
+ ),
+ ) as UserOut['userData']
+
+ const response: UserOut = {
+ userAbilityRules: userData.abilityRules,
+ accessToken,
+ userData: userOutData,
+ }
+
+ return HttpResponse.json(response,
+ { status: 201 })
+ }
+ catch (e: unknown) {
+ errors = { email: [e as string] }
+ }
+ }
+ else {
+ errors = { email: ['Invalid email or password'] }
+ }
+
+ return HttpResponse.json({ errors }, { status: 400 })
+ }),
+]
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/auth/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/auth/types.ts
new file mode 100644
index 0000000..262cf4a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/auth/types.ts
@@ -0,0 +1,37 @@
+export type Actions = 'create' | 'read' | 'update' | 'delete' | 'manage'
+
+export type Subjects = 'Auth' | 'Admin' | 'AclDemo' | 'all'
+
+export interface UserAbilityRule {
+ action: Actions
+ subject: Subjects
+}
+
+export interface User {
+ id: number
+ fullName?: string
+ username: string
+ password: string
+ avatar?: string
+ email: string
+ role: string
+ abilityRules: UserAbilityRule[]
+}
+
+export interface UserOut {
+ userAbilityRules: User['abilityRules']
+ accessToken: string
+ userData: Omit
+}
+
+export interface LoginResponse {
+ accessToken: string
+ userData: User
+ userAbilityRules: User['abilityRules']
+}
+
+export interface RegisterResponse {
+ accessToken: string
+ userData: User
+ userAbilityRules: User['abilityRules']
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/dashboard/db.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/dashboard/db.ts
new file mode 100644
index 0000000..3111ffb
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/dashboard/db.ts
@@ -0,0 +1,93 @@
+import type { ProjectAnalytics } from '@db/dashboard/type'
+
+import avatar1 from '@images/avatars/avatar-1.png'
+import avatar2 from '@images/avatars/avatar-2.png'
+import avatar3 from '@images/avatars/avatar-3.png'
+import avatar4 from '@images/avatars/avatar-4.png'
+import avatar5 from '@images/avatars/avatar-5.png'
+import avatar6 from '@images/avatars/avatar-6.png'
+import avatar7 from '@images/avatars/avatar-7.png'
+import avatar8 from '@images/avatars/avatar-8.png'
+import figma from '@images/icons/project-icons/figma.png'
+import html5 from '@images/icons/project-icons/html5.png'
+import python from '@images/icons/project-icons/python.png'
+import react from '@images/icons/project-icons/react.png'
+import sketch from '@images/icons/project-icons/sketch.png'
+import vue from '@images/icons/project-icons/vue.png'
+import xamarin from '@images/icons/project-icons/xamarin.png'
+
+interface DB {
+ analytics: ProjectAnalytics[]
+}
+
+export const db: DB = {
+ analytics: [
+ {
+ logo: react,
+ name: 'BGC eCommerce App',
+ project: 'React Project',
+ leader: 'Eileen',
+ progress: 78,
+ hours: '18:42',
+ team: [avatar1, avatar8, avatar6],
+ extraMembers: 3,
+ },
+ {
+ logo: figma,
+ name: 'Falcon Logo Design',
+ project: 'Figma Project',
+ leader: 'Owen',
+ progress: 25,
+ hours: '20:42',
+ team: [avatar5, avatar2],
+ },
+ {
+ logo: vue,
+ name: 'Dashboard Design',
+ project: 'Vuejs Project',
+ leader: 'Keith',
+ progress: 62,
+ hours: '120:87',
+ team: [avatar8, avatar2, avatar1],
+ },
+ {
+ logo: xamarin,
+ name: 'Foodista mobile app',
+ project: 'Xamarin Project',
+ leader: 'Merline',
+ progress: 8,
+ hours: '120:87',
+ team: [avatar3, avatar4, avatar7],
+ extraMembers: 8,
+ },
+ {
+ logo: python,
+ name: 'Dojo Email App',
+ project: 'Python Project',
+ leader: 'Harmonia',
+ progress: 51,
+ hours: '230:10',
+ team: [avatar4, avatar3, avatar1],
+ extraMembers: 5,
+ },
+ {
+ logo: sketch,
+ name: 'Blockchain Website',
+ project: 'Sketch Project',
+ leader: 'Allyson',
+ progress: 92,
+ hours: '342:41',
+ team: [avatar1, avatar8],
+ },
+ {
+ logo: html5,
+ name: 'Hoffman Website',
+ project: 'HTML Project',
+ leader: 'Georgie',
+ progress: 80,
+ hours: '12:45',
+ team: [avatar1, avatar8, avatar6],
+ },
+
+ ],
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/dashboard/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/dashboard/index.ts
new file mode 100644
index 0000000..8afc1bf
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/dashboard/index.ts
@@ -0,0 +1,77 @@
+import is from '@sindresorhus/is'
+import { destr } from 'destr'
+import { HttpResponse, http } from 'msw'
+import { db } from '@db/dashboard/db'
+import { paginateArray } from '@api-utils/paginateArray'
+
+export const handlerDashboard = [
+ http.get('/api/dashboard/analytics/projects', ({ request }) => {
+ const url = new URL(request.url)
+
+ const q = url.searchParams.get('q')
+ const sortBy = url.searchParams.get('sortBy')
+ const itemsPerPage = url.searchParams.get('itemsPerPage')
+ const page = url.searchParams.get('page')
+ const orderBy = url.searchParams.get('orderBy')
+
+ const searchQuery = is.string(q) ? q : undefined
+ const queryLower = (searchQuery ?? '').toString().toLowerCase()
+
+ const parsedSortBy = destr(sortBy)
+ const sortByLocal = is.string(parsedSortBy) ? parsedSortBy : ''
+
+ const parsedOrderBy = destr(orderBy)
+ const orderByLocal = is.string(parsedOrderBy) ? parsedOrderBy : ''
+
+ const parsedItemsPerPage = destr(itemsPerPage)
+ const parsedPage = destr(page)
+
+ const itemsPerPageLocal = is.number(parsedItemsPerPage) ? parsedItemsPerPage : 10
+ const pageLocal = is.number(parsedPage) ? parsedPage : 1
+
+ let filteredProjects = db.analytics.filter(project => ((project.name.toLowerCase().includes(queryLower) || project.leader.toLowerCase().includes(queryLower)) || project.project.toLowerCase().includes(queryLower))).reverse()
+
+ if (sortByLocal) {
+ console.log(sortByLocal)
+ if (sortByLocal === 'project') {
+ filteredProjects = filteredProjects.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.name.localeCompare(b.name)
+ else
+ return b.name.localeCompare(a.name)
+ })
+ }
+
+ if (sortByLocal === 'leader') {
+ filteredProjects = filteredProjects.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.leader.localeCompare(b.leader)
+ else
+ return b.leader.localeCompare(a.leader)
+ })
+ }
+
+ if (sortByLocal === 'progress') {
+ filteredProjects = filteredProjects.sort((a, b) => {
+ if (orderByLocal === 'asc')
+ return a.progress - b.progress
+ else
+ return b.progress - a.progress
+ })
+ }
+ }
+
+ const totalProjects = filteredProjects.length
+ const totalPages = Math.ceil(totalProjects / itemsPerPageLocal)
+
+ return HttpResponse.json(
+ {
+ projects: paginateArray(filteredProjects, itemsPerPageLocal, pageLocal),
+ totalPages,
+ totalProjects,
+ page: pageLocal > Math.ceil(totalProjects / itemsPerPageLocal) ? 1 : page,
+ },
+ { status: 200 },
+ )
+ }),
+]
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/dashboard/type.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/dashboard/type.ts
new file mode 100644
index 0000000..03d32af
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/dashboard/type.ts
@@ -0,0 +1,12 @@
+export interface ProjectAnalytics {
+ logo: string
+ name: string
+ date?: string
+ leader: string
+ team: string[]
+ status?: number
+ project: string
+ progress: number
+ hours: string
+ extraMembers?: number
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/datatable/db.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/datatable/db.ts
new file mode 100644
index 0000000..9f680ec
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/datatable/db.ts
@@ -0,0 +1,1364 @@
+import type { SalesDetails } from '@db/pages/datatable/types'
+
+import avatar1 from '@images/avatars/avatar-1.png'
+import avatar2 from '@images/avatars/avatar-2.png'
+import avatar3 from '@images/avatars/avatar-3.png'
+import avatar4 from '@images/avatars/avatar-4.png'
+import avatar5 from '@images/avatars/avatar-5.png'
+import avatar6 from '@images/avatars/avatar-6.png'
+import avatar7 from '@images/avatars/avatar-7.png'
+import avatar8 from '@images/avatars/avatar-8.png'
+import product10 from '@images/eCommerce/10.png'
+import product11 from '@images/eCommerce/11.png'
+import product13 from '@images/eCommerce/13.png'
+import product14 from '@images/eCommerce/14.png'
+import product15 from '@images/eCommerce/15.png'
+import product16 from '@images/eCommerce/16.png'
+import product17 from '@images/eCommerce/17.png'
+import product18 from '@images/eCommerce/18.png'
+import product19 from '@images/eCommerce/19.png'
+import product20 from '@images/eCommerce/20.png'
+import product23 from '@images/eCommerce/23.png'
+import product24 from '@images/eCommerce/24.png'
+import product25 from '@images/eCommerce/25.png'
+import product26 from '@images/eCommerce/26.png'
+import product3 from '@images/eCommerce/3.png'
+import product4 from '@images/eCommerce/4.png'
+import product5 from '@images/eCommerce/5.png'
+import product6 from '@images/eCommerce/6.png'
+import product7 from '@images/eCommerce/7.png'
+import product8 from '@images/eCommerce/8.png'
+import product9 from '@images/eCommerce/9.png'
+
+interface DB {
+ salesDetails: SalesDetails[]
+}
+
+export const db: DB = {
+ salesDetails: [
+ {
+ product: {
+ id: 19,
+ name: 'OnePlus 7 Pro ',
+ slug: 'one-plus-7-pro-19',
+ brand: 'Philips',
+ category: 'Smart Phone',
+ price: 14.99,
+ image: product9,
+ hasFreeShipping: false,
+ rating: 4,
+ description:
+ 'The OnePlus 7 Pro features a brand new design, with a glass back and front and curved sides. The phone feels\n very premium but\u2019s it\u2019s also very heavy. The Nebula Blue variant looks slick but it\u2019s quite slippery, which\n makes single-handed use a real challenge. It has a massive 6.67-inch \u2018Fluid AMOLED\u2019 display with a QHD+\n resolution, 90Hz refresh rate and support for HDR 10+ content. The display produces vivid colours, deep blacks\n and has good viewing angles.',
+ },
+ date: '30 Apr 2020',
+ buyer: {
+ name: 'Ana Smith',
+ avatar: avatar3,
+ },
+ payment: {
+ total: 984,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 984,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 21,
+ name: 'Google - Google Home',
+ slug: 'google-google-home-white-slate-fabric-21',
+ brand: 'Google',
+ category: 'Google Home',
+ price: 129.29,
+ image: product7,
+ hasFreeShipping: true,
+ rating: 4,
+ description:
+ 'Simplify your everyday life with the Google Home, a voice-activated speaker powered by the Google Assistant. Use\n voice commands to enjoy music, get answers from Google and manage everyday tasks. Google Home is compatible with\n Android and iOS operating systems, and can control compatible smart devices such as Chromecast or Nest.',
+ },
+ date: '11 Jul 2020',
+ buyer: {
+ name: 'Lindsay Green',
+ avatar: avatar8,
+ },
+ payment: {
+ total: 1101,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 1101,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 17,
+ name: 'Nike Air Max',
+ slug: '72-9301-speaker-wire-harness-adapter-for-most-plymouth-dodge-and-mitsubishi-vehicles-multi-17',
+ description:
+ 'With a bold application of colorblocking inspired by modern art styles, the Nike Air Max 270 React sneaker is constructed with layers of lightweight material to achieve its artful look and comfortable feel.',
+ brand: 'Nike',
+ category: 'Shoes',
+ price: 81.99,
+ image: product11,
+ hasFreeShipping: true,
+ rating: 5,
+ },
+ date: '06 Jan 2021',
+ buyer: {
+ name: 'Ethan Lee',
+ avatar: avatar1,
+ },
+ payment: {
+ total: 726,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 126,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 2,
+ name: 'Bose Frames Tenor',
+ slug: 'bose-frames-tenor-rectangular-polarized-bluetooth-audio-sunglasses-2',
+ description:
+ 'Redesigned for luxury \u2014 Thoughtfully refined and strikingly elegant, the latest Bose sunglasses blend enhanced features and designs for an elevated way to listen',
+ brand: 'Bose',
+ category: 'Glass',
+ price: 249,
+ image: product26,
+ hasFreeShipping: false,
+ rating: 4,
+ },
+ date: '21 Aug 2020',
+ buyer: {
+ name: 'Scott Miller',
+ avatar: avatar7,
+ },
+ payment: {
+ total: 646,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 345,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 25,
+ name: 'Apple iMac 27-inch',
+ slug: 'apple-i-mac-27-inch-25',
+ brand: 'Apple',
+ category: 'iMac',
+ price: 999.99,
+ image: product3,
+ hasFreeShipping: true,
+ rating: 4,
+ description:
+ 'The all-in-one for all. If you can dream it, you can do it on iMac. It\u2019s beautifully & incredibly intuitive and\n packed with tools that let you take any idea to the next level. And the new 27-inch model elevates the\n experience in way, with faster processors and graphics, expanded memory and storage, enhanced audio and video\n capabilities, and an even more stunning Retina 5K display. It\u2019s the desktop that does it all \u2014 better and faster\n than ever.',
+ },
+ date: '21 Aug 2020',
+ buyer: {
+ name: 'Brandon Brooks',
+ avatar: avatar5,
+ },
+ payment: {
+ total: 1005,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 21,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 12,
+ name: 'Adidas Mens Tech Response Shoes',
+ slug: 'adidas-mens-tech-response-shoes-12',
+ description:
+ 'Comfort + performance. Designed with materials that are durable, lightweight and extremely comfortable. Core performance delivers the perfect mix of fit, style and all-around performance.',
+ brand: 'Adidas',
+ category: 'Shoes',
+ price: 54.59,
+ image: product16,
+ hasFreeShipping: false,
+ rating: 5,
+ },
+ date: '10 Mar 2021',
+ buyer: {
+ name: 'Henry Mann',
+ avatar: avatar6,
+ },
+ payment: {
+ total: 1114,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 814,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 25,
+ name: 'Apple iMac 27-inch',
+ slug: 'apple-i-mac-27-inch-25',
+ brand: 'Apple',
+ category: 'iMac',
+ price: 999.99,
+ image: product3,
+ hasFreeShipping: true,
+ rating: 4,
+ description:
+ 'The all-in-one for all. If you can dream it, you can do it on iMac. It\u2019s beautifully & incredibly intuitive and\n packed with tools that let you take any idea to the next level. And the new 27-inch model elevates the\n experience in way, with faster processors and graphics, expanded memory and storage, enhanced audio and video\n capabilities, and an even more stunning Retina 5K display. It\u2019s the desktop that does it all \u2014 better and faster\n than ever.',
+ },
+ date: '21 Aug 2020',
+ buyer: {
+ name: 'Brandon Brooks',
+ avatar: avatar5,
+ },
+ payment: {
+ total: 1005,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 21,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 24,
+ name: 'OneOdio A71 Wired Headphones',
+ slug: 'one-odio-a71-wired-headphones-24',
+ brand: 'OneOdio',
+ category: 'Headphone',
+ price: 49.99,
+ image: product4,
+ hasFreeShipping: true,
+ rating: 3,
+ description:
+ 'Omnidirectional detachable boom mic upgrades the headphones into a professional headset for gaming, business,\n podcasting and taking calls on the go. Better pick up your voice. Control most electric devices through voice\n activation, or schedule a ride with Uber and order a pizza. OneOdio A71 Wired Headphones voice-controlled device\n turns any home into a smart device on a smartphone or tablet.',
+ },
+ date: '12 Nov 2020',
+ buyer: {
+ name: 'Grant Wright',
+ avatar: avatar2,
+ },
+ payment: {
+ total: 207,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 207,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 20,
+ name: 'Sony 4K Ultra HD LED TV ',
+ slug: 'sony-4-k-ultra-hd-led-tv-20',
+ brand: 'Apple',
+ category: 'Smart TV',
+ price: 7999.99,
+ image: product8,
+ hasFreeShipping: false,
+ rating: 5,
+ description:
+ 'Sony 4K Ultra HD LED TV has 4K HDR Support. The TV provides clear visuals and provides distinct sound quality\n and an immersive experience. This TV has Yes HDMI ports & Yes USB ports. Connectivity options included are HDMI.\n You can connect various gadgets such as your laptop using the HDMI port. The TV comes with a 1 Year warranty.',
+ },
+ date: '19 Apr 2021',
+ buyer: {
+ name: 'Amanda Sanchez',
+ avatar: avatar2,
+ },
+ payment: {
+ total: 1119,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 1119,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 23,
+ name: 'Apple - MacBook Air\u00AE',
+ slug: 'apple-mac-book-air-latest-model-13-3-display-silver-23',
+ brand: 'Apple',
+ category: 'Mac',
+ price: 999.99,
+ image: product5,
+ hasFreeShipping: false,
+ rating: 4,
+ description:
+ 'MacBook Air is a thin, lightweight laptop from Apple. MacBook Air features up to 8GB of memory, a\n fifth-generation Intel Core processor, Thunderbolt 2, great built-in apps, and all-day battery life.1 Its thin,\n light, and durable enough to take everywhere you go-and powerful enough to do everything once you get there,\n better.',
+ },
+ date: '25 Dec 2020',
+ buyer: {
+ name: 'Kathy Estrada',
+ avatar: avatar2,
+ },
+ payment: {
+ total: 1221,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 1025,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 25,
+ name: 'Apple iMac 27-inch',
+ slug: 'apple-i-mac-27-inch-25',
+ brand: 'Apple',
+ category: 'iMac',
+ price: 999.99,
+ image: product3,
+ hasFreeShipping: true,
+ rating: 4,
+ description:
+ 'The all-in-one for all. If you can dream it, you can do it on iMac. It\u2019s beautifully & incredibly intuitive and\n packed with tools that let you take any idea to the next level. And the new 27-inch model elevates the\n experience in way, with faster processors and graphics, expanded memory and storage, enhanced audio and video\n capabilities, and an even more stunning Retina 5K display. It\u2019s the desktop that does it all \u2014 better and faster\n than ever.',
+ },
+ date: '19 May 2020',
+ buyer: {
+ name: 'William Lopez',
+ avatar: avatar2,
+ },
+ payment: {
+ total: 973,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 374,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 8,
+ name: 'PlayStation 4 Console',
+ slug: 'play-station-4-console-8',
+ description:
+ 'All the greatest, games, TV, music and more. Connect with your friends to broadcast and celebrate your epic moments at the press of the Share button to Twitch, YouTube, Facebook and Twitter.',
+ brand: 'Sony',
+ category: 'Gaming',
+ price: 339.95,
+ image: product20,
+ hasFreeShipping: false,
+ rating: 4,
+ },
+ date: '27 Mar 2021',
+ buyer: {
+ name: 'Colleen Taylor',
+ avatar: avatar2,
+ },
+ payment: {
+ total: 1235,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 1235,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 5,
+ name: 'Toshiba Canvio External Hard Drive',
+ slug: 'toshiba-canvio-advance-2-tb-portable-external-hard-drive-5',
+ description: 'Up to 3TB of storage capacity to store your growing files and content',
+ brand: 'Toshiba',
+ category: 'Storage Device',
+ price: 69.99,
+ image: product23,
+ hasFreeShipping: true,
+ rating: 2,
+ },
+ date: '21 Jun 2020',
+ buyer: {
+ name: 'Melanie Olson',
+ avatar: avatar6,
+ },
+ payment: {
+ total: 780,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 780,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 19,
+ name: 'OnePlus 7 Pro ',
+ slug: 'one-plus-7-pro-19',
+ brand: 'Philips',
+ category: 'Smart Phone',
+ price: 14.99,
+ image: product9,
+ hasFreeShipping: false,
+ rating: 4,
+ description:
+ 'The OnePlus 7 Pro features a brand new design, with a glass back and front and curved sides. The phone feels\n very premium but\u2019s it\u2019s also very heavy. The Nebula Blue variant looks slick but it\u2019s quite slippery, which\n makes single-handed use a real challenge. It has a massive 6.67-inch \u2018Fluid AMOLED\u2019 display with a QHD+\n resolution, 90Hz refresh rate and support for HDR 10+ content. The display produces vivid colours, deep blacks\n and has good viewing angles.',
+ },
+ date: '28 Jan 2021',
+ buyer: {
+ name: 'Cynthia Cannon',
+ avatar: avatar7,
+ },
+ payment: {
+ total: 1073,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 871,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 23,
+ name: 'Apple - MacBook Air\u00AE',
+ slug: 'apple-mac-book-air-latest-model-13-3-display-silver-23',
+ brand: 'Apple',
+ category: 'Mac',
+ price: 999.99,
+ image: product5,
+ hasFreeShipping: false,
+ rating: 4,
+ description:
+ 'MacBook Air is a thin, lightweight laptop from Apple. MacBook Air features up to 8GB of memory, a\n fifth-generation Intel Core processor, Thunderbolt 2, great built-in apps, and all-day battery life.1 Its thin,\n light, and durable enough to take everywhere you go-and powerful enough to do everything once you get there,\n better.',
+ },
+ date: '20 Aug 2020',
+ buyer: {
+ name: 'David Archer',
+ avatar: avatar5,
+ },
+ payment: {
+ total: 224,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 224,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 9,
+ name: 'Giotto 32oz Leakproof BPA Free Drinking Water',
+ slug: 'giotto-32oz-leakproof-bpa-free-drinking-water-9',
+ description:
+ 'With unique inspirational quote and time markers on it,this water bottle is great for measuring your daily intake of water,reminding you stay hydrated and drink enough water throughout the day.A must have for any fitness goals including weight loss,appetite control and overall health.',
+ brand: '3M',
+ category: 'Home',
+ price: 16.99,
+ image: product19,
+ hasFreeShipping: true,
+ rating: 4,
+ },
+ date: '29 Dec 2020',
+ buyer: {
+ name: 'Michael Cervantes',
+ avatar: avatar8,
+ },
+ payment: {
+ total: 960,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 866,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 13,
+ name: 'Laptop Bag',
+ slug: 'laptop-bag-13',
+ description:
+ 'TSA FRIENDLY- A separate DIGI SMART compartment can hold 15.6 inch Laptop as well as 15 inch, 14 inch MacBook, 12.9 inch iPad, and tech accessories like charger for quick TSA checkpoint when traveling',
+ brand: 'TAS',
+ category: 'Bag',
+ price: 29.99,
+ image: product15,
+ hasFreeShipping: true,
+ rating: 5,
+ },
+ date: '15 Aug 2020',
+ buyer: {
+ name: 'Nathaniel Marshall',
+ avatar: avatar6,
+ },
+ payment: {
+ total: 1423,
+ receivedPaymentStatus: 'Unpaid',
+ paidAmount: 0,
+ status: 'Cancelled',
+ },
+ },
+ {
+ product: {
+ id: 5,
+ name: 'Toshiba Canvio External Hard Drive',
+ slug: 'toshiba-canvio-advance-2-tb-portable-external-hard-drive-5',
+ description: 'Up to 3TB of storage capacity to store your growing files and content',
+ brand: 'Toshiba',
+ category: 'Storage Device',
+ price: 69.99,
+ image: product23,
+ hasFreeShipping: true,
+ rating: 2,
+ },
+ date: '03 Jan 2021',
+ buyer: {
+ name: 'Tiffany Ross',
+ avatar: avatar4,
+ },
+ payment: {
+ total: 663,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 285,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 14,
+ name: 'Wireless Charger 5W Max',
+ slug: 'wireless-charger-5-w-max-14',
+ description:
+ 'Charge with case: transmits charging power directly through protective cases. Rubber/plastic/TPU cases under 5 mm thickness . Do not use any magnetic and metal attachments or cards, or it will prevent charging.',
+ brand: '3M',
+ category: 'Electronics',
+ price: 10.83,
+ image: product14,
+ hasFreeShipping: true,
+ rating: 3,
+ },
+ date: '20 Dec 2020',
+ buyer: {
+ name: 'Philip Walters',
+ avatar: null,
+ },
+ payment: {
+ total: 1112,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 426,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 15,
+ name: 'Vankyo leisure 3 mini projector',
+ slug: '3-m-filtrete-vacuum-belt-for-select-hoover-t-series-upright-vacuums-15',
+ description:
+ 'SUPERIOR VIEWING EXPERIENCE: Supporting 1920x1080 resolution, VANKYO Leisure 3 projector is powered by MStar Advanced Color Engine, which is ideal for home entertainment. 2020 upgraded LED lighting provides a superior viewing experience for you.',
+ brand: 'Vankyo Store',
+ category: 'Projector',
+ price: 99.99,
+ image: product13,
+ hasFreeShipping: true,
+ rating: 2,
+ },
+ date: '02 Jul 2020',
+ buyer: {
+ name: 'Pamela Smith',
+ avatar: null,
+ },
+ payment: {
+ total: 462,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 383,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 12,
+ name: 'Adidas Mens Tech Response Shoes',
+ slug: 'adidas-mens-tech-response-shoes-12',
+ description:
+ 'Comfort + performance. Designed with materials that are durable, lightweight and extremely comfortable. Core performance delivers the perfect mix of fit, style and all-around performance.',
+ brand: 'Adidas',
+ category: 'Shoes',
+ price: 54.59,
+ image: product16,
+ hasFreeShipping: false,
+ rating: 5,
+ },
+ date: '24 Jul 2020',
+ buyer: {
+ name: 'Kara Gonzalez',
+ avatar: avatar3,
+ },
+ payment: {
+ total: 1325,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 792,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 18,
+ name: 'Logitech K380 Wireless Keyboard',
+ slug: 'acer-11-6-chromebook-intel-celeron-2-gb-memory-16-gb-e-mmc-flash-memory-moonstone-white-18',
+ description:
+ 'Logitech K380 Bluetooth Wireless Keyboard gives you the comfort and convenience of desktop typing on your smartphone, and tablet. It is a wireless keyboard that connects to all Bluetooth wireless devices that support external keyboards. Take this compact, lightweight, Bluetooth keyboard anywhere in your home. Type wherever you like, on any compatible computer, phone or tablet.',
+ brand: 'Logitech',
+ category: 'Keyboard',
+ price: 81.99,
+ image: product10,
+ hasFreeShipping: false,
+ rating: 4,
+ },
+ date: '07 Jan 2021',
+ buyer: {
+ name: 'Katherine Tate',
+ avatar: avatar8,
+ },
+ payment: {
+ total: 582,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 234,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 3,
+ name: 'Willful Smart Watch for Men Women 2020,',
+ slug: 'willful-smart-watch-for-men-women-2020-3',
+ description:
+ 'Are you looking for a smart watch, which can not only easily keep tracking of your steps, calories, heart rate and sleep quality, but also keep you informed of incoming calls.',
+ brand: 'Willful',
+ category: 'Smart Watch',
+ price: 29.99,
+ image: product25,
+ hasFreeShipping: true,
+ rating: 5,
+ },
+ date: '29 Aug 2020',
+ buyer: {
+ name: 'Ashley Douglas DDS',
+ avatar: avatar3,
+ },
+ payment: {
+ total: 1092,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 1092,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 22,
+ name: 'Switch Pro Controller',
+ slug: 'switch-pro-controller-22',
+ brand: 'Sharp',
+ category: 'Gaming',
+ price: 429.99,
+ image: product6,
+ hasFreeShipping: false,
+ rating: 3,
+ description:
+ 'The Nintendo Switch Pro Controller is one of the priciest \'baseline\' controllers in the current console\n generation, but it\'s also sturdy, feels good to play with, has an excellent direction pad, and features\n impressive motion sensors and vibration systems. On top of all of that, it uses Bluetooth, so you don\'t need an\n adapter to use it with your PC.',
+ },
+ date: '09 Jan 2021',
+ buyer: {
+ name: 'Eric Gregory',
+ avatar: avatar3,
+ },
+ payment: {
+ total: 939,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 939,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 4,
+ name: 'Ronyes Unisex College Bag Bookbags for Women',
+ slug: 'ronyes-unisex-college-bag-bookbags-for-women-4',
+ description:
+ 'Made of high quality water-resistant material; padded and adjustable shoulder straps; external USB with built-in charging cable offers a convenient charging',
+ brand: 'Ronyes',
+ category: 'Bag',
+ price: 23.99,
+ image: product24,
+ hasFreeShipping: true,
+ rating: 2,
+ },
+ date: '06 May 2020',
+ buyer: {
+ name: 'Taylor Hernandez',
+ avatar: avatar3,
+ },
+ payment: {
+ total: 1129,
+ receivedPaymentStatus: 'Unpaid',
+ paidAmount: 0,
+ status: 'Cancelled',
+ },
+ },
+ {
+ product: {
+ id: 10,
+ name: 'Oculus Quest All-in-one VR',
+ slug: 'oculus-quest-all-in-one-vr-10',
+ description:
+ 'All-in-one VR: No PC. No wires. No limits. Oculus quest is an all-in-one gaming system built for virtual reality. Now you can play almost anywhere with just a VR headset and controllers. Oculus touch controllers: arm yourself with the award-winning Oculus touch controllers. Your slashes, throws and grab appear in VR with intuitive, realistic Precision, transporting your hands and gestures right into the game',
+ brand: 'Oculus',
+ category: 'VR',
+ price: 645,
+ image: product18,
+ hasFreeShipping: false,
+ rating: 1,
+ },
+ date: '29 Dec 2020',
+ buyer: {
+ name: 'Justin Patterson',
+ avatar: avatar3,
+ },
+ payment: {
+ total: 252,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 252,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 11,
+ name: 'Handbags for Women Large Designer bag',
+ slug: 'handbags-for-women-large-designer-bag-11',
+ description:
+ 'Classic Hobo Purse: Top zipper closure, with 2 side zipper pockets design and elegant tassels decoration, fashionable and practical handbags for women, perfect for shopping, dating, travel and business',
+ brand: 'Hobo',
+ category: 'Bag',
+ price: 39.99,
+ image: product17,
+ hasFreeShipping: true,
+ rating: 3,
+ },
+ date: '19 Dec 2020',
+ buyer: {
+ name: 'Judy Cummings',
+ avatar: avatar3,
+ },
+ payment: {
+ total: 1369,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 1369,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 18,
+ name: 'Logitech K380 Wireless Keyboard',
+ slug: 'acer-11-6-chromebook-intel-celeron-2-gb-memory-16-gb-e-mmc-flash-memory-moonstone-white-18',
+ description:
+ 'Logitech K380 Bluetooth Wireless Keyboard gives you the comfort and convenience of desktop typing on your smartphone, and tablet. It is a wireless keyboard that connects to all Bluetooth wireless devices that support external keyboards. Take this compact, lightweight, Bluetooth keyboard anywhere in your home. Type wherever you like, on any compatible computer, phone or tablet.',
+ brand: 'Logitech',
+ category: 'Keyboard',
+ price: 81.99,
+ image: product10,
+ hasFreeShipping: false,
+ rating: 4,
+ },
+ date: '02 Jan 2021',
+ buyer: {
+ name: 'Linda Buchanan',
+ avatar: avatar7,
+ },
+ payment: {
+ total: 351,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 351,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 21,
+ name: 'Google - Google Home',
+ slug: 'google-google-home-white-slate-fabric-21',
+ brand: 'Google',
+ category: 'Google Home',
+ price: 129.29,
+ image: product7,
+ hasFreeShipping: true,
+ rating: 4,
+ description:
+ 'Simplify your everyday life with the Google Home, a voice-activated speaker powered by the Google Assistant. Use\n voice commands to enjoy music, get answers from Google and manage everyday tasks. Google Home is compatible with\n Android and iOS operating systems, and can control compatible smart devices such as Chromecast or Nest.',
+ },
+ date: '25 Feb 2021',
+ buyer: {
+ name: 'Brian Perez',
+ avatar: avatar8,
+ },
+ payment: {
+ total: 506,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 497,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 3,
+ name: 'Willful Smart Watch for Men Women 2020,',
+ slug: 'willful-smart-watch-for-men-women-2020-3',
+ description:
+ 'Are you looking for a smart watch, which can not only easily keep tracking of your steps, calories, heart rate and sleep quality, but also keep you informed of incoming calls.',
+ brand: 'Willful',
+ category: 'Smart Watch',
+ price: 29.99,
+ image: product25,
+ hasFreeShipping: true,
+ rating: 5,
+ },
+ date: '13 Sep 2020',
+ buyer: {
+ name: 'Amy White',
+ avatar: null,
+ },
+ payment: {
+ total: 195,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 195,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 18,
+ name: 'Logitech K380 Wireless Keyboard',
+ slug: 'acer-11-6-chromebook-intel-celeron-2-gb-memory-16-gb-e-mmc-flash-memory-moonstone-white-18',
+ description:
+ 'Logitech K380 Bluetooth Wireless Keyboard gives you the comfort and convenience of desktop typing on your smartphone, and tablet. It is a wireless keyboard that connects to all Bluetooth wireless devices that support external keyboards. Take this compact, lightweight, Bluetooth keyboard anywhere in your home. Type wherever you like, on any compatible computer, phone or tablet.',
+ brand: 'Logitech',
+ category: 'Keyboard',
+ price: 81.99,
+ image: product10,
+ hasFreeShipping: false,
+ rating: 4,
+ },
+ date: '30 Sep 2020',
+ buyer: {
+ name: 'Katherine Clark',
+ avatar: avatar1,
+ },
+ payment: {
+ total: 1246,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 475,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 14,
+ name: 'Wireless Charger 5W Max',
+ slug: 'wireless-charger-5-w-max-14',
+ description:
+ 'Charge with case: transmits charging power directly through protective cases. Rubber/plastic/TPU cases under 5 mm thickness . Do not use any magnetic and metal attachments or cards, or it will prevent charging.',
+ brand: '3M',
+ category: 'Electronics',
+ price: 10.83,
+ image: product14,
+ hasFreeShipping: true,
+ rating: 3,
+ },
+ date: '26 Mar 2021',
+ buyer: {
+ name: 'Jose Murphy',
+ avatar: avatar5,
+ },
+ payment: {
+ total: 383,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 383,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 2,
+ name: 'Bose Frames Tenor',
+ slug: 'bose-frames-tenor-rectangular-polarized-bluetooth-audio-sunglasses-2',
+ description:
+ 'Redesigned for luxury \u2014 Thoughtfully refined and strikingly elegant, the latest Bose sunglasses blend enhanced features and designs for an elevated way to listen',
+ brand: 'Bose',
+ category: 'Glass',
+ price: 249,
+ image: product26,
+ hasFreeShipping: false,
+ rating: 4,
+ },
+ date: '01 Dec 2020',
+ buyer: {
+ name: 'Jeffrey Rose',
+ avatar: avatar5,
+ },
+ payment: {
+ total: 902,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 902,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 24,
+ name: 'OneOdio A71 Wired Headphones',
+ slug: 'one-odio-a71-wired-headphones-24',
+ brand: 'OneOdio',
+ category: 'Headphone',
+ price: 49.99,
+ image: product4,
+ hasFreeShipping: true,
+ rating: 3,
+ description:
+ 'Omnidirectional detachable boom mic upgrades the headphones into a professional headset for gaming, business,\n podcasting and taking calls on the go. Better pick up your voice. Control most electric devices through voice\n activation, or schedule a ride with Uber and order a pizza. OneOdio A71 Wired Headphones voice-controlled device\n turns any home into a smart device on a smartphone or tablet.',
+ },
+ date: '15 Sep 2020',
+ buyer: {
+ name: 'Amber Hunt',
+ avatar: avatar7,
+ },
+ payment: {
+ total: 379,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 174,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 2,
+ name: 'Bose Frames Tenor',
+ slug: 'bose-frames-tenor-rectangular-polarized-bluetooth-audio-sunglasses-2',
+ description:
+ 'Redesigned for luxury \u2014 Thoughtfully refined and strikingly elegant, the latest Bose sunglasses blend enhanced features and designs for an elevated way to listen',
+ brand: 'Bose',
+ category: 'Glass',
+ price: 249,
+ image: product26,
+ hasFreeShipping: false,
+ rating: 4,
+ },
+ date: '08 Apr 2021',
+ buyer: {
+ name: 'Christopher Haas',
+ avatar: avatar2,
+ },
+ payment: {
+ total: 7,
+ receivedPaymentStatus: 'Unpaid',
+ paidAmount: 0,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 2,
+ name: 'Bose Frames Tenor',
+ slug: 'bose-frames-tenor-rectangular-polarized-bluetooth-audio-sunglasses-2',
+ description:
+ 'Redesigned for luxury \u2014 Thoughtfully refined and strikingly elegant, the latest Bose sunglasses blend enhanced features and designs for an elevated way to listen',
+ brand: 'Bose',
+ category: 'Glass',
+ price: 249,
+ image: product26,
+ hasFreeShipping: false,
+ rating: 4,
+ },
+ date: '21 Oct 2020',
+ buyer: {
+ name: 'Stephen Mccormick',
+ avatar: avatar6,
+ },
+ payment: {
+ total: 186,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 81,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 19,
+ name: 'OnePlus 7 Pro ',
+ slug: 'one-plus-7-pro-19',
+ brand: 'Philips',
+ category: 'Smart Phone',
+ price: 14.99,
+ image: product9,
+ hasFreeShipping: false,
+ rating: 4,
+ description:
+ 'The OnePlus 7 Pro features a brand new design, with a glass back and front and curved sides. The phone feels\n very premium but\u2019s it\u2019s also very heavy. The Nebula Blue variant looks slick but it\u2019s quite slippery, which\n makes single-handed use a real challenge. It has a massive 6.67-inch \u2018Fluid AMOLED\u2019 display with a QHD+\n resolution, 90Hz refresh rate and support for HDR 10+ content. The display produces vivid colours, deep blacks\n and has good viewing angles.',
+ },
+ date: '21 Oct 2020',
+ buyer: {
+ name: 'Matthew Reyes',
+ avatar: avatar3,
+ },
+ payment: {
+ total: 198,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 198,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 4,
+ name: 'Ronyes Unisex College Bag Bookbags for Women',
+ slug: 'ronyes-unisex-college-bag-bookbags-for-women-4',
+ description:
+ 'Made of high quality water-resistant material; padded and adjustable shoulder straps; external USB with built-in charging cable offers a convenient charging',
+ brand: 'Ronyes',
+ category: 'Bag',
+ price: 23.99,
+ image: product24,
+ hasFreeShipping: true,
+ rating: 2,
+ },
+ date: '16 May 2020',
+ buyer: {
+ name: 'Ricardo Morgan',
+ avatar: avatar5,
+ },
+ payment: {
+ total: 519,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 447,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 20,
+ name: 'Sony 4K Ultra HD LED TV ',
+ slug: 'sony-4-k-ultra-hd-led-tv-20',
+ brand: 'Apple',
+ category: 'Smart TV',
+ price: 7999.99,
+ image: product8,
+ hasFreeShipping: false,
+ rating: 5,
+ description:
+ 'Sony 4K Ultra HD LED TV has 4K HDR Support. The TV provides clear visuals and provides distinct sound quality\n and an immersive experience. This TV has Yes HDMI ports & Yes USB ports. Connectivity options included are HDMI.\n You can connect various gadgets such as your laptop using the HDMI port. The TV comes with a 1 Year warranty.',
+ },
+ date: '01 Jul 2020',
+ buyer: {
+ name: 'William Castillo',
+ avatar: avatar4,
+ },
+ payment: {
+ total: 10,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 6,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 11,
+ name: 'Handbags for Women Large Designer bag',
+ slug: 'handbags-for-women-large-designer-bag-11',
+ description:
+ 'Classic Hobo Purse: Top zipper closure, with 2 side zipper pockets design and elegant tassels decoration, fashionable and practical handbags for women, perfect for shopping, dating, travel and business',
+ brand: 'Hobo',
+ category: 'Bag',
+ price: 39.99,
+ image: product17,
+ hasFreeShipping: true,
+ rating: 3,
+ },
+ date: '04 Jul 2020',
+ buyer: {
+ name: 'James Coleman',
+ avatar: avatar8,
+ },
+ payment: {
+ total: 897,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 677,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 18,
+ name: 'Logitech K380 Wireless Keyboard',
+ slug: 'acer-11-6-chromebook-intel-celeron-2-gb-memory-16-gb-e-mmc-flash-memory-moonstone-white-18',
+ description:
+ 'Logitech K380 Bluetooth Wireless Keyboard gives you the comfort and convenience of desktop typing on your smartphone, and tablet. It is a wireless keyboard that connects to all Bluetooth wireless devices that support external keyboards. Take this compact, lightweight, Bluetooth keyboard anywhere in your home. Type wherever you like, on any compatible computer, phone or tablet.',
+ brand: 'Logitech',
+ category: 'Keyboard',
+ price: 81.99,
+ image: product10,
+ hasFreeShipping: false,
+ rating: 4,
+ },
+ date: '19 Feb 2021',
+ buyer: {
+ name: 'Michael Summers',
+ avatar: avatar3,
+ },
+ payment: {
+ total: 653,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 653,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 3,
+ name: 'Willful Smart Watch for Men Women 2020,',
+ slug: 'willful-smart-watch-for-men-women-2020-3',
+ description:
+ 'Are you looking for a smart watch, which can not only easily keep tracking of your steps, calories, heart rate and sleep quality, but also keep you informed of incoming calls.',
+ brand: 'Willful',
+ category: 'Smart Watch',
+ price: 29.99,
+ image: product25,
+ hasFreeShipping: true,
+ rating: 5,
+ },
+ date: '03 Mar 2021',
+ buyer: {
+ name: 'Jeremiah Espinoza',
+ avatar: avatar2,
+ },
+ payment: {
+ total: 913,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 468,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 2,
+ name: 'Bose Frames Tenor',
+ slug: 'bose-frames-tenor-rectangular-polarized-bluetooth-audio-sunglasses-2',
+ description:
+ 'Redesigned for luxury \u2014 Thoughtfully refined and strikingly elegant, the latest Bose sunglasses blend enhanced features and designs for an elevated way to listen',
+ brand: 'Bose',
+ category: 'Glass',
+ price: 249,
+ image: product26,
+ hasFreeShipping: false,
+ rating: 4,
+ },
+ date: '03 Mar 2021',
+ buyer: {
+ name: 'Tyler Brooks',
+ avatar: null,
+ },
+ payment: {
+ total: 1123,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 1123,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 17,
+ name: 'Nike Air Max',
+ slug: '72-9301-speaker-wire-harness-adapter-for-most-plymouth-dodge-and-mitsubishi-vehicles-multi-17',
+ description:
+ 'With a bold application of colorblocking inspired by modern art styles, the Nike Air Max 270 React sneaker is constructed with layers of lightweight material to achieve its artful look and comfortable feel.',
+ brand: 'Nike',
+ category: 'Shoes',
+ price: 81.99,
+ image: product11,
+ hasFreeShipping: true,
+ rating: 5,
+ },
+ date: '29 Dec 2020',
+ buyer: {
+ name: 'Juan Wilson',
+ avatar: avatar3,
+ },
+ payment: {
+ total: 779,
+ receivedPaymentStatus: 'Fully Paid',
+ paidAmount: 779,
+ status: 'Completed',
+ },
+ },
+ {
+ product: {
+ id: 15,
+ name: 'Vankyo leisure 3 mini projector',
+ slug: '3-m-filtrete-vacuum-belt-for-select-hoover-t-series-upright-vacuums-15',
+ description:
+ 'SUPERIOR VIEWING EXPERIENCE: Supporting 1920x1080 resolution, VANKYO Leisure 3 projector is powered by MStar Advanced Color Engine, which is ideal for home entertainment. 2020 upgraded LED lighting provides a superior viewing experience for you.',
+ brand: 'Vankyo Store',
+ category: 'Projector',
+ price: 99.99,
+ image: product13,
+ hasFreeShipping: true,
+ rating: 2,
+ },
+ date: '03 Dec 2020',
+ buyer: {
+ name: 'Marvin Duran',
+ avatar: null,
+ },
+ payment: {
+ total: 594,
+ receivedPaymentStatus: 'Unpaid',
+ paidAmount: 0,
+ status: 'Cancelled',
+ },
+ },
+ {
+ product: {
+ id: 22,
+ name: 'Switch Pro Controller',
+ slug: 'switch-pro-controller-22',
+ brand: 'Sharp',
+ category: 'Gaming',
+ price: 429.99,
+ image: product6,
+ hasFreeShipping: false,
+ rating: 3,
+ description:
+ 'The Nintendo Switch Pro Controller is one of the priciest \'baseline\' controllers in the current console\n generation, but it\'s also sturdy, feels good to play with, has an excellent direction pad, and features\n impressive motion sensors and vibration systems. On top of all of that, it uses Bluetooth, so you don\'t need an\n adapter to use it with your PC.',
+ },
+ date: '28 May 2020',
+ buyer: {
+ name: 'Jessica Glass',
+ avatar: avatar5,
+ },
+ payment: {
+ total: 1065,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 844,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 18,
+ name: 'Logitech K380 Wireless Keyboard',
+ slug: 'acer-11-6-chromebook-intel-celeron-2-gb-memory-16-gb-e-mmc-flash-memory-moonstone-white-18',
+ description:
+ 'Logitech K380 Bluetooth Wireless Keyboard gives you the comfort and convenience of desktop typing on your smartphone, and tablet. It is a wireless keyboard that connects to all Bluetooth wireless devices that support external keyboards. Take this compact, lightweight, Bluetooth keyboard anywhere in your home. Type wherever you like, on any compatible computer, phone or tablet.',
+ brand: 'Logitech',
+ category: 'Keyboard',
+ price: 81.99,
+ image: product10,
+ hasFreeShipping: false,
+ rating: 4,
+ },
+ date: '17 May 2020',
+ buyer: {
+ name: 'Gary Herman',
+ avatar: avatar8,
+ },
+ payment: {
+ total: 432,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 64,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 19,
+ name: 'OnePlus 7 Pro ',
+ slug: 'one-plus-7-pro-19',
+ brand: 'Philips',
+ category: 'Smart Phone',
+ price: 14.99,
+ image: product9,
+ hasFreeShipping: false,
+ rating: 4,
+ description:
+ 'The OnePlus 7 Pro features a brand new design, with a glass back and front and curved sides. The phone feels\n very premium but\u2019s it\u2019s also very heavy. The Nebula Blue variant looks slick but it\u2019s quite slippery, which\n makes single-handed use a real challenge. It has a massive 6.67-inch \u2018Fluid AMOLED\u2019 display with a QHD+\n resolution, 90Hz refresh rate and support for HDR 10+ content. The display produces vivid colours, deep blacks\n and has good viewing angles.',
+ },
+ date: '25 Mar 2021',
+ buyer: {
+ name: 'Adam Williams',
+ avatar: avatar2,
+ },
+ payment: {
+ total: 1402,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 434,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 20,
+ name: 'Sony 4K Ultra HD LED TV ',
+ slug: 'sony-4-k-ultra-hd-led-tv-20',
+ brand: 'Apple',
+ category: 'Smart TV',
+ price: 7999.99,
+ image: product8,
+ hasFreeShipping: false,
+ rating: 5,
+ description:
+ 'Sony 4K Ultra HD LED TV has 4K HDR Support. The TV provides clear visuals and provides distinct sound quality\n and an immersive experience. This TV has Yes HDMI ports & Yes USB ports. Connectivity options included are HDMI.\n You can connect various gadgets such as your laptop using the HDMI port. The TV comes with a 1 Year warranty.',
+ },
+ date: '13 Apr 2021',
+ buyer: {
+ name: 'Bobby Brown',
+ avatar: null,
+ },
+ payment: {
+ total: 100,
+ receivedPaymentStatus: 'Partially Paid',
+ paidAmount: 65,
+ status: 'Confirmed',
+ },
+ },
+ {
+ product: {
+ id: 14,
+ name: 'Wireless Charger 5W Max',
+ slug: 'wireless-charger-5-w-max-14',
+ description:
+ 'Charge with case: transmits charging power directly through protective cases. Rubber/plastic/TPU cases under 5 mm thickness . Do not use any magnetic and metal attachments or cards, or it will prevent charging.',
+ brand: '3M',
+ category: 'Electronics',
+ price: 10.83,
+ image: product14,
+ hasFreeShipping: true,
+ rating: 3,
+ },
+ date: '07 Aug 2020',
+ buyer: {
+ name: 'Sharon Moss',
+ avatar: avatar8,
+ },
+ payment: {
+ total: 823,
+ receivedPaymentStatus: 'Unpaid',
+ paidAmount: 0,
+ status: 'Cancelled',
+ },
+ },
+ {
+ product: {
+ id: 15,
+ name: 'Vankyo leisure 3 mini projector',
+ slug: '3-m-filtrete-vacuum-belt-for-select-hoover-t-series-upright-vacuums-15',
+ description:
+ 'SUPERIOR VIEWING EXPERIENCE: Supporting 1920x1080 resolution, VANKYO Leisure 3 projector is powered by MStar Advanced Color Engine, which is ideal for home entertainment. 2020 upgraded LED lighting provides a superior viewing experience for you.',
+ brand: 'Vankyo Store',
+ category: 'Projector',
+ price: 99.99,
+ image: product13,
+ hasFreeShipping: true,
+ rating: 2,
+ },
+ date: '23 Feb 2021',
+ buyer: {
+ name: 'Scott Buchanan',
+ avatar: avatar5,
+ },
+ payment: {
+ total: 183,
+ receivedPaymentStatus: 'Unpaid',
+ paidAmount: 0,
+ status: 'Cancelled',
+ },
+ },
+ ],
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/datatable/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/datatable/index.ts
new file mode 100644
index 0000000..480c72e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/datatable/index.ts
@@ -0,0 +1,10 @@
+import { HttpResponse, http } from 'msw'
+import { db } from '@db/pages/datatable/db'
+
+// Handler for pages/datatable
+export const handlerPagesDatatable = [
+ http.get(('/api/pages/datatable'), () => {
+ return HttpResponse.json(db.salesDetails,
+ { status: 200 })
+ }),
+]
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/datatable/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/datatable/types.ts
new file mode 100644
index 0000000..ef9aa45
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/datatable/types.ts
@@ -0,0 +1,46 @@
+export interface SalesDetails {
+ product: Product
+ buyer: Buyer
+ date: string
+ payment: Payment
+}
+
+export interface Product {
+ id: number
+ name: string
+ slug: string
+ brand: string
+ category: string
+ price: number
+ image: string
+ hasFreeShipping: boolean
+ rating: number
+ description: string
+}
+
+export interface Buyer {
+ name: string
+ avatar: string | null
+}
+
+export interface Payment {
+ total: number
+ receivedPaymentStatus: string
+ paidAmount: number
+ status: string
+}
+
+export interface Data {
+ responsiveId: string
+ id: number
+ avatar: string
+ fullName: string
+ post: string
+ email: string
+ city: string
+ startDate: string
+ salary: number
+ age: string | number
+ experience: string
+ status: number
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/faq/db.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/faq/db.ts
new file mode 100644
index 0000000..268dedf
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/faq/db.ts
@@ -0,0 +1,115 @@
+import type { FaqCategory } from '@db/pages/faq/types'
+
+interface DB {
+ faqs: FaqCategory[]
+}
+
+export const db: DB = {
+ faqs: [
+ {
+ faqTitle: 'Payment',
+ faqIcon: 'tabler-credit-card',
+ faqSubtitle: 'Get help with payment',
+ faqs: [
+ {
+ question: 'When is payment taken for my order?',
+ answer: 'Payment is taken during the checkout process when you pay for your order. The order number that appears on the confirmation screen indicates payment has been successfully processed.',
+ },
+ {
+ question: 'How do I pay for my order?',
+ answer: 'We accept Visaยฎ, MasterCardยฎ, American Expressยฎ, and PayPalยฎ. Our servers encrypt all information submitted to them, so you can be confident that your credit card information will be kept safe and secure.',
+ },
+ {
+ question: 'What should I do if I\'m having trouble placing an order?',
+ answer: 'For any technical difficulties you are experiencing with our website, please contact us at our support portal, or you can call us toll-free at 1-000-000-000, or email us at order@companymail.com',
+ },
+ {
+ question: 'Which license do I need for an end product that is only accessible to paying users?',
+ answer: 'If you have paying users or you are developing any SaaS products then you need an Extended License. For each products, you need a license. You can get free lifetime updates as well.',
+ },
+ {
+ question: 'Does my subscription automatically renew?',
+ answer: 'No, This is not subscription based item.Pastry pudding cookie toffee bonbon jujubes jujubes powder topping. Jelly beans gummi bears sweet roll bonbon muffin liquorice. Wafer lollipop sesame snaps.',
+ },
+ ],
+ },
+ {
+ faqTitle: 'Delivery',
+ faqIcon: 'tabler-briefcase',
+ faqSubtitle: 'Get help with delivery',
+ faqs: [
+ {
+ question: 'How would you ship my order?',
+ answer: 'For large products, we deliver your product via a third party logistics company offering you the โroom of choiceโ scheduled delivery service. For small products, we offer free parcel delivery.',
+ },
+ {
+ question: 'What is the delivery cost of my order?',
+ answer: 'The cost of scheduled delivery is $69 or $99 per order, depending on the destination postal code. The parcel delivery is free.',
+ },
+ {
+ question: 'What to do if my product arrives damaged?',
+ answer: 'We will promptly replace any product that is damaged in transit. Just contact our support team, to notify us of the situation within 48 hours of product arrival.',
+ },
+ ],
+ },
+ {
+ faqTitle: 'Cancellation',
+ faqIcon: 'tabler-refresh',
+ faqSubtitle: 'Get help with cancellation & return',
+ faqs: [
+ {
+ question: 'Can I cancel my order?',
+ answer: 'Scheduled delivery orders can be cancelled 72 hours prior to your selected delivery date for full refund. Parcel delivery orders cannot be cancelled, however a free return label can be provided upon request.',
+ },
+ {
+ question: 'Can I return my product?',
+ answer: 'You can return your product within 15 days of delivery, by contacting our support team, All merchandise returned must be in the original packaging with all original items.',
+ },
+ {
+ question: 'Where can I view status of return?',
+ answer: 'Locate the item from Your Orders. Select Return/Refund status',
+ },
+ ],
+ },
+ {
+ faqTitle: 'My Orders',
+ faqIcon: 'tabler-box',
+ faqSubtitle: 'Order details',
+ faqs: [
+ {
+ question: 'Has my order been successful?',
+ answer: `All successful order transactions will receive an order confirmation email once the order has been processed. If you have not received your order confirmation email within 24 hours, check your junk email or spam folder.
+ Alternatively, log in to your account to check your order summary. If you do not have a account, you can contact our Customer Care Team on 1-000-000-000.
+ `,
+ },
+ {
+ question: 'My Promotion Code is not working, what can I do?',
+ answer: 'If you are having issues with a promotion code, please contact us at 1 000 000 000 for assistance.',
+ },
+ {
+ question: 'How do I track my Orders?',
+ answer: 'If you have an account just sign into your account from here and select โMy Ordersโ. If you have a a guest account track your order from here using the order number and the email address.',
+ },
+ ],
+ },
+ {
+ faqTitle: 'Product & Services',
+ faqIcon: 'tabler-settings',
+ faqSubtitle: 'Get help with product & services',
+ faqs: [
+ {
+ question: 'Will I be notified once my order has shipped?',
+ answer: 'Yes, We will send you an email once your order has been shipped. This email will contain tracking and order information.',
+ },
+ {
+ question: 'Where can I find warranty information?',
+ answer: 'We are committed to quality products. For information on warranty period and warranty services, visit our Warranty section here.',
+ },
+ {
+ question: 'How can I purchase additional warranty coverage?',
+ answer: 'For the peace of your mind, we offer extended warranty plans that add additional year(s) of protection to the standard manufacturer\'s warranty provided by us. To purchase or find out more about the extended warranty program, visit Extended Warranty section here.',
+ },
+ ],
+ },
+ ],
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/faq/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/faq/index.ts
new file mode 100644
index 0000000..a632efa
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/faq/index.ts
@@ -0,0 +1,31 @@
+import is from '@sindresorhus/is'
+import { HttpResponse, http } from 'msw'
+import { db } from '@db/pages/faq/db'
+import type { FaqCategory } from '@db/pages/faq/types'
+
+// Handler for pages/faq
+export const handlerPagesFaq = [
+ http.get(('/api/pages/faq'), ({ request }) => {
+ const url = new URL(request.url)
+
+ const q = url.searchParams.get('q') ?? ''
+
+ const searchQuery = is.string(q) ? q : undefined
+ const queryLowered = (searchQuery ?? '').toString().toLowerCase()
+
+ const filteredData: FaqCategory[] = []
+
+ Object.entries(db.faqs).forEach(([_, faqObj]) => {
+ const filteredQAndA = faqObj.faqs.filter(obj => {
+ return obj.question.toLowerCase().includes(queryLowered)
+ })
+
+ if (filteredQAndA.length)
+ filteredData.push({ ...faqObj, faqs: filteredQAndA })
+ })
+
+ return HttpResponse.json(filteredData,
+ { status: 200 })
+ }),
+
+]
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/faq/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/faq/types.ts
new file mode 100644
index 0000000..c61dacc
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/faq/types.ts
@@ -0,0 +1,11 @@
+export interface Faq {
+ question: string
+ answer: string
+}
+
+export interface FaqCategory {
+ faqTitle: string
+ faqIcon: string
+ faqSubtitle: string
+ faqs: Faq[]
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/help-center/db.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/help-center/db.ts
new file mode 100644
index 0000000..78310b5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/help-center/db.ts
@@ -0,0 +1,153 @@
+import type { HelpCenterAllCategoryArticles, HelpCenterArticle, HelpCenterArticlesOverview } from '@db/pages/help-center/types'
+import checkoutImg from '@images/front-pages/misc/checkout-image.png'
+import productImg from '@images/front-pages/misc/product-image.png'
+
+// Images
+
+interface DB {
+ allArticles: HelpCenterAllCategoryArticles[]
+ keepLearning: HelpCenterArticlesOverview[]
+ popularArticles: HelpCenterArticlesOverview[]
+ articleData: HelpCenterArticle
+}
+
+export const db: DB = {
+ popularArticles: [
+ {
+ slug: 'getting-started',
+ title: 'Getting Started',
+ img: '../images/svg/rocket.svg',
+ subtitle: 'Whether you\'re new or you\'re a power user, this article will',
+ },
+ {
+ slug: 'first-steps',
+ title: 'First Steps',
+ img: '../images/svg/gift.svg',
+ subtitle: 'Are you a new customer wondering how to get started?',
+ },
+ {
+ slug: 'external-content',
+ title: 'Add External Content',
+ img: '../images/svg/keyboard.svg',
+ subtitle: 'Article will show you how to expand functionality of App',
+ },
+ ],
+ allArticles: [
+ {
+ title: 'Buying',
+ icon: 'tabler-shopping-cart',
+ articles: [
+ { title: 'What are Favourites?' },
+ { title: 'How do I purchase an item?' },
+ { title: 'How do i add or change my details?' },
+ { title: 'How do refunds work?' },
+ { title: 'Can I Get A Refund?' },
+ { title: 'I\'m trying to find a specific item' },
+ ],
+ },
+ {
+ title: 'Item Support',
+ icon: 'tabler-help',
+ articles: [
+ { title: 'What is Item Support?' },
+ { title: 'How to contact an author?' },
+ { title: 'Where Is My Purchase Code?' },
+ { title: 'Extend or renew Item Support' },
+ { title: 'Item Support FAQ' },
+ { title: 'Why has my item been removed?' },
+ ],
+ },
+ {
+ title: 'Licenses',
+ icon: 'tabler-currency-dollar',
+ articles: [
+ { title: 'Can I use the same license for the...' },
+ { title: 'How to contact an author?' },
+ { title: 'I\'m making a test site - it\'s not for ...' },
+ { title: 'which license do I need?' },
+ { title: 'I want to make multiple end prod ...' },
+ { title: 'For logo what license do I need?' },
+ ],
+ },
+ {
+ title: 'Template Kits',
+ icon: 'tabler-color-swatch',
+ articles: [
+ { title: 'Template Kits' },
+ { title: 'Elementor Template Kits: PHP Zip ...' },
+ { title: 'Template Kits - Imported template ...' },
+ { title: 'Troubleshooting Import Problems' },
+ { title: 'How to use the WordPress Plugin ...' },
+ { title: 'How to use the Template Kit Import ...' },
+ ],
+ },
+ {
+ title: 'Account & Password',
+ icon: 'tabler-lock-open',
+ articles: [
+ { title: 'Signing in with a social account' },
+ { title: 'Locked Out of Account' },
+ { title: 'I\'m not receiving the verification email' },
+ { title: 'Forgotten Username Or Password' },
+ { title: 'New password not accepted' },
+ { title: 'What is Sign In Verification?' },
+ ],
+ },
+ {
+ title: 'Account Settings',
+ icon: 'tabler-user',
+ articles: [
+ { title: 'How do I change my password?' },
+ { title: 'How do I change my username?' },
+ { title: 'How do I close my account?' },
+ { title: 'How do I change my email address?' },
+ { title: 'How can I regain access to my a ...' },
+ { title: 'Are RSS feeds available on Market?' },
+ ],
+ },
+
+ ],
+ keepLearning: [
+ {
+ slug: 'blogging',
+ title: 'Blogging',
+ img: '../images/svg/laptop.svg',
+ subtitle: 'Expert tips & tools to improve your website or online store using blog.',
+ },
+ {
+ slug: 'inspiration-center',
+ title: 'Inspiration Center',
+ img: '../images/svg/lightbulb.svg',
+ subtitle: 'inspiration from experts to help you start and grow your big ideas.',
+ },
+ {
+ slug: 'community',
+ title: 'Community',
+ img: '../images/svg/discord.svg',
+ subtitle: 'A group of people living in the same place or having a particular.',
+ },
+ ],
+ articleData: {
+ title: 'How to add product in cart?',
+ lastUpdated: '1 month ago - Updated',
+ productContent: `
+
+ If you're after only one item, simply choose the 'Buy Now' option on the item page. This will take you directly to Checkout.
+
+
+ If you want several items, use the 'Add to Cart' button and then choose 'Keep Browsing' to continue shopping or 'Checkout' to finalize your purchase.
+
+ `,
+ checkoutContent: 'You can go back to your cart at any time by clicking on the shopping cart icon at the top right side of the page.',
+ articleList: [
+ 'Template Kits',
+ 'Elementor Template Kits: PHP Zip Extends',
+ 'Envato Elements Template Kits',
+ 'Envato Elements Template Kits',
+ 'How to use the template in WordPress',
+ 'How to use the Template Kit Import',
+ ],
+ checkoutImg,
+ productImg,
+ },
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/help-center/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/help-center/index.ts
new file mode 100644
index 0000000..e756a18
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/help-center/index.ts
@@ -0,0 +1,18 @@
+import { HttpResponse, http } from 'msw'
+import { db } from '@db/pages/help-center/db'
+
+// Handler for pages/help-center
+export const handlerPagesHelpCenter = [
+ http.get(('/api/pages/help-center'), () => {
+ return HttpResponse.json(
+ { allArticles: db.allArticles, popularArticles: db.popularArticles, keepLearning: db.keepLearning },
+ { status: 200 },
+ )
+ }),
+
+ http.get(('/api/pages/help-center/article'), () => {
+ return HttpResponse.json(db.articleData,
+ { status: 200 })
+ },
+ ),
+]
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/help-center/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/help-center/types.ts
new file mode 100644
index 0000000..c5eb64e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/help-center/types.ts
@@ -0,0 +1,40 @@
+// ๐ Help center
+export interface HelpCenterSubcategoryArticles {
+ slug: string
+ title: string
+ content: string
+}
+export interface HelpCenterAllCategoryArticles {
+ title: string
+ icon: string
+ articles: { title: string }[]
+}
+export interface HelpCenterSubcategories {
+ icon: string
+ slug: string
+ title: string
+ articles: HelpCenterSubcategoryArticles[]
+}
+export interface HelpCenterCategories {
+ icon: string
+ slug: string
+ title: string
+ avatarColor: string
+ subCategories: HelpCenterSubcategories[]
+}
+export interface HelpCenterArticlesOverview {
+ img: string
+ slug: string
+ title: string
+ subtitle: string
+}
+
+export interface HelpCenterArticle {
+ title: string
+ lastUpdated: string
+ productContent: string
+ productImg: string
+ checkoutContent: string
+ checkoutImg: string
+ articleList: string[]
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/profile/db.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/profile/db.ts
new file mode 100644
index 0000000..ffa3f1e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/profile/db.ts
@@ -0,0 +1,695 @@
+import type {
+ ConnectionsTab,
+ ProfileHeader,
+ ProfileTab, ProjectTableRow, ProjectsTab, TeamsTab,
+} from '@db/pages/profile/types'
+
+import avatar1 from '@images/avatars/avatar-1.png'
+import avatar2 from '@images/avatars/avatar-2.png'
+import avatar3 from '@images/avatars/avatar-3.png'
+import avatar4 from '@images/avatars/avatar-4.png'
+import avatar5 from '@images/avatars/avatar-5.png'
+import avatar6 from '@images/avatars/avatar-6.png'
+import avatar7 from '@images/avatars/avatar-7.png'
+import avatar8 from '@images/avatars/avatar-8.png'
+import eventLabel from '@images/icons/project-icons/event.png'
+import figmaLabel from '@images/icons/project-icons/figma.png'
+import htmlLabel from '@images/icons/project-icons/html5.png'
+import reactLabel from '@images/icons/project-icons/react.png'
+import socialLabel from '@images/icons/project-icons/social.png'
+import supportLabel from '@images/icons/project-icons/support.png'
+import twitterLabel from '@images/icons/project-icons/twitter.png'
+import vueLabel from '@images/icons/project-icons/vue.png'
+import xdLabel from '@images/icons/project-icons/xd.png'
+import UserProfileHeaderBg from '@images/pages/user-profile-header-bg.png'
+
+interface DataType {
+ profileHeader: ProfileHeader
+ profile: ProfileTab
+ teams: TeamsTab[]
+ projects: ProjectsTab[]
+ connections: ConnectionsTab[]
+}
+
+interface DB {
+ data: DataType
+ projectTable: ProjectTableRow[]
+}
+
+export const db: DB = {
+ data: {
+ profileHeader: {
+ fullName: 'John Doe',
+ location: 'Vatican City',
+ joiningDate: 'Joined April 2021',
+ designation: 'UX Designer',
+ profileImg: avatar1,
+ coverImg: UserProfileHeaderBg,
+ },
+ profile: {
+ about: [
+ { property: 'Full Name', value: 'John Doe', icon: 'tabler-user' },
+ { property: 'Status', value: 'active', icon: 'tabler-check' },
+ { property: 'Role', value: 'Developer', icon: 'tabler-crown' },
+ { property: 'Country', value: 'USA', icon: 'tabler-flag' },
+ { property: 'Language', value: 'English', icon: 'tabler-language' },
+ ],
+ contacts: [
+ { property: 'Contact', value: '(123) 456-7890', icon: 'tabler-phone-call' },
+ { property: 'Skype', value: 'john.doe', icon: 'tabler-messages' },
+ { property: 'Email', value: 'john.doe@example.com', icon: 'tabler-mail' },
+ ],
+ teams: [
+ { property: 'Backend Developer', value: '(126 Members)', icon: 'tabler-brand-github', color: 'secondary' },
+ { property: 'VueJS Developer', value: '(98 Members)', icon: 'tabler-brand-vue', color: 'success' },
+ ],
+ overview: [
+ { property: 'Task Compiled', value: '13.5k', icon: 'tabler-check' },
+ { property: 'Connections', value: '897', icon: 'tabler-users' },
+ { property: 'Projects Compiled', value: '146', icon: 'tabler-layout-grid' },
+ ],
+ connections: [
+ {
+ isFriend: false,
+ connections: '45',
+ name: 'Cecilia Payne',
+ avatar: avatar2,
+ },
+ {
+ isFriend: true,
+ connections: '1.32k',
+ name: 'Curtis Fletcher',
+ avatar: avatar3,
+ },
+ {
+ isFriend: true,
+ connections: '125',
+ name: 'Alice Stone',
+ avatar: avatar4,
+ },
+ {
+ isFriend: false,
+ connections: '456',
+ name: 'Darrell Barnes',
+ avatar: avatar5,
+ },
+ {
+ isFriend: false,
+ connections: '1.2k',
+ name: 'Eugenia Moore',
+ avatar: avatar8,
+ },
+ ],
+ teamsTech: [
+ {
+ members: 72,
+ ChipColor: 'error',
+ chipText: 'Developer',
+ title: 'React Developers',
+ avatar: reactLabel,
+ },
+ {
+ members: 122,
+ chipText: 'Support',
+ ChipColor: 'primary',
+ title: 'Support Team',
+ avatar: supportLabel,
+ },
+ {
+ members: 7,
+ ChipColor: 'info',
+ chipText: 'Designer',
+ title: 'UI Designer',
+ avatar: figmaLabel,
+ },
+ {
+ members: 289,
+ ChipColor: 'error',
+ chipText: 'Developer',
+ title: 'Vue.js Developers',
+ avatar: vueLabel,
+ },
+ {
+ members: 24,
+ chipText: 'Marketing',
+ ChipColor: 'secondary',
+ title: 'Digital Marketing',
+ avatar: twitterLabel,
+ },
+ ],
+ },
+ teams: [
+ {
+ extraMembers: 25,
+ title: 'React Developers',
+ avatar: reactLabel,
+ avatarGroup: [
+ { avatar: avatar1, name: 'Vinnie Mostowy' },
+ { avatar: avatar2, name: 'Allen Rieske' },
+ { avatar: avatar3, name: 'Julee Rossignol' },
+ { avatar: avatar4, name: 'George Burrill' },
+ ],
+ description:
+ 'We don\'t make assumptions about the rest of your technology stack, so you can develop new features in React.',
+ chips: [
+ {
+ title: 'React',
+ color: 'primary',
+ },
+ {
+ title: 'MUI',
+ color: 'info',
+ },
+ ],
+ },
+ {
+ extraMembers: 15,
+ title: 'Vue.js Dev Team',
+ avatar: vueLabel,
+ avatarGroup: [
+ { avatar: avatar5, name: 'Kaith D\'souza' },
+ { avatar: avatar6, name: 'John Doe' },
+ { avatar: avatar7, name: 'Alan Walker' },
+ { avatar: avatar8, name: 'Calvin Middleton' },
+ ],
+ description:
+ 'The development of Vue and its ecosystem is guided by an international team, some of whom have chosen to be featured below.',
+ chips: [
+ {
+ title: 'Vuejs',
+ color: 'success',
+ },
+ {
+ color: 'error',
+ title: 'Developer',
+ },
+ ],
+ },
+ {
+ extraMembers: 55,
+ title: 'Creative Designers',
+ avatar: xdLabel,
+ avatarGroup: [
+ { avatar: avatar1, name: 'Jimmy Ressula' },
+ { avatar: avatar2, name: 'Kristi Lawker' },
+ { avatar: avatar3, name: 'Danny Paul' },
+ { avatar: avatar4, name: 'Alicia Littleton' },
+ ],
+ description:
+ 'A design or product team is more than just the people on it. A team includes the people, the roles they play, and the collaboration they foster.',
+ chips: [
+ {
+ title: 'Sketch',
+ color: 'warning',
+ },
+ {
+ title: 'XD',
+ color: 'error',
+ },
+ ],
+ },
+ {
+ extraMembers: 35,
+ title: 'Support Team',
+ avatar: supportLabel,
+ avatarGroup: [
+ { avatar: avatar5, name: 'Andrew Tye' },
+ { avatar: avatar6, name: 'Rishi Swaat' },
+ { avatar: avatar7, name: 'Rossie Kim' },
+ { avatar: avatar8, name: 'Mary Hunter' },
+ ],
+ description:
+ 'Support your team. Your customer support team is fielding the good, the bad, and the ugly day in and day out.',
+ chips: [
+ {
+ color: 'info',
+ title: 'Zendesk',
+ },
+ ],
+ },
+ {
+ extraMembers: 19,
+ title: 'Digital Marketing',
+ avatar: socialLabel,
+ avatarGroup: [
+ { avatar: avatar1, name: 'Kim Merchent' },
+ { avatar: avatar2, name: 'Sam D\'souza' },
+ { avatar: avatar3, name: 'Nurvi Karlos' },
+ { avatar: avatar4, name: 'Margorie Whitmire' },
+ ],
+ description:
+ 'Digital marketing refers to advertising delivered through digital channels such as search engines, websites, and mobile apps.',
+ chips: [
+ {
+ color: 'primary',
+ title: 'Twitter',
+ },
+ {
+ title: 'Email',
+ color: 'success',
+ },
+ ],
+ },
+ {
+ title: 'Event',
+ extraMembers: 55,
+ avatar: eventLabel,
+ avatarGroup: [
+ { avatar: avatar5, name: 'Vinnie Mostowy' },
+ { avatar: avatar6, name: 'Allen Rieske' },
+ { avatar: avatar7, name: 'Julee Rossignol' },
+ { avatar: avatar8, name: 'Daniel Long' },
+ ],
+ description:
+ 'Event is defined as a particular contest which is part of a program of contests. An example of an event is the long jump competition.',
+ chips: [
+ {
+ title: 'Hubilo',
+ color: 'success',
+ },
+ ],
+ },
+ {
+ extraMembers: 45,
+ title: 'Figma Resources',
+ avatar: figmaLabel,
+ avatarGroup: [
+ { avatar: avatar1, name: 'Andrew Mostowy' },
+ { avatar: avatar2, name: 'Micky Ressula' },
+ { avatar: avatar3, name: 'Michel Pal' },
+ { avatar: avatar4, name: 'Herman Lockard' },
+ ],
+ description:
+ 'Explore, install, use, and remix thousands of plugins and files published to the Figma Community by designers and developers.',
+ chips: [
+ {
+ title: 'UI/UX',
+ color: 'success',
+ },
+ {
+ title: 'Figma',
+ color: 'secondary',
+ },
+ ],
+ },
+ {
+ extraMembers: 3,
+ title: 'Native Mobile App',
+ avatar: reactLabel,
+ avatarGroup: [
+ { avatar: avatar1, name: 'Andrew Mostowy' },
+ { avatar: avatar2, name: 'Micky Ressula' },
+ { avatar: avatar3, name: 'Michel Pal' },
+ { avatar: avatar4, name: 'Herman Lockard' },
+ ],
+ description:
+ 'React Native lets you create user friendly native apps and doesn\'t compromise your users\' experiences. With its robust framework.',
+ chips: [
+ {
+ title: 'React',
+ color: 'primary',
+ },
+ ],
+ },
+ {
+ extraMembers: 50,
+ title: 'Only Beginners',
+ avatar: htmlLabel,
+ avatarGroup: [
+ { avatar: avatar5, name: 'Kim Karlos' },
+ { avatar: avatar6, name: 'Katy Turner' },
+ { avatar: avatar7, name: 'Peter Adward' },
+ { avatar: avatar8, name: 'Leona Miller' },
+ ],
+ description:
+ 'Learn the basics of how websites work, front-end vs back-end, and using a code editor. Learn basic HTML, CSS, andโฆ',
+ chips: [
+ {
+ title: 'CSS',
+ color: 'info',
+ },
+ {
+ title: 'HTML',
+ color: 'warning',
+ },
+ ],
+ },
+ ],
+ projects: [
+ {
+ daysLeft: 28,
+ comments: 15,
+ totalTask: 344,
+ hours: '380/244',
+ tasks: '290/344',
+ budget: '$18.2k',
+ completedTask: 328,
+ deadline: '28/2/22',
+ chipColor: 'success',
+ startDate: '14/2/21',
+ budgetSpent: '$24.8k',
+ members: '280 members',
+ title: 'Social Banners',
+ client: 'Christian Jimenez',
+ avatar: socialLabel,
+ description: 'We are Consulting, Software Development and Web Development Services.',
+ avatarGroup: [
+ { avatar: avatar1, name: 'Vinnie Mostowy' },
+ { avatar: avatar2, name: 'Allen Rieske' },
+ { avatar: avatar3, name: 'Julee Rossignol' },
+ ],
+ },
+ {
+ daysLeft: 15,
+ comments: 236,
+ totalTask: 90,
+ tasks: '12/90',
+ hours: '98/135',
+ budget: '$1.8k',
+ completedTask: 38,
+ deadline: '21/6/22',
+ budgetSpent: '$2.4k',
+ chipColor: 'warning',
+ startDate: '18/8/21',
+ members: '1.1k members',
+ title: 'Admin Template',
+ client: 'Jeffrey Phillips',
+ avatar: reactLabel,
+ avatarGroup: [
+ { avatar: avatar4, name: 'Kaith D\'souza' },
+ { avatar: avatar5, name: 'John Doe' },
+ { avatar: avatar6, name: 'Alan Walker' },
+ ],
+ description: 'Time is our most valuable asset, that\'s why we want to help you save it by creatingโฆ',
+ },
+ {
+ daysLeft: 45,
+ comments: 98,
+ budget: '$420',
+ totalTask: 140,
+ tasks: '22/140',
+ hours: '880/421',
+ completedTask: 95,
+ chipColor: 'error',
+ budgetSpent: '$980',
+ deadline: '8/10/21',
+ title: 'App Design',
+ startDate: '24/7/21',
+ members: '458 members',
+ client: 'Ricky McDonald',
+ avatar: vueLabel,
+ description: 'App design combines the user interface (UI) and user experience (UX).',
+ avatarGroup: [
+ { avatar: avatar7, name: 'Jimmy Ressula' },
+ { avatar: avatar8, name: 'Kristi Lawker' },
+ { avatar: avatar1, name: 'Danny Paul' },
+ ],
+ },
+ {
+ comments: 120,
+ daysLeft: 126,
+ totalTask: 420,
+ budget: '2.43k',
+ tasks: '237/420',
+ hours: '1.2k/820',
+ completedTask: 302,
+ deadline: '12/9/22',
+ budgetSpent: '$8.5k',
+ chipColor: 'warning',
+ startDate: '10/2/19',
+ members: '137 members',
+ client: 'Hulda Wright',
+ title: 'Create Website',
+ avatar: htmlLabel,
+ description: 'Your domain name should reflect your products or services so that your...',
+ avatarGroup: [
+ { avatar: avatar2, name: 'Andrew Tye' },
+ { avatar: avatar3, name: 'Rishi Swaat' },
+ { avatar: avatar4, name: 'Rossie Kim' },
+ ],
+ },
+ {
+ daysLeft: 5,
+ comments: 20,
+ totalTask: 285,
+ tasks: '29/285',
+ budget: '28.4k',
+ hours: '142/420',
+ chipColor: 'error',
+ completedTask: 100,
+ deadline: '25/12/21',
+ startDate: '12/12/20',
+ members: '82 members',
+ budgetSpent: '$52.7k',
+ client: 'Jerry Greene',
+ title: 'Figma Dashboard',
+ avatar: figmaLabel,
+ description: 'Use this template to organize your design project. Some of the key features areโฆ',
+ avatarGroup: [
+ { avatar: avatar5, name: 'Kim Merchent' },
+ { avatar: avatar6, name: 'Sam D\'souza' },
+ { avatar: avatar7, name: 'Nurvi Karlos' },
+ ],
+ },
+ {
+ daysLeft: 4,
+ comments: 16,
+ budget: '$655',
+ totalTask: 290,
+ tasks: '29/290',
+ hours: '580/445',
+ completedTask: 290,
+ budgetSpent: '$1.3k',
+ chipColor: 'success',
+ deadline: '02/11/21',
+ startDate: '17/8/21',
+ title: 'Logo Design',
+ members: '16 members',
+ client: 'Olive Strickland',
+ avatar: xdLabel,
+ description: 'Premium logo designs created by top logo designers. Create the branding of business.',
+ avatarGroup: [
+ { avatar: avatar8, name: 'Kim Karlos' },
+ { avatar: avatar1, name: 'Katy Turner' },
+ { avatar: avatar2, name: 'Peter Adward' },
+ ],
+ },
+ ],
+ connections: [
+ {
+ tasks: '834',
+ projects: '18',
+ isConnected: true,
+ connections: '129',
+ name: 'Mark Gilbert',
+ designation: 'UI Designer',
+ avatar: avatar1,
+ chips: [
+ {
+ title: 'Figma',
+ color: 'secondary',
+ },
+ {
+ title: 'Sketch',
+ color: 'warning',
+ },
+ ],
+ },
+ {
+ tasks: '2.31k',
+ projects: '112',
+ isConnected: false,
+ connections: '1.28k',
+ name: 'Eugenia Parsons',
+ designation: 'Developer',
+ avatar: avatar2,
+ chips: [
+ {
+ color: 'error',
+ title: 'Angular',
+ },
+ {
+ color: 'info',
+ title: 'React',
+ },
+ ],
+ },
+ {
+ tasks: '1.25k',
+ projects: '32',
+ isConnected: false,
+ connections: '890',
+ name: 'Francis Byrd',
+ designation: 'Developer',
+ avatar: avatar3,
+ chips: [
+ {
+ title: 'HTML',
+ color: 'primary',
+ },
+ {
+ color: 'info',
+ title: 'React',
+ },
+ ],
+ },
+ {
+ tasks: '12.4k',
+ projects: '86',
+ isConnected: false,
+ connections: '890',
+ name: 'Leon Lucas',
+ designation: 'UI/UX Designer',
+ avatar: avatar4,
+ chips: [
+ {
+ title: 'Figma',
+ color: 'secondary',
+ },
+ {
+ title: 'Sketch',
+ color: 'warning',
+ },
+ {
+ color: 'primary',
+ title: 'Photoshop',
+ },
+ ],
+ },
+ {
+ tasks: '23.8k',
+ projects: '244',
+ isConnected: true,
+ connections: '2.14k',
+ name: 'Jayden Rogers',
+ designation: 'Full Stack Developer',
+ avatar: avatar5,
+ chips: [
+ {
+ color: 'info',
+ title: 'React',
+ },
+ {
+ title: 'HTML',
+ color: 'warning',
+ },
+ {
+ color: 'success',
+ title: 'Node.js',
+ },
+ ],
+ },
+ {
+ tasks: '1.28k',
+ projects: '32',
+ isConnected: false,
+ designation: 'SEO',
+ connections: '1.27k',
+ name: 'Jeanette Powell',
+ avatar: avatar6,
+ chips: [
+ {
+ title: 'Analysis',
+ color: 'secondary',
+ },
+ {
+ color: 'success',
+ title: 'Writing',
+ },
+ ],
+ },
+ ],
+ },
+ projectTable: [
+ {
+ id: 1,
+ status: 38,
+ leader: 'Eileen',
+ name: 'Website SEO',
+ date: '10 may 2021',
+ avatarColor: 'success',
+ avatarGroup: [avatar1, avatar2, avatar3, avatar4],
+ },
+ {
+ id: 2,
+ status: 45,
+ leader: 'Owen',
+ date: '03 Jan 2021',
+ name: 'Social Banners',
+ avatar: socialLabel,
+ avatarGroup: [avatar5, avatar6],
+ },
+ {
+ id: 3,
+ status: 92,
+ leader: 'Keith',
+ date: '12 Aug 2021',
+ name: 'Logo Designs',
+ avatar: '/images/icons/project-icons/sketch-label.png',
+ avatarGroup: [avatar7, avatar8, avatar1, avatar2],
+ },
+ {
+ id: 4,
+ status: 56,
+ leader: 'Merline',
+ date: '19 Apr 2021',
+ name: 'IOS App Design',
+ avatar: '/images/icons/project-icons/sketch-label.png',
+ avatarGroup: [avatar3, avatar4, avatar5, avatar6],
+ },
+ {
+ id: 5,
+ status: 25,
+ leader: 'Harmonia',
+ date: '08 Apr 2021',
+ name: 'Figma Dashboards',
+ avatar: figmaLabel,
+ avatarGroup: [avatar7, avatar8, avatar1],
+ },
+ {
+ id: 6,
+ status: 36,
+ leader: 'Allyson',
+ date: '29 Sept 2021',
+ name: 'Crypto Admin',
+ avatar: htmlLabel,
+ avatarGroup: [avatar2, avatar3, avatar4, avatar5],
+ },
+ {
+ id: 7,
+ status: 72,
+ leader: 'Georgie',
+ date: '20 Mar 2021',
+ name: 'Create Website',
+ avatar: reactLabel,
+ avatarGroup: [avatar6, avatar7, avatar8, avatar1],
+ },
+ {
+ id: 8,
+ status: 89,
+ leader: 'Fred',
+ date: '09 Feb 2021',
+ name: 'App Design',
+ avatar: xdLabel,
+ avatarGroup: [avatar2, avatar3, avatar4, avatar5],
+ },
+ {
+ id: 9,
+ status: 77,
+ leader: 'Richardo',
+ date: '17 June 2021',
+ name: 'Angular APIs',
+ avatar: figmaLabel,
+ avatarGroup: [avatar6, avatar7, avatar8, avatar1],
+ },
+ {
+ id: 10,
+ status: 100,
+ leader: 'Genevra',
+ date: '06 Oct 2021',
+ name: 'Admin Template',
+ avatar: vueLabel,
+ avatarGroup: [avatar2, avatar3, avatar4, avatar5],
+ },
+ ],
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/profile/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/profile/index.ts
new file mode 100644
index 0000000..ec02d81
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/profile/index.ts
@@ -0,0 +1,21 @@
+import { HttpResponse, http } from 'msw'
+import { db } from '@db/pages/profile/db'
+
+// Handler for pages/profile
+export const handlerPagesProfile = [
+ // GET /pages/profile
+ http.get(('/api/pages/profile'), ({ request }) => {
+ const url = new URL(request.url)
+
+ const tab = url.searchParams.get('tab') || ''
+
+ return HttpResponse.json(db.data[tab as keyof typeof db.data],
+ { status: 200 })
+ }),
+
+ // GET /pages/profile/header
+ http.get(('/api/pages/profile/header'), () => {
+ return HttpResponse.json(db.data.profileHeader,
+ { status: 200 })
+ }),
+]
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/profile/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/profile/types.ts
new file mode 100644
index 0000000..f581111
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/handlers/pages/profile/types.ts
@@ -0,0 +1,102 @@
+export interface ProfileChip {
+ title: string
+ color: string
+}
+
+export interface ProfileTabCommon {
+ icon: string
+ value: string
+ property: string
+}
+export type ProfileTeams = ProfileTabCommon & { color: string }
+
+export interface ProfileConnections {
+ name: string
+ avatar: string
+ isFriend: boolean
+ connections: string
+}
+
+export interface ProfileAvatarGroup {
+ name: string
+ avatar: string
+}
+
+export interface ProfileTeamsTech {
+ title: string
+ avatar: string
+ members: number
+ chipText: string
+ ChipColor: string
+}
+
+export interface ConnectionsTab {
+ name: string
+ tasks: string
+ avatar: string
+ projects: string
+ connections: string
+ designation: string
+ isConnected: boolean
+ chips: ProfileChip[]
+}
+
+export interface ProfileTab {
+ teams: ProfileTeams[]
+ about: ProfileTabCommon[]
+ contacts: ProfileTabCommon[]
+ overview: ProfileTabCommon[]
+ teamsTech: ProfileTeamsTech[]
+ connections: ProfileConnections[]
+}
+
+export interface ProfileHeader {
+ fullName: string
+ coverImg: string
+ location: string
+ profileImg: string
+ joiningDate: string
+ designation: string
+ designationIcon?: string
+}
+
+export interface ProjectTableRow {
+ id: number
+ date: string
+ name: string
+ leader: string
+ status: number
+ avatar?: string
+ avatarGroup: string[]
+ avatarColor?: string
+}
+
+export interface ProjectsTab {
+ hours: string
+ tasks: string
+ title: string
+ budget: string
+ client: string
+ avatar: string
+ members: string
+ daysLeft: number
+ comments: number
+ deadline: string
+ startDate: string
+ totalTask: number
+ budgetSpent: string
+ description: string
+ chipColor: string
+ completedTask: number
+ avatarColor?: string
+ avatarGroup: ProfileAvatarGroup[]
+}
+
+export interface TeamsTab {
+ title: string
+ avatar: string
+ description: string
+ extraMembers: number
+ chips: ProfileChip[]
+ avatarGroup: ProfileAvatarGroup[]
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/index.ts
new file mode 100644
index 0000000..e505e67
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/index.ts
@@ -0,0 +1,51 @@
+import { setupWorker } from 'msw/browser'
+
+// Handlers
+import { handlerAppBarSearch } from '@db/app-bar-search/index'
+import { handlerAppsAcademy } from '@db/apps/academy/index'
+import { handlerAppsCalendar } from '@db/apps/calendar/index'
+import { handlerAppsChat } from '@db/apps/chat/index'
+import { handlerAppsEcommerce } from '@db/apps/ecommerce/index'
+import { handlerAppsEmail } from '@db/apps/email/index'
+import { handlerAppsInvoice } from '@db/apps/invoice/index'
+import { handlerAppsKanban } from '@db/apps/kanban/index'
+import { handlerAppLogistics } from '@db/apps/logistics/index'
+import { handlerAppsPermission } from '@db/apps/permission/index'
+import { handlerAppsUsers } from '@db/apps/users/index'
+import { handlerAuth } from '@db/auth/index'
+import { handlerDashboard } from '@db/dashboard/index'
+import { handlerPagesDatatable } from '@db/pages/datatable/index'
+import { handlerPagesFaq } from '@db/pages/faq/index'
+import { handlerPagesHelpCenter } from '@db/pages/help-center/index'
+import { handlerPagesProfile } from '@db/pages/profile/index'
+
+const worker = setupWorker(
+ ...handlerAppsEcommerce,
+ ...handlerAppsAcademy,
+ ...handlerAppsInvoice,
+ ...handlerAppsUsers,
+ ...handlerAppsEmail,
+ ...handlerAppsCalendar,
+ ...handlerAppsChat,
+ ...handlerAppsPermission,
+ ...handlerPagesHelpCenter,
+ ...handlerPagesProfile,
+ ...handlerPagesFaq,
+ ...handlerPagesDatatable,
+ ...handlerAppBarSearch,
+ ...handlerAppLogistics,
+ ...handlerAuth,
+ ...handlerAppsKanban,
+ ...handlerDashboard,
+)
+
+export default function () {
+ const workerUrl = `${import.meta.env.BASE_URL.replace(/build\/$/g, '') ?? '/'}mockServiceWorker.js`
+
+ worker.start({
+ serviceWorker: {
+ url: workerUrl,
+ },
+ onUnhandledRequest: 'bypass',
+ })
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/utils/genId.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/utils/genId.ts
new file mode 100644
index 0000000..7a76fe0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/utils/genId.ts
@@ -0,0 +1,10 @@
+export const genId = (array: T[]) => {
+ const { length } = array
+
+ let lastIndex = 0
+
+ if (length)
+ lastIndex = Number(array[length - 1]?.id) + 1
+
+ return lastIndex || (length + 1)
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/utils/paginateArray.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/utils/paginateArray.ts
new file mode 100644
index 0000000..12dc234
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/fake-api/utils/paginateArray.ts
@@ -0,0 +1 @@
+export const paginateArray = (array: unknown[], perPage: number, page: number) => array.slice((page - 1) * perPage, page * perPage)
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/i18n/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/i18n/index.ts
new file mode 100644
index 0000000..2288155
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/i18n/index.ts
@@ -0,0 +1,29 @@
+import type { App } from 'vue'
+import { createI18n } from 'vue-i18n'
+import { cookieRef } from '@layouts/stores/config'
+import { themeConfig } from '@themeConfig'
+
+const messages = Object.fromEntries(
+ Object.entries(
+ import.meta.glob<{ default: any }>('./locales/*.json', { eager: true }))
+ .map(([key, value]) => [key.slice(10, -5), value.default]),
+)
+
+let _i18n: any = null
+
+export const getI18n = () => {
+ if (_i18n === null) {
+ _i18n = createI18n({
+ legacy: false,
+ locale: cookieRef('language', themeConfig.app.i18n.defaultLocale).value,
+ fallbackLocale: 'en',
+ messages,
+ })
+ }
+
+ return _i18n
+}
+
+export default function (app: App) {
+ app.use(getI18n())
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/i18n/locales/ar.json b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/i18n/locales/ar.json
new file mode 100644
index 0000000..1035fb7
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/i18n/locales/ar.json
@@ -0,0 +1,237 @@
+{
+ "UI Elements": "ุนูุงุตุฑ ูุงุฌูุฉ ุงูู
ุณุชุฎุฏู
",
+ "Forms & Tables": "ุงููู
ุงุฐุฌ ูุงูุฌุฏุงูู",
+ "Pages": "ุงูุตูุญุงุช",
+ "Charts & Maps": "ุงูุฑุณูู
ุงูุจูุงููุฉ ูุงูุฎุฑุงุฆุท",
+ "Others": "ุขุญุฑูู",
+ "Typography": "ุงูุทุจุงุนุฉ",
+ "Cards": "ุงูุจุทุงูุงุช",
+ "Basic": "ุฃุณุงุณู",
+ "Advance": "ูุชูุฏู
",
+ "Widgets": "ุงูุญุงุฌูุงุช",
+ "Actions": "ุฃุฌุฑุงุกุงุช",
+ "Components": "ุนูุงุตุฑ",
+ "Alert": "ุงูุฐุงุฑ",
+ "Close Alert": "ุฃุบูู ุงูุชูุจูู",
+ "Avatar": "ุงูุตูุฑุฉ ุงูุฑู
ุฒูุฉ",
+ "Badge": "ุดุงุฑุฉ",
+ "Button": "ุฒุฑ",
+ "Calendar": "ุชูููู
",
+ "Kanban": "ู
ุฌูุณ ูุงูุจุงู",
+ "Image": "ุตูุฑุฉ",
+ "Pagination": "ุชุฑููู
ุงูุตูุญุงุช",
+ "Progress Circular": "ุชูุฏู
ุงูุชุนู
ูู
",
+ "Progress Linear": "ุชูุฏู
ุฎุทู",
+ "Autocomplete": "ุงูุฅูู
ุงู ุงูุชููุงุฆู",
+ "Tooltip": "ุชูู
ูุญ",
+ "Slider": "ุงูู
ูุฒูู",
+ "Date Time Picker": "ู
ูุชูู ุงูุชุงุฑูุฎ ูุงูููุช",
+ "Select": "ูุฎุชุงุฑ",
+ "Switch": "ููุญููู",
+ "Checkbox": "ุฎุงูุฉ ุงุฎุชูุงุฑ",
+ "Radio": "ู
ุฐูุงุน",
+ "Textarea": "ุชููุณุชุงุฑูุง",
+ "Rating": "ุชูููู
",
+ "File Input": "ุฅุฏุฎุงู ุงูู
ูู",
+ "Otp Input": "ุฅุฏุฎุงู ุฃูุชุจ",
+ "Form Layout": "ุชุฎุทูุท ุงููู
ูุฐุฌ",
+ "Form Validation": "ุงูุชุญูู ู
ู ุตุญุฉ ุงููู
ูุฐุฌ",
+ "Charts": "ุงูุฑุณูู
ุงูุจูุงููุฉ",
+ "Apex Chart": "ู
ุฎุทุท ุฃุจููุณ",
+ "Chartjs": "ุชุดุงุฑุชุฌุณ",
+ "Account Settings": "ุฅุนุฏุงุฏุช ุงูุญุณุงุจ",
+ "User Profile": "ู
ูู ุชุนุฑููู ููู
ุณุชุฎุฏู
",
+ "FAQ": "ุงูุชุนููู
ุงุช",
+ "Dialog Examples": "ุฃู
ุซูุฉ ุนูู ุงูุญูุงุฑ",
+ "Pricing": "ุงูุชุณุนูุฑ",
+ "List": "ูุงุฆู
ุฉ",
+ "Edit": "ูุญุฑุฑ",
+ "Nav Levels": "ู
ุณุชููุงุช ุงูุชููู",
+ "Level 2.1": "ุงูู
ุณุชูู 2.1",
+ "Level 2.2": "ู
ุณุชูู 2.2",
+ "Level 3.1": "ุงูู
ุณุชูู 3.1",
+ "Level 3.2": "ุงูู
ุณุชูู 3.2",
+ "Raise Support": "ุฑูุน ุงูุฏุนู
",
+ "Documentation": "ุชูุซูู",
+ "Dashboards": "ููุญุงุช ุงูููุงุฏุฉ",
+ "Apps & Pages": "ุงูุชุทุจููุงุช ูุงูุตูุญุงุช",
+ "Email": "ุงูุจุฑูุฏ ุงูุฅููุชุฑููู",
+ "Chat": "ุฏุฑุฏุดุฉ",
+ "Invoice": "ูุงุชูุฑุฉ",
+ "Preview": "ู
ุนุงููุฉ",
+ "Add": "ูุถูู",
+ "User": "ุงูู
ุณุชุนู
ู",
+ "View": "ุฑุฃู",
+ "Login v1": "ุชุณุฌูู ุงูุฏุฎูู v1",
+ "Login v2": "ุชุณุฌูู ุงูุฏุฎูู v2",
+ "Login": "ุชุณุฌูู ุงูุฏุฎูู",
+ "Register v1": "ุชุณุฌูู v1",
+ "Register v2": "ุชุณุฌูู v2",
+ "Register": "ุชุณุฌูู",
+ "Forget Password v1": "ูุณูุช ููู
ุฉ ุงูู
ุฑูุฑ v1",
+ "Forget Password v2": "ูุณูุช ููู
ุฉ ุงูู
ุฑูุฑ v2",
+ "Forgot Password v1": "ูุณูุช ููู
ุฉ ุงูู
ุฑูุฑ v1",
+ "Forgot Password v2": "ูุณูุช ููู
ุฉ ุงูู
ุฑูุฑ v2",
+ "Forgot Password": "ูุณูุช ููู
ุฉ ุงูู
ุฑูุฑ",
+ "Reset Password v1": "ุฅุนุงุฏุฉ ุชุนููู ููู
ุฉ ุงูู
ุฑูุฑ v1",
+ "Reset Password v2": "ุฅุนุงุฏุฉ ุชุนููู ููู
ุฉ ุงูู
ุฑูุฑ v2",
+ "Reset Password": "ุฅุนุงุฏุฉ ุชุนููู ููู
ุฉ ุงูู
ุฑูุฑ",
+ "Miscellaneous": "ู
ุชูุฑูุงุช",
+ "Coming Soon": "ูุฑูุจุง",
+ "Not Authorized": "ุบูุฑ ู
ุฎูู",
+ "Under Maintenance": "ุชุญุช ุงูุตูุงูุฉ",
+ "Error": "ุฎุทุฃ",
+ "Statistics": "ุฅุญุตุงุฆูุงุช",
+ "Analytics": "ุชุญูููุงุช",
+ "Access Control": "ุตูุงุญูุฉ ุงูุชุญูู
ุตูุงุญูุฉ ุงูุฏุฎูู",
+ "User Interface": "ูุงุฌูุฉ ุงูู
ุณุชุฎุฏู
",
+ "CRM": "ุณู ุขุฑ ุฅู
",
+ "Icons": "ุฃููููุงุช",
+ "Chip": "ุฑูุงูุฉ",
+ "Dialog": "ุญูุงุฑ",
+ "Expansion Panel": "ููุญุฉ ุงูุชูุณุน",
+ "Combobox": "ุตูุฏูู ุงูุชุญุฑูุฑ",
+ "Textfield": "ู
ุฌุงู ุงูุชุญุฑูุฑ ู
ูุงู ูุชุงุจุฉ ุงููุต",
+ "Range Slider": "ูุทุงู ุงูู
ูุฒูู",
+ "Menu": "ูุงุฆู
ุฉ ุงูุทุนุงู
",
+ "Snackbar": "ู
ุทุนู
ุงููุฌุจุงุช ุงูุฎูููุฉ",
+ "Tabs": "ููุงูุฐ ุงูุชุจููุจ",
+ "Form Elements": "ุนูุงุตุฑ ุงููู
ูุฐุฌ",
+ "Form Layouts": "ุชุฎุทูุทุงุช ุงููู
ูุฐุฌ",
+ "Authentication": "ุงูู
ุตุงุฏูุฉ",
+ "Page Not Found - 404": "ุงูุตูุญุฉ ุบูุฑ ู
ูุฌูุฏุฉ - 404",
+ "Not Authorized - 401": "ุบูุฑ ู
ุตุฑุญ - 401",
+ "Server Error - 500": "ุฎุทุฃ ูู ุงูุฎุงุฏู
- 500",
+ "2": "2",
+ "Forms": "ูู
ุงุฐุฌ",
+ "Timeline": "ุงูุฌุฏูู ุงูุฒู
ูู",
+ "Disabled Menu": "ูุงุฆู
ุฉ ุงูู
ุนูููู",
+ "Help Center": "ู
ุฑูุฒ ุงูู
ุณุงุนุฏุฉ",
+ "Verify Email": "ุงูุชุญูู ู
ู ุงูุจุฑูุฏ ุงูุฅููุชุฑููู",
+ "Verify Email v1": "ุชุญูู ู
ู ุงูุจุฑูุฏ ุงูุฅููุชุฑููู v1",
+ "Verify Email v2": "ุชุญูู ู
ู ุงูุจุฑูุฏ ุงูุฅููุชุฑููู v2",
+ "Two Steps": "ุฎุทูุชูู",
+ "Two Steps v1": "ุฎุทูุชูู v1.0",
+ "Two Steps v2": "ุฎุทูุชูู v2.0",
+ "Custom Input": "ุฅุฏุฎุงู ู
ุฎุตุต",
+ "Extensions": "ู
ูุญูุงุช",
+ "Tour": "ุฑุญูุฉ",
+ "Register Multi-Steps": "ุชุณุฌูู ุฎุทูุงุช ู
ุชุนุฏุฏุฉ",
+ "Wizard Examples": "ุฃู
ุซูุฉ ุงูู
ุนุงูุฌ",
+ "Checkout": "ุงูุฏูุน",
+ "Create Deal": "ุฅูุดุงุก ุตููุฉ",
+ "Property Listing": "ูุงุฆู
ุฉ ุงูู
ู
ุชููุงุช ",
+ "Roles & Permissions": "ุงูุฃุฏูุงุฑ ูุงูุฃุฐููุงุช",
+ "Roles": "ุงูุฃุฏูุงุฑ",
+ "Permissions": "ุงูุฃุฐููุงุช",
+ "Simple Table": "ุฌุฏูู ุจุณูุท",
+ "Tables": "ุงูุฌุฏุงูู",
+ "DataTable": "ุฌุฏูู ุงูุจูุงูุงุช",
+ "Data Table": "ุฌุฏูู ุงูุจูุงูุงุช",
+ "Apps": "ุงูุชุทุจููุงุช",
+ "Misc": "ู
ุชูุฑูุงุช",
+ "Wizard Pages": "ุตูุญุงุช ุงูู
ุนุงูุฌ",
+ "eCommerce": "ุงูุชุฌุงุฑุฉ ุงูุฅููุชุฑูููุฉ",
+ "Form Wizard": "ู
ุนุงูุฌ ุงููู
ูุฐุฌ",
+ "Numbered": "ู
ุฑูู
",
+ "ecommerce": "ุงูุชุฌุงุฑุฉ ุงูุฅููุชุฑูููุฉ",
+ "Ecommerce": "ุงูุชุฌุงุฑุฉ ุงูุฅููุชุฑูููุฉ",
+ "Product": "ุงูู
ูุชุฌ",
+ "Category": "ุงููุฆุฉ",
+ "Order": "ุทูุจ",
+ "Details": "ุชูุงุตูู",
+ "Customer": "ุงูุฒุจูู",
+ "Manage Review": "ุฅุฏุงุฑุฉ ุงูู
ุฑุงุฌุนุฉ",
+ "Referrals": "ุงูุฅุญุงูุงุช",
+ "Settings": "ุงูุฅุนุฏุงุฏุงุช",
+ "Course Details": "ุชูุงุตูู ุงูุฏูุฑุฉ ุงูุชุฏุฑูุจูุฉ",
+ "My Course": "ุฏูุฑุชู",
+ "Overview": "ูุธุฑุฉ ุนุงู
ุฉ",
+ "Academy": "ุฃูุงุฏูู
ูุฉ",
+ "Logistics": "ุงูุฎุฏู
ุงุช ุงูููุฌุณุชูุฉ",
+ "Dashboard": "ููุญุฉ ุงูููุงุฏุฉ",
+ "Fleet": "ุงูุฃุณุทูู",
+ "Editors": "ุงูู
ุญุฑุฑูู",
+ "Front Pages": "ุงูุตูุญุงุช ุงูุฃู
ุงู
ูุฉ",
+ "Landing": "ุงูู
ูุตูุฏุฉ",
+ "checkout": "ุงูุฏูุน",
+ "Payment": "ุฏูุน",
+ "Swiper": "ุงูู
ูุฒูู",
+ "Shortcut": "ุงุฎุชุตุงุฑ",
+ "Appointments": "ุงูู
ูุงุนูุฏ",
+ "Invoice App": "ุชุทุจูู ุงููุงุชูุฑุฉ",
+ "Manage Accounts": "ุฅุฏุงุฑุฉ ุงูุญุณุงุจุงุช",
+ "Users": "ุงูู
ุณุชุฎุฏู
ูู",
+ "Manage Users": "ุฅุฏุงุฑุฉ ุงูู
ุณุชุฎุฏู
ูู",
+ "Role Management": "ุฅุฏุงุฑุฉ ุงูุฃุฏูุงุฑ",
+ "Permission": "ุฅุฐู",
+ "Dashboard Analytics": "ุชุญูููุงุช ููุญุฉ ุงูููุงุฏุฉ",
+ "3": "3",
+ "5": "5",
+ "10": "10",
+ "20": "20",
+ "25": "25",
+ "50": "50",
+ "100": "100",
+ "$vuetify": {
+ "badge": "ุดุงุฑุฉ",
+ "noDataText": "ูุง ุชุชูุงูุฑ ุจูุงูุงุช",
+ "close": "ูุฑูุจ",
+ "open": "ุงูุชุญ",
+ "loading": "ุฌุงุฑ ุงูุชุญู
ูู",
+ "carousel": {
+ "ariaLabel": {
+ "delimiter": "ุชุญุฏูุฏ"
+ }
+ },
+ "colorPicker": {
+ "ariaLabel": {
+ "hueSlider": "ุดุฑูุท ุชุฏุฑุฌ ุงูููู",
+ "eyedropper": "ูุทุงุฑุฉ",
+ "hexInput": "ุฅุฏุฎุงู ูููุณ"
+ }
+ },
+ "dataFooter": {
+ "itemsPerPageText": "ู
ูุงุฏ ููู ุตูุญุฉ:",
+ "itemsPerPageAll": "ุงูุฌู
ูุน",
+ "pageText": "{0} - {1} ู
ู {2}",
+ "firstPage": "ุงูุตูุญุฉ ุงูุฃููู",
+ "prevPage": "ุงูุตูุญุฉ ุงูุณุงุจูุฉ",
+ "nextPage": "ุงูุตูุญุฉ ุงูุชุงููุฉ",
+ "lastPage": "ุขุฎุฑ ุตูุญุฉ"
+ },
+ "pagination": {
+ "ariaLabel": {
+ "root": "ุฌุฐุฑ",
+ "previous": "ุงูุณุงุจู",
+ "first": "ุฃููุงู",
+ "last": "ุขุฎุฑ",
+ "next": "ุงูุชุงูู",
+ "currentPage": "ุงูุตูุญู ุงูุญุงููู",
+ "page": "ุตูุญุฉ"
+ }
+ },
+ "input": {
+ "clear": "ุตุงูู",
+ "appendAction": "ุฅูุญุงู ุงูุฅุฌุฑุงุก",
+ "prependAction": "ูุจู ุงูุนู
ู",
+ "otp": "ุฃูุชุจ"
+ },
+ "fileInput": {
+ "counterSize": "ุญุฌู
ุงูุนุฏุงุฏ"
+ },
+ "rating": {
+ "ariaLabel": {
+ "item": "ุงูุนูุตุฑ"
+ }
+ },
+ "video": {
+ "seek": "ูุทูุจ",
+ "play": "ููุนุจ",
+ "pause": "ูููู",
+ "showVolume": "ุฅุธูุงุฑ ุงูุญุฌู
",
+ "enterFullscreen": "ุฃุฏุฎู ู
ูุก ุงูุดุงุดุฉ",
+ "volume": "ู
ูุฏุงุฑ"
+ }
+ }
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/i18n/locales/en.json b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/i18n/locales/en.json
new file mode 100644
index 0000000..561c0fd
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/i18n/locales/en.json
@@ -0,0 +1,237 @@
+{
+ "UI Elements": "UI Elements",
+ "Forms & Tables": "Forms & Tables",
+ "Pages": "Pages",
+ "Charts & Maps": "Charts & Maps",
+ "Others": "Others",
+ "Typography": "Typography",
+ "Cards": "Cards",
+ "Basic": "Basic",
+ "Advance": "Advance",
+ "Widgets": "Widgets",
+ "Components": "Components",
+ "Alert": "Alert",
+ "Close Alert": "Close Alert",
+ "Avatar": "Avatar",
+ "Badge": "Badge",
+ "Button": "Button",
+ "Calendar": "Calendar",
+ "Kanban": "Kanban",
+ "Image": "Image",
+ "Pagination": "Pagination",
+ "Progress Circular": "Progress Circular",
+ "Progress Linear": "Progress Linear",
+ "Autocomplete": "Autocomplete",
+ "Tooltip": "Tooltip",
+ "Slider": "Slider",
+ "Date Time Picker": "Date Time Picker",
+ "Select": "Select",
+ "Switch": "Switch",
+ "Checkbox": "Checkbox",
+ "Radio": "Radio",
+ "Textarea": "Textarea",
+ "Rating": "Rating",
+ "File Input": "File Input",
+ "Otp Input": "Otp Input",
+ "Form Layout": "Form Layout",
+ "Form Validation": "Form Validation",
+ "Charts": "Charts",
+ "Apex Chart": "Apex Chart",
+ "Chartjs": "Chartjs",
+ "Account Settings": "Account Settings",
+ "User Profile": "User Profile",
+ "FAQ": "FAQ",
+ "Dialog Examples": "Dialog Examples",
+ "Pricing": "Pricing",
+ "List": "List",
+ "Edit": "Edit",
+ "Nav Levels": "Nav Levels",
+ "Level 2.1": "Level 2.1",
+ "Level 2.2": "Level 2.2",
+ "Level 3.1": "Level 3.1",
+ "Level 3.2": "Level 3.2",
+ "Raise Support": "Raise Support",
+ "Documentation": "Documentation",
+ "Dashboards": "Dashboards",
+ "Analytics": "Analytics",
+ "Apps & Pages": "Apps & Pages",
+ "Email": "Email",
+ "Chat": "Chat",
+ "Invoice": "Invoice",
+ "Preview": "Preview",
+ "Add": "Add",
+ "User": "User",
+ "View": "View",
+ "Login v1": "Login v1",
+ "Login v2": "Login v2",
+ "Login": "Login",
+ "Register v1": "Register v1",
+ "Register v2": "Register v2",
+ "Register": "Register",
+ "Forget Password v1": "Forget Password v1",
+ "Forget Password v2": "Forget Password v2",
+ "Forgot Password v1": "Forgot Password v1",
+ "Forgot Password v2": "Forgot Password v2",
+ "Forgot Password": "Forgot Password",
+ "Reset Password v1": "Reset Password v1",
+ "Reset Password v2": "Reset Password v2",
+ "Reset Password": "Reset Password",
+ "Miscellaneous": "Miscellaneous",
+ "Coming Soon": "Coming Soon",
+ "Not Authorized": "Not Authorized",
+ "Under Maintenance": "Under Maintenance",
+ "Error": "Error",
+ "Statistics": "Statistics",
+ "Actions": "Actions",
+ "Access Control": "Access Control",
+ "User Interface": "User Interface",
+ "CRM": "CRM",
+ "eCommerce": "eCommerce",
+ "Icons": "Icons",
+ "Chip": "Chip",
+ "Dialog": "Dialog",
+ "Expansion Panel": "Expansion Panel",
+ "Combobox": "Combobox",
+ "Textfield": "Textfield",
+ "Range Slider": "Range Slider",
+ "Menu": "Menu",
+ "Snackbar": "Snackbar",
+ "Tabs": "Tabs",
+ "Form Elements": "Form Elements",
+ "Form Layouts": "Form Layouts",
+ "Authentication": "Authentication",
+ "Page Not Found - 404": "Page Not Found - 404",
+ "Not Authorized - 401": "Not Authorized - 401",
+ "Server Error - 500": "Server Error - 500",
+ "2": "2",
+ "Forms": "Forms",
+ "Timeline": "Timeline",
+ "Disabled Menu": "Disabled Menu",
+ "Help Center": "Help Center",
+ "Verify Email": "Verify Email",
+ "Verify Email v1": "Verify Email v1",
+ "Verify Email v2": "Verify Email v2",
+ "Two Steps": "Two Steps",
+ "Two Steps v1": "Two Steps v1",
+ "Two Steps v2": "Two Steps v2",
+ "Custom Input": "Custom Input",
+ "Extensions": "Extensions",
+ "Tour": "Tour",
+ "Register Multi-Steps": "Register Multi-Steps",
+ "Wizard Examples": "Wizard Examples",
+ "Checkout": "Checkout",
+ "Create Deal": "Create Deal",
+ "Property Listing": "Property Listing",
+ "Roles & Permissions": "Roles & Permissions",
+ "Roles": "Roles",
+ "Simple Table": "Simple Table",
+ "Tables": "Tables",
+ "Data Table": "Data Table",
+ "Permissions": "Permissions",
+ "Apps": "Apps",
+ "Misc": "Misc",
+ "Wizard Pages": "Wizard Pages",
+ "Form Wizard": "Form Wizard",
+ "Numbered": "Numbered",
+ "3": "3",
+ "ecommerce": "ecommerce",
+ "Ecommerce": "Ecommerce",
+ "Editors": "Editors",
+ "Front Pages": "Front Pages",
+ "Landing": "Landing",
+ "checkout": "checkout",
+ "Payment": "Payment",
+ "Swiper": "Swiper",
+ "Product": "Product",
+ "Category": "Category",
+ "Order": "Order",
+ "Details": "Details",
+ "Customer": "Customer",
+ "Manage Review": "Manage Review",
+ "Referrals": "Referrals",
+ "Settings": "Settings",
+ "Overview": "Overview",
+ "My Course": "My Course",
+ "Course Details": "Course Details",
+ "Academy": "Academy",
+ "Logistics": "Logistics",
+ "Dashboard": "Dashboard",
+ "Fleet": "Fleet",
+ "Shortcut": "Shortcut",
+ "Appointments": "Appointments",
+ "Invoice App": "Invoice App",
+ "Manage Accounts": "Manage Accounts",
+ "Users": "Users",
+ "Manage Users": "Manage Users",
+ "Role Management": "Role Management",
+ "Permission": "Permission",
+ "Dashboard Analytics": "Dashboard Analytics",
+ "5": "5",
+ "10": "10",
+ "20": "20",
+ "25": "25",
+ "50": "50",
+ "100": "100",
+ "$vuetify": {
+ "badge": "Badge",
+ "noDataText": "No data available",
+ "close": "Close",
+ "open": "open",
+ "loading": "loading",
+ "carousel": {
+ "ariaLabel": {
+ "delimiter": "delimiter"
+ }
+ },
+ "colorPicker": {
+ "ariaLabel": {
+ "hueSlider": "Hue Slider",
+ "eyedropper": "Eye Dropper",
+ "hexInput": "Hex Input"
+ }
+ },
+ "dataFooter": {
+ "itemsPerPageText": "Items per page:",
+ "itemsPerPageAll": "All",
+ "pageText": "{0}-{1} of {2}",
+ "firstPage": "First Page",
+ "prevPage": "Previous Page",
+ "nextPage": "Next Page",
+ "lastPage": "Last Page"
+ },
+ "pagination": {
+ "ariaLabel": {
+ "root": "root",
+ "previous": "previous",
+ "first": "first",
+ "last": "last",
+ "next": "next",
+ "currentPage": "currentPage",
+ "page": "page"
+ }
+ },
+ "input": {
+ "clear": "clear",
+ "appendAction": "appendAction",
+ "prependAction": "prependAction",
+ "counterSize": "counterSize",
+ "otp": "otp"
+ },
+ "fileInput": {
+ "counterSize": "counterSize"
+ },
+ "rating": {
+ "ariaLabel": {
+ "item": "item"
+ }
+ },
+ "video": {
+ "seek": "Seek",
+ "play": "Play",
+ "pause": "Pause",
+ "showVolume": "Show Volume",
+ "enterFullscreen": "Enter Fullscreen",
+ "volume": "Volume"
+ }
+ }
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/i18n/locales/fr.json b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/i18n/locales/fr.json
new file mode 100644
index 0000000..c829fce
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/i18n/locales/fr.json
@@ -0,0 +1,238 @@
+{
+ "UI Elements": "รLรMENTS DE L'UI",
+ "Forms & Tables": "Formulaires et tableaux",
+ "Pages": "Des pages",
+ "Charts & Maps": "Graphiques et cartes",
+ "Others": "Autres",
+ "Typography": "Typographie",
+ "Cards": "Cartes",
+ "Basic": "De base",
+ "Advance": "Avance",
+ "Widgets": "Widget",
+ "Card Action": "Action de la carte",
+ "Components": "Composants",
+ "Alert": "Alerte",
+ "Close Alert": "Fermer l'alerte",
+ "Avatar": "Avatar",
+ "Badge": "Badge",
+ "Button": "Bouton",
+ "Calendar": "Calendrier",
+ "Kanban": "Tableau Kanban",
+ "Image": "Image",
+ "Pagination": "Pagination",
+ "Progress Circular": "Progrรจs circulaire",
+ "Progress Linear": "Progrรจs Linรฉaire",
+ "Autocomplete": "Saisie automatique",
+ "Tooltip": "Info-bulle",
+ "Slider": "Glissiรจre",
+ "Date Time Picker": "Sรฉlecteur de date et d'heure",
+ "Select": "Sรฉlectionner",
+ "Switch": "Commutateur",
+ "Checkbox": "Case ร cocher",
+ "Radio": "Radio",
+ "Textarea": "Textarea",
+ "Rating": "รvaluation",
+ "File Input": "Entrรฉe de fichier",
+ "Otp Input": "Entrรฉe Otp",
+ "Form Layout": "Disposition du formulaire",
+ "Form Validation": "Validation de formulaire",
+ "Charts": "Graphiques",
+ "Apex Chart": "Graphique Apex",
+ "Chartjs": "Chartjs",
+ "Account Settings": "Paramรจtres du compte",
+ "User Profile": "Profil de l'utilisateur",
+ "FAQ": "FAQ",
+ "Dialog Examples": "Exemples de dialogue",
+ "Pricing": "Tarification",
+ "List": "liste",
+ "Edit": "รditer",
+ "Nav Levels": "Niveaux de navigation",
+ "Level 2.1": "Niveau 2.1",
+ "Level 2.2": "Niveau 2.2",
+ "Level 3.1": "Niveau 3.1",
+ "Level 3.2": "Niveau 3.2",
+ "Raise Support": "Augmenter le soutien",
+ "Documentation": "Documentation",
+ "Dashboards": "Tableaux de bord",
+ "Analytics": "Analytique",
+ "Apps & Pages": "Applications et pages",
+ "Email": "Email",
+ "Chat": "Bavarder",
+ "Invoice": "Facture d'achat",
+ "Preview": "Aperรงu",
+ "Add": "Ajouter",
+ "User": "Utilisateur",
+ "View": "Vue",
+ "Login v1": "Connexion v1",
+ "Login v2": "Connexion v2",
+ "Login": "Connexion",
+ "Register v1": "S'inscrire v1",
+ "Register v2": "S'inscrire v2",
+ "Register": "S'inscrire",
+ "Forget Password v1": "Oubliez le mot de passe v1",
+ "Forget Password v2": "Oubliez le mot de passe v2",
+ "Forgot Password v1": "Oubliez le mot de passe v1",
+ "Forgot Password v2": "Oubliez le mot de passe v2",
+ "Forgot Password": "Oubliez le mot de passe",
+ "Reset Password v1": "Rรฉinitialiser le mot de passe v1",
+ "Reset Password v2": "Rรฉinitialiser le mot de passe v2",
+ "Reset Password": "Rรฉinitialiser le mot de passe",
+ "Miscellaneous": "Divers",
+ "Coming Soon": "Bientรดt disponible",
+ "Not Authorized": "Pas autorisรฉ",
+ "Under Maintenance": "En maintenance",
+ "Error": "Erreur",
+ "Statistics": "Statistiques",
+ "Card Actions": "Actions de la carte",
+ "Actions": "Actions",
+ "Access Control": "Contrรดle d'accรจs",
+ "User Interface": "Interface utilisateur",
+ "CRM": "CRM",
+ "eCommerce": "commerce รฉlectronique",
+ "Icons": "Icรดne",
+ "Chip": "รbrรฉcher",
+ "Dialog": "Dialogue",
+ "Expansion Panel": "Panneau d'extension",
+ "Combobox": "Boรฎte combo",
+ "Textfield": "Champ de texte",
+ "Range Slider": "Curseur Gamme",
+ "Menu": "Menu",
+ "Snackbar": "Casse-croรปte",
+ "Tabs": "Onglets",
+ "Form Elements": "รlรฉments de formulaire",
+ "Form Layouts": "Dispositions de formulaire",
+ "Authentication": "Authentification",
+ "Page Not Found - 404": "Page introuvable - 404",
+ "Not Authorized - 401": "Non autorisรฉ - 401",
+ "Server Error - 500": "Erreur de serveur - 500",
+ "2": "2",
+ "Forms": "Formes",
+ "Timeline": "Chronologie",
+ "Disabled Menu": "Menu dรฉsactivรฉ",
+ "Help Center": "Centre d'aide",
+ "Verify Email": "Vรฉrifier les courriels",
+ "Verify Email v1": "Vรฉrifier l'e-mail v1",
+ "Verify Email v2": "Vรฉrifier l'e-mail v2",
+ "Two Steps": "Deux รฉtapes",
+ "Two Steps v1": "Deux รฉtapes v1",
+ "Two Steps v2": "Deux รฉtapes v2",
+ "Custom Input": "Entrรฉe personnalisรฉe",
+ "Extensions": "Rallonges",
+ "Tour": "Tour",
+ "Register Multi-Steps": "Enregistrer plusieurs รฉtapes",
+ "Wizard Examples": "Exemples de guide",
+ "Checkout": "Check-out",
+ "Create Deal": "Crรฉer une offre",
+ "Property Listing": "Liste des propriรฉtรฉs",
+ "Roles & Permissions": "Rรดles et autorisations",
+ "Roles": "Rรดles",
+ "Permissions": "Autorisations",
+ "Simple Table": "Table simple",
+ "Tables": "Tables",
+ "Data Table": "Table de donnรฉes",
+ "Apps": "Applications",
+ "Misc": "Divers",
+ "Wizard Pages": "Pages de l'assistant",
+ "Form Wizard": "Assistant de formulaire",
+ "Numbered": "Numรฉrotรฉ",
+ "3": "3",
+ "ecommerce": "commerce รฉlectronique",
+ "Ecommerce": "Commerce รฉlectronique",
+ "Product": "Produit",
+ "Category": "Catรฉgorie",
+ "Order": "Ordre",
+ "Details": "Dรฉtails",
+ "Customer": "Client",
+ "Manage Review": "Gรฉrer la revue",
+ "Referrals": "Rรฉfรฉrences",
+ "Settings": "Paramรจtres",
+ "Course Details": "Dรฉtails du cours",
+ "My Course": "Mon cours",
+ "Overview": "Aperรงu",
+ "Academy": "Acadรฉmie",
+ "Logistics": "Logistique",
+ "Dashboard": "Tableau de bord",
+ "Fleet": "Flotte",
+ "Editors": "รditeurs",
+ "Front Pages": "Pages frontales",
+ "Landing": "d'atterrissage",
+ "checkout": "Check-out",
+ "Payment": "Paiement",
+ "Swiper": "Swiper",
+ "Shortcut": "Raccourci",
+ "Appointments": "Rendez-vous",
+ "Invoice App": "Application de facturation",
+ "Manage Accounts": "Gรฉrer les comptes",
+ "Users": "Utilisateurs",
+ "Manage Users": "Gรฉrer les utilisateurs",
+ "Role Management": "Gestion des rรดles",
+ "Permission": "Autorisation",
+ "Dashboard Analytics": "Analyse du tableau de bord",
+ "5": "5",
+ "10": "10",
+ "20": "20",
+ "25": "25",
+ "50": "50",
+ "100": "100",
+ "$vuetify": {
+ "badge": "Badge",
+ "loading": "Chargement",
+ "noDataText": "Pas de donnรฉes disponibles",
+ "close": "Fermer",
+ "open": "Ouvert",
+ "carousel": {
+ "ariaLabel": {
+ "delimiter": "dรฉlimiteur"
+ }
+ },
+ "colorPicker": {
+ "ariaLabel": {
+ "hueSlider": "curseur de teinte",
+ "eyedropper": "compte-gouttes",
+ "hexInput": "entrรฉe hexadรฉcimale"
+ }
+ },
+ "dataFooter": {
+ "itemsPerPageText": "Objets par page:",
+ "itemsPerPageAll": "Tout",
+ "pageText": "{0}-{1} of {2}",
+ "firstPage": "Premiรจre page",
+ "prevPage": "Page prรฉcรฉdente",
+ "nextPage": "Page suivante",
+ "lastPage": "Derniรจre page"
+ },
+ "pagination": {
+ "ariaLabel": {
+ "root": "racine",
+ "previous": "prรฉcรฉdente",
+ "first": "d'abord",
+ "last": "derniรจre",
+ "next": "suivante",
+ "currentPage": "page actuelle",
+ "page": "page"
+ }
+ },
+ "input": {
+ "clear": "dรฉgager",
+ "appendAction": "ajouter une action",
+ "prependAction": "prรฉfixer l'action",
+ "otp": "otp"
+ },
+ "fileInput": {
+ "counterSize": "Taille du compteur"
+ },
+ "rating": {
+ "ariaLabel": {
+ "item": "Objet"
+ }
+ },
+ "video": {
+ "seek": "Rechercher",
+ "play": "Jouer",
+ "pause": "Pause",
+ "showVolume": "Afficher le volume",
+ "enterFullscreen": "Entrer en plein รฉcran",
+ "volume": "Volume"
+ }
+ }
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/i18n/vue-i18n.d.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/i18n/vue-i18n.d.ts
new file mode 100644
index 0000000..e3863c8
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/i18n/vue-i18n.d.ts
@@ -0,0 +1,17 @@
+/**
+ * global type definitions
+ * using the typescript interface, you can define the i18n resources that is type-safed!
+ */
+
+/**
+ * you need to import the some interfaces
+ */
+import en from '@/plugins/i18n/locales/en.json';
+import 'vue-i18n';
+
+type LocaleMessage = typeof en
+
+declare module 'vue-i18n' {
+ export interface DefineLocaleMessage extends LocaleMessage {
+ }
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/iconify/build-icons.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/iconify/build-icons.ts
new file mode 100644
index 0000000..6fee0d2
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/iconify/build-icons.ts
@@ -0,0 +1,303 @@
+/**
+ * This is an advanced example for creating icon bundles for Iconify SVG Framework.
+ *
+ * It creates a bundle from:
+ * - All SVG files in a directory.
+ * - Custom JSON files.
+ * - Iconify icon sets.
+ * - SVG framework.
+ *
+ * This example uses Iconify Tools to import and clean up icons.
+ * For Iconify Tools documentation visit https://docs.iconify.design/tools/tools2/
+ */
+import { promises as fs } from 'node:fs'
+import { createRequire } from 'node:module'
+import { dirname, join } from 'node:path'
+
+// Installation: npm install --save-dev @iconify/tools @iconify/utils @iconify/json @iconify/iconify
+import { cleanupSVG, importDirectory, isEmptyColor, parseColors, runSVGO } from '@iconify/tools'
+import type { IconifyJSON } from '@iconify/types'
+import { getIcons, getIconsCSS, stringToIcon } from '@iconify/utils'
+
+// Create require function for ES modules
+const require = createRequire(import.meta.url)
+
+/**
+ * Script configuration
+ */
+interface BundleScriptCustomSVGConfig {
+
+ // Path to SVG files
+ dir: string
+
+ // True if icons should be treated as monotone: colors replaced with currentColor
+ monotone: boolean
+
+ // Icon set prefix
+ prefix: string
+}
+
+interface BundleScriptCustomJSONConfig {
+
+ // Path to JSON file
+ filename: string
+
+ // List of icons to import. If missing, all icons will be imported
+ icons?: string[]
+}
+
+interface BundleScriptConfig {
+
+ // Custom SVG to import and bundle
+ svg?: BundleScriptCustomSVGConfig[]
+
+ // Icons to bundled from @iconify/json packages
+ icons?: string[]
+
+ // List of JSON files to bundled
+ // Entry can be a string, pointing to filename or a BundleScriptCustomJSONConfig object (see type above)
+ // If entry is a string or object without 'icons' property, an entire JSON file will be bundled
+ json?: (string | BundleScriptCustomJSONConfig)[]
+}
+
+const sources: BundleScriptConfig = {
+
+ svg: [
+ // {
+ // dir: 'resources/images/iconify-svg',
+ // monotone: true,
+ // prefix: 'custom',
+ // },
+
+ // {
+ // dir: 'emojis',
+ // monotone: false,
+ // prefix: 'emoji',
+ // },
+ ],
+
+ icons: [
+ // 'mdi:home',
+ // 'mdi:account',
+ // 'mdi:login',
+ // 'mdi:logout',
+ // 'octicon:book-24',
+ // 'octicon:code-square-24',
+ ],
+
+ json: [
+ // Custom JSON file
+ // 'json/gg.json',
+
+ // Iconify JSON file (@iconify/json is a package name, /json/ is directory where files are, then filename)
+ require.resolve('@iconify-json/tabler/icons.json'),
+ {
+ filename: require.resolve('@iconify-json/mdi/icons.json'),
+ icons: [
+ 'close-circle',
+ 'language-javascript',
+ 'language-typescript',
+ ],
+ },
+ {
+ filename: require.resolve('@iconify-json/fa/icons.json'),
+ icons: [
+ 'circle',
+ ],
+ },
+
+ // Custom file with only few icons
+ // {
+ // filename: require.resolve('@iconify-json/line-md/icons.json'),
+ // icons: [
+ // 'home-twotone-alt',
+ // 'github',
+ // 'document-list',
+ // 'document-code',
+ // 'image-twotone',
+ // ],
+ // },
+ ],
+}
+
+// File to save bundle to
+const target = join(__dirname, 'icons.css')
+
+/**
+ * Do stuff!
+ */
+
+;(async function () {
+ // Create directory for output if missing
+ const dir = dirname(target)
+ try {
+ await fs.mkdir(dir, {
+ recursive: true,
+ })
+ }
+ catch (err) {
+ //
+ }
+
+ const allIcons: IconifyJSON[] = []
+
+ /**
+ * Convert sources.icons to sources.json
+ */
+ if (sources.icons) {
+ const sourcesJSON = sources.json ? sources.json : (sources.json = [])
+
+ // Sort icons by prefix
+ const organizedList = organizeIconsList(sources.icons)
+
+ for (const prefix in organizedList) {
+ const filename = require.resolve(`@iconify/json/json/${prefix}.json`)
+
+ sourcesJSON.push({
+ filename,
+ icons: organizedList[prefix],
+ })
+ }
+ }
+
+ /**
+ * Bundle JSON files and collect icons
+ */
+ if (sources.json) {
+ for (let i = 0; i < sources.json.length; i++) {
+ const item = sources.json[i]
+
+ // Load icon set
+ const filename = typeof item === 'string' ? item : item.filename
+ const content = JSON.parse(await fs.readFile(filename, 'utf8')) as IconifyJSON
+
+ for (const key in content) {
+ if (key === 'prefix' && content.prefix === 'tabler') {
+ for (const k in content.icons)
+ content.icons[k].body = content.icons[k].body.replace(/stroke-width="2"/g, 'stroke-width="1.5"')
+ }
+ }
+
+ // Filter icons
+ if (typeof item !== 'string' && item.icons?.length) {
+ const filteredContent = getIcons(content, item.icons)
+
+ if (!filteredContent)
+ throw new Error(`Cannot find required icons in ${filename}`)
+
+ // Collect filtered icons
+ allIcons.push(filteredContent)
+ }
+ else {
+ // Collect all icons from the JSON file
+ allIcons.push(content)
+ }
+ }
+ }
+
+ /**
+ * Bundle custom SVG icons and collect icons
+ */
+ if (sources.svg) {
+ for (let i = 0; i < sources.svg.length; i++) {
+ const source = sources.svg[i]
+
+ // Import icons
+ const iconSet = await importDirectory(source.dir, {
+ prefix: source.prefix,
+ })
+
+ // Validate, clean up, fix palette, etc.
+ await iconSet.forEach(async (name, type) => {
+ if (type !== 'icon')
+ return
+
+ // Get SVG instance for parsing
+ const svg = iconSet.toSVG(name)
+
+ if (!svg) {
+ // Invalid icon
+ iconSet.remove(name)
+
+ return
+ }
+
+ // Clean up and optimise icons
+ try {
+ // Clean up icon code
+ await cleanupSVG(svg)
+
+ if (source.monotone) {
+ // Replace color with currentColor, add if missing
+ // If icon is not monotone, remove this code
+ await parseColors(svg, {
+ defaultColor: 'currentColor',
+ callback: (attr, colorStr, color) => {
+ return !color || isEmptyColor(color) ? colorStr : 'currentColor'
+ },
+ })
+ }
+
+ // Optimise
+ await runSVGO(svg)
+ }
+ catch (err) {
+ // Invalid icon
+ console.error(`Error parsing ${name} from ${source.dir}:`, err)
+ iconSet.remove(name)
+
+ return
+ }
+
+ // Update icon from SVG instance
+ iconSet.fromSVG(name, svg)
+ })
+
+ // Collect the SVG icon
+ allIcons.push(iconSet.export())
+ }
+ }
+
+ // Generate CSS from collected icons
+ const cssContent = allIcons
+ .map(iconSet => getIconsCSS(
+ iconSet,
+ Object.keys(iconSet.icons),
+ {
+ iconSelector: '.{prefix}-{name}',
+ mode: 'mask',
+ },
+ ))
+ .join('\n')
+
+ // Save the CSS to a file
+ await fs.writeFile(target, cssContent, 'utf8')
+
+ console.log(`Saved CSS to ${target}!`)
+})().catch(err => {
+ console.error(err)
+})
+
+/**
+ * Sort icon names by prefix
+ */
+function organizeIconsList(icons: string[]): Record {
+ const sorted: Record = Object.create(null)
+
+ icons.forEach(icon => {
+ const item = stringToIcon(icon)
+
+ if (!item)
+ return
+
+ const prefix = item.prefix
+ const prefixList = sorted[prefix] ? sorted[prefix] : (sorted[prefix] = [])
+
+ const name = item.name
+
+ if (!prefixList.includes(name))
+ prefixList.push(name)
+ })
+
+ return sorted
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/iconify/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/iconify/index.ts
new file mode 100644
index 0000000..d512ed0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/iconify/index.ts
@@ -0,0 +1,5 @@
+import './icons.css'
+
+export default function () {
+ // This plugin just requires icons import
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/iconify/package.json b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/iconify/package.json
new file mode 100644
index 0000000..ce04ec5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/iconify/package.json
@@ -0,0 +1,3 @@
+{
+ "type": "commonjs"
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/layouts.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/layouts.ts
new file mode 100644
index 0000000..da67a78
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/layouts.ts
@@ -0,0 +1,14 @@
+import type { App } from 'vue'
+
+import type { PartialDeep } from 'type-fest'
+import { createLayouts } from '@layouts'
+
+import { layoutConfig } from '@themeConfig'
+
+// Styles
+import '@layouts/styles/index.scss'
+
+export default function (app: App) {
+ // โน๏ธ We generate layout config from our themeConfig so you don't have to write config twice
+ app.use(createLayouts(layoutConfig as PartialDeep>))
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/vuetify/defaults.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/vuetify/defaults.ts
new file mode 100644
index 0000000..0699d69
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/vuetify/defaults.ts
@@ -0,0 +1,196 @@
+export default {
+ IconBtn: {
+ icon: true,
+ color: 'default',
+ variant: 'text',
+ },
+ VAlert: {
+ density: 'comfortable',
+ VBtn: {
+ color: undefined,
+ },
+ },
+ VAvatar: {
+ // โน๏ธ Remove after next release
+ variant: 'flat',
+ },
+ VBadge: {
+ // set v-badge default color to primary
+ color: 'primary',
+ },
+ VBtn: {
+ // set v-btn default color to primary
+ color: 'primary',
+ },
+ VChip: {
+ label: true,
+ },
+ VDataTable: {
+ VPagination: {
+ showFirstLastPage: true,
+ firstIcon: 'tabler-chevrons-left',
+ lastIcon: 'tabler-chevrons-right',
+ },
+ },
+ VDataTableServer: {
+ VPagination: {
+ showFirstLastPage: true,
+ firstIcon: 'tabler-chevrons-left',
+ lastIcon: 'tabler-chevrons-right',
+ },
+ },
+ VExpansionPanel: {
+ expandIcon: 'tabler-chevron-right',
+ collapseIcon: 'tabler-chevron-right',
+ },
+ VExpansionPanelTitle: {
+ expandIcon: 'tabler-chevron-right',
+ collapseIcon: 'tabler-chevron-right',
+ },
+ VList: {
+ color: 'primary',
+ density: 'compact',
+ VCheckboxBtn: {
+ density: 'compact',
+ },
+ VListItem: {
+ ripple: false,
+ VAvatar: {
+ size: 40,
+ },
+ },
+ },
+ VMenu: {
+ offset: '2px',
+ },
+ VPagination: {
+ density: 'comfortable',
+ variant: 'tonal',
+ },
+ VTabs: {
+ // set v-tabs default color to primary
+ color: 'primary',
+ density: 'comfortable',
+ VSlideGroup: {
+ showArrows: true,
+ },
+ },
+ VTooltip: {
+ // set v-tooltip default location to top
+ location: 'top',
+ },
+ VCheckboxBtn: {
+ color: 'primary',
+ },
+ VCheckbox: {
+ // set v-checkbox default color to primary
+ color: 'primary',
+ density: 'comfortable',
+ hideDetails: 'auto',
+ },
+ VRadioGroup: {
+ color: 'primary',
+ density: 'comfortable',
+ hideDetails: 'auto',
+ },
+ VRadio: {
+ density: 'comfortable',
+ hideDetails: 'auto',
+ },
+ VSelect: {
+ variant: 'outlined',
+ color: 'primary',
+ density: 'comfortable',
+ hideDetails: 'auto',
+ VChip: {
+ label: true,
+ },
+ },
+ VRangeSlider: {
+ // set v-range-slider default color to primary
+ color: 'primary',
+ trackSize: 6,
+ thumbSize: 22,
+ density: 'comfortable',
+ thumbLabel: true,
+ hideDetails: 'auto',
+ },
+ VRating: {
+ // set v-rating default color to primary
+ color: 'warning',
+ },
+ VProgressLinear: {
+ height: 6,
+ roundedBar: true,
+ rounded: true,
+ bgColor: 'rgba(var(--v-track-bg))',
+ },
+ VSlider: {
+ // set v-range-slider default color to primary
+ color: 'primary',
+ thumbLabel: true,
+ hideDetails: 'auto',
+ thumbSize: 22,
+ trackSize: 6,
+ elevation: 4,
+ },
+ VTextField: {
+ variant: 'outlined',
+ density: 'comfortable',
+ color: 'primary',
+ hideDetails: 'auto',
+ },
+ VAutocomplete: {
+ variant: 'outlined',
+ color: 'primary',
+ density: 'comfortable',
+ hideDetails: 'auto',
+ menuProps: {
+ contentClass: 'app-autocomplete__content v-autocomplete__content',
+ },
+ VChip: {
+ label: true,
+ },
+ },
+ VCombobox: {
+ variant: 'outlined',
+ density: 'comfortable',
+ color: 'primary',
+ hideDetails: 'auto',
+ VChip: {
+ label: true,
+ },
+ },
+ VFileInput: {
+ variant: 'outlined',
+ density: 'comfortable',
+ color: 'primary',
+ hideDetails: 'auto',
+ },
+ VTextarea: {
+ variant: 'outlined',
+ density: 'comfortable',
+ color: 'primary',
+ hideDetails: 'auto',
+ },
+ VSnackbar: {
+ VBtn: {
+ density: 'comfortable',
+ },
+ },
+ VSwitch: {
+ // set v-switch default color to primary
+ inset: true,
+ color: 'primary',
+ hideDetails: 'auto',
+ ripple: false,
+ },
+ VNavigationDrawer: {
+ touchless: true,
+ },
+ VVideo: {
+ VSlider: {
+ thumbLabel: false,
+ },
+ },
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/vuetify/icons.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/vuetify/icons.ts
new file mode 100644
index 0000000..86f028a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/vuetify/icons.ts
@@ -0,0 +1,94 @@
+import type { IconAliases, IconProps } from 'vuetify'
+
+import checkboxChecked from '@images/svg/checkbox-checked.svg'
+import checkboxIndeterminate from '@images/svg/checkbox-indeterminate.svg'
+import checkboxUnchecked from '@images/svg/checkbox-unchecked.svg'
+import radioChecked from '@images/svg/radio-checked.svg'
+import radioUnchecked from '@images/svg/radio-unchecked.svg'
+
+const customIcons: Record = {
+ 'mdi-checkbox-blank-outline': checkboxUnchecked,
+ 'mdi-checkbox-marked': checkboxChecked,
+ 'mdi-minus-box': checkboxIndeterminate,
+ 'mdi-radiobox-marked': radioChecked,
+ 'mdi-radiobox-blank': radioUnchecked,
+}
+
+const aliases: Partial = {
+ calendar: 'tabler-calendar',
+ collapse: 'tabler-chevron-up',
+ complete: 'tabler-check',
+ cancel: 'tabler-x',
+ close: 'tabler-x',
+ delete: 'tabler-circle-x-filled',
+ clear: 'tabler-circle-x',
+ success: 'tabler-circle-check',
+ info: 'tabler-info-circle',
+ warning: 'tabler-alert-triangle',
+ error: 'tabler-alert-circle',
+ prev: 'tabler-chevron-left',
+ ratingEmpty: 'tabler-star',
+ ratingFull: 'tabler-star-filled',
+ ratingHalf: 'tabler-star-half-filled',
+ next: 'tabler-chevron-right',
+ delimiter: 'tabler-circle',
+ sort: 'tabler-arrow-up',
+ expand: 'tabler-chevron-down',
+ menu: 'tabler-menu-2',
+ subgroup: 'tabler-caret-down',
+ dropdown: 'tabler-chevron-down',
+ edit: 'tabler-pencil',
+ loading: 'tabler-refresh',
+ first: 'tabler-player-skip-back',
+ last: 'tabler-player-skip-forward',
+ unfold: 'tabler-arrows-move-vertical',
+ file: 'tabler-paperclip',
+ plus: 'tabler-plus',
+ minus: 'tabler-minus',
+ sortAsc: 'tabler-arrow-up',
+ sortDesc: 'tabler-arrow-down',
+ play: 'tabler-player-play',
+ pause: 'tabler-player-pause',
+ fullscreen: 'tabler-maximize',
+ fullscreenExit: 'tabler-minimize',
+ volumeHigh: 'tabler-volume',
+ volumeMedium: 'tabler-volume-2',
+ volumeLow: 'tabler-volume-2',
+ volumeOff: 'tabler-volume-off',
+ tableGroupExpand: 'tabler-chevron-right',
+ tableGroupCollapse: 'tabler-chevron-down',
+}
+
+export const iconify = {
+ component: (props: IconProps) => {
+ // Load custom SVG directly instead of going through icon component
+ if (typeof props.icon === 'string') {
+ const iconComponent = customIcons[props.icon]
+
+ if (iconComponent)
+ return h(iconComponent)
+ }
+
+ return h(
+ props.tag,
+ {
+ ...props,
+
+ // As we are using class based icons
+ class: [props.icon],
+
+ // Remove used props from DOM rendering
+ tag: undefined,
+ icon: undefined,
+ },
+ )
+ },
+}
+
+export const icons = {
+ defaultSet: 'iconify',
+ aliases,
+ sets: {
+ iconify,
+ },
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/vuetify/index.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/vuetify/index.ts
new file mode 100644
index 0000000..5ddfe2c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/vuetify/index.ts
@@ -0,0 +1,56 @@
+import { deepMerge } from '@antfu/utils'
+import type { App } from 'vue'
+import { useI18n } from 'vue-i18n'
+import { createVuetify } from 'vuetify'
+import { VBtn } from 'vuetify/components/VBtn'
+import { VVideo } from 'vuetify/labs/VVideo'
+import { createVueI18nAdapter } from 'vuetify/locale/adapters/vue-i18n'
+import defaults from './defaults'
+import { icons } from './icons'
+import { staticPrimaryColor, staticPrimaryDarkenColor, themes } from './theme'
+import { themeConfig } from '@themeConfig'
+import { getI18n } from '@/plugins/i18n/index'
+
+// Styles
+import { cookieRef } from '@/@layouts/stores/config'
+import '@core-scss/template/libs/vuetify/index.scss'
+import 'vuetify/styles'
+
+export default function (app: App) {
+ const cookieThemeValues = {
+ defaultTheme: resolveVuetifyTheme(themeConfig.app.theme),
+ themes: {
+ light: {
+ colors: {
+ 'primary': cookieRef('lightThemePrimaryColor', staticPrimaryColor).value,
+ 'primary-darken-1': cookieRef('lightThemePrimaryDarkenColor', staticPrimaryDarkenColor).value,
+ },
+ },
+ dark: {
+ colors: {
+ 'primary': cookieRef('darkThemePrimaryColor', staticPrimaryColor).value,
+ 'primary-darken-1': cookieRef('darkThemePrimaryDarkenColor', staticPrimaryDarkenColor).value,
+ },
+ },
+ },
+ }
+
+ const optionTheme = deepMerge({ themes }, cookieThemeValues)
+
+ const vuetify = createVuetify({
+ aliases: {
+ IconBtn: VBtn,
+ },
+ components: {
+ VVideo,
+ },
+ defaults,
+ icons,
+ theme: optionTheme,
+ locale: {
+ adapter: createVueI18nAdapter({ i18n: getI18n(), useI18n }),
+ },
+ })
+
+ app.use(vuetify)
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/vuetify/theme.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/vuetify/theme.ts
new file mode 100644
index 0000000..ab7837f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/vuetify/theme.ts
@@ -0,0 +1,155 @@
+import type { ThemeDefinition } from 'vuetify'
+
+export const staticPrimaryColor = '#7367F0'
+export const staticPrimaryDarkenColor = '#675DD8'
+
+export const themes: Record = {
+ light: {
+ dark: false,
+ colors: {
+ 'primary': staticPrimaryColor,
+ 'on-primary': '#fff',
+ 'primary-darken-1': '#675DD8',
+ 'secondary': '#808390',
+ 'on-secondary': '#fff',
+ 'secondary-darken-1': '#737682',
+ 'success': '#28C76F',
+ 'on-success': '#fff',
+ 'success-darken-1': '#24B364',
+ 'info': '#00BAD1',
+ 'on-info': '#fff',
+ 'info-darken-1': '#00A7BC',
+ 'warning': '#FF9F43',
+ 'on-warning': '#fff',
+ 'warning-darken-1': '#E68F3C',
+ 'error': '#FF4C51',
+ 'on-error': '#fff',
+ 'error-darken-1': '#E64449',
+ 'background': '#F8F7FA',
+ 'on-background': '#2F2B3D',
+ 'surface': '#fff',
+ 'on-surface': '#2F2B3D',
+ 'grey-50': '#FAFAFA',
+ 'grey-100': '#F5F5F5',
+ 'grey-200': '#EEEEEE',
+ 'grey-300': '#E0E0E0',
+ 'grey-400': '#BDBDBD',
+ 'grey-500': '#9E9E9E',
+ 'grey-600': '#757575',
+ 'grey-700': '#616161',
+ 'grey-800': '#424242',
+ 'grey-900': '#212121',
+ 'grey-light': '#FAFAFA',
+ 'perfect-scrollbar-thumb': '#DBDADE',
+ 'skin-bordered-background': '#fff',
+ 'skin-bordered-surface': '#fff',
+ 'expansion-panel-text-custom-bg': '#fafafa',
+ },
+
+ variables: {
+ 'code-color': '#d400ff',
+ 'overlay-scrim-background': '#2F2B3D',
+ 'tooltip-background': '#2F2B3D',
+ 'overlay-scrim-opacity': 0.5,
+ 'hover-opacity': 0.06,
+ 'focus-opacity': 0.1,
+ 'selected-opacity': 0.08,
+ 'activated-opacity': 0.16,
+ 'pressed-opacity': 0.14,
+ 'dragged-opacity': 0.1,
+ 'disabled-opacity': 0.4,
+ 'border-color': '#2F2B3D',
+ 'border-opacity': 0.12,
+ 'table-header-color': '#EAEAEC',
+ 'high-emphasis-opacity': 0.9,
+ 'medium-emphasis-opacity': 0.7,
+ 'switch-opacity': 0.2,
+ 'switch-disabled-track-opacity': 0.3,
+ 'switch-disabled-thumb-opacity': 0.4,
+ 'switch-checked-disabled-opacity': 0.3,
+ 'track-bg': '#F1F0F2',
+
+ // Shadows
+ 'shadow-key-umbra-color': '#2F2B3D',
+ 'shadow-xs-opacity': 0.10,
+ 'shadow-sm-opacity': 0.12,
+ 'shadow-md-opacity': 0.14,
+ 'shadow-lg-opacity': 0.16,
+ 'shadow-xl-opacity': 0.18,
+ },
+ },
+ dark: {
+ dark: true,
+ colors: {
+ 'primary': staticPrimaryColor,
+ 'on-primary': '#fff',
+ 'primary-darken-1': '#675DD8',
+ 'secondary': '#808390',
+ 'on-secondary': '#fff',
+ 'secondary-darken-1': '#737682',
+ 'success': '#28C76F',
+ 'on-success': '#fff',
+ 'success-darken-1': '#24B364',
+ 'info': '#00BAD1',
+ 'on-info': '#fff',
+ 'info-darken-1': '#00A7BC',
+ 'warning': '#FF9F43',
+ 'on-warning': '#fff',
+ 'warning-darken-1': '#E68F3C',
+ 'error': '#FF4C51',
+ 'on-error': '#fff',
+ 'error-darken-1': '#E64449',
+ 'background': '#25293C',
+ 'on-background': '#E1DEF5',
+ 'surface': '#2F3349',
+ 'on-surface': '#E1DEF5',
+ 'grey-50': '#26293A',
+ 'grey-100': '#2F3349',
+ 'grey-200': '#26293A',
+ 'grey-300': '#4A5072',
+ 'grey-400': '#5E6692',
+ 'grey-500': '#7983BB',
+ 'grey-600': '#AAB3DE',
+ 'grey-700': '#B6BEE3',
+ 'grey-800': '#CFD3EC',
+ 'grey-900': '#E7E9F6',
+ 'grey-light': '#353A52',
+ 'perfect-scrollbar-thumb': '#4A5072',
+ 'skin-bordered-background': '#2F3349',
+ 'skin-bordered-surface': '#2F3349',
+ },
+ variables: {
+ 'code-color': '#d400ff',
+ 'overlay-scrim-background': '#171925',
+ 'tooltip-background': '#F7F4FF',
+ 'overlay-scrim-opacity': 0.6,
+ 'hover-opacity': 0.06,
+ 'focus-opacity': 0.1,
+ 'selected-opacity': 0.08,
+ 'activated-opacity': 0.16,
+ 'pressed-opacity': 0.14,
+ 'dragged-opacity': 0.1,
+ 'disabled-opacity': 0.4,
+ 'border-color': '#E1DEF5',
+ 'border-opacity': 0.12,
+ 'table-header-color': '#535876',
+ 'high-emphasis-opacity': 0.9,
+ 'medium-emphasis-opacity': 0.7,
+ 'switch-opacity': 0.4,
+ 'switch-disabled-track-opacity': 0.4,
+ 'switch-disabled-thumb-opacity': 0.8,
+ 'switch-checked-disabled-opacity': 0.3,
+ 'track-bg': '#3A3F57',
+
+ // Shadows
+ 'shadow-key-umbra-color': '#131120',
+ 'shadow-xs-opacity': 0.16,
+ 'shadow-sm-opacity': 0.18,
+ 'shadow-md-opacity': 0.2,
+ 'shadow-lg-opacity': 0.22,
+ 'shadow-xl-opacity': 0.24,
+ },
+ },
+}
+
+export default themes
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/webfontloader.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/webfontloader.ts
new file mode 100644
index 0000000..08bdc22
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/plugins/webfontloader.ts
@@ -0,0 +1,19 @@
+/**
+ * plugins/webfontloader.js
+ *
+ * webfontloader documentation: https://github.com/typekit/webfontloader
+ */
+
+export async function loadFonts() {
+ const webFontLoader = await import(/* webpackChunkName: "webfontloader" */'webfontloader')
+
+ webFontLoader.load({
+ google: {
+ families: ['Public+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap'],
+ },
+ })
+}
+
+export default function () {
+ loadFonts()
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/utils/api.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/utils/api.ts
new file mode 100644
index 0000000..2d61c18
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/utils/api.ts
@@ -0,0 +1,10 @@
+import { ofetch } from 'ofetch'
+
+export const $api = ofetch.create({
+ baseURL: import.meta.env.VITE_API_BASE_URL || '/api',
+ async onRequest({ options }) {
+ const accessToken = useCookie('accessToken').value
+ if (accessToken)
+ options.headers.append('Authorization', `Bearer ${accessToken}`)
+ },
+})
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/utils/constants.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/utils/constants.ts
new file mode 100644
index 0000000..92ef006
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/utils/constants.ts
@@ -0,0 +1 @@
+export const COOKIE_MAX_AGE_1_YEAR = 365 * 24 * 60 * 60
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/utils/paginationMeta.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/utils/paginationMeta.ts
new file mode 100644
index 0000000..d26c2ec
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/utils/paginationMeta.ts
@@ -0,0 +1,6 @@
+export const paginationMeta = (options: T, total: number) => {
+ const start = (options.page - 1) * options.itemsPerPage + 1
+ const end = Math.min(options.page * options.itemsPerPage, total)
+
+ return `Showing ${total === 0 ? 0 : start} to ${end} of ${total} entries`
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyAssignmentProgress.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyAssignmentProgress.vue
new file mode 100644
index 0000000..a571884
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyAssignmentProgress.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ assignment.progress }}%
+
+
+
+
+ {{ assignment.title }}
+
+
+
+ {{ assignment.tasks }} Tasks
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyCardPopularInstructors.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyCardPopularInstructors.vue
new file mode 100644
index 0000000..9f82af3
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyCardPopularInstructors.vue
@@ -0,0 +1,64 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ instructors
+
+
+ Courses
+
+
+
+
+
+
+
+
+
+
+ {{ instructor.name }}
+
+
+ {{ instructor.profession }}
+
+
+
+
+ {{ instructor.totalCourses }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyCardTopCourses.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyCardTopCourses.vue
new file mode 100644
index 0000000..b736ade
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyCardTopCourses.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ course.title }}
+
+
+
+ {{ course.views }} Views
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyCourseTable.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyCourseTable.vue
new file mode 100644
index 0000000..6ad50a6
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyCourseTable.vue
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+ Courses you are taking
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.courseTitle }}
+
+
+
+
+
+ {{ item.user }}
+
+
+
+
+
+
+
+
+ {{ item.time }}
+
+
+
+
+
+
+
+ {{ Math.floor((item.completedTasks / item.totalTasks) * 100) }}%
+
+
+
+
+
+ {{ item.completedTasks }}/{{ item.totalTasks }}
+
+
+
+
+
+
+
+
+
+
+ {{ item.userCount }}
+
+
+
+
+ {{ item.note }}
+
+
+
+ {{ item.view }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyMyCourses.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyMyCourses.vue
new file mode 100644
index 0000000..0346a27
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyMyCourses.vue
@@ -0,0 +1,235 @@
+
+
+
+
+
+
+
+
+
+ My Courses
+
+
+ Total 6 course you have purchased
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $router.push({ name: 'apps-academy-course-details' })"
+ />
+
+
+
+
+ {{ course.tags }}
+
+
+
+ {{ course.rating }}
+
+
+
+ ({{ course.ratingCount }})
+
+
+
+
+
+ {{ course.courseTitle }}
+
+
+
+ {{ course.desc }}
+
+
+
+ {{ course.time }}
+
+
+
+ Completed
+
+
+
+
+
+
+
+ Start Over
+
+
+
+
+
+ Continue
+
+
+
+
+
+
+
+
+
+
+
+ No Course Found
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyTopicYouAreInterested.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyTopicYouAreInterested.vue
new file mode 100644
index 0000000..cfce0ec
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyTopicYouAreInterested.vue
@@ -0,0 +1,186 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ topic.title }}
+
+
+ {{ topic.value }}%
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyUpcomingWebinar.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyUpcomingWebinar.vue
new file mode 100644
index 0000000..ecc121a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/AcademyUpcomingWebinar.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+ Upcoming Webinar
+
+
+ Next Generation Frontend Architecture Using Layout Engine And Vue.
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+ {{ value }}
+
+
+
+
+
+ Join the event
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/types.d.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/types.d.ts
new file mode 100644
index 0000000..bddf5d9
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/academy/types.d.ts
@@ -0,0 +1,6 @@
+export interface CourseParams {
+ q: string,
+ options: object,
+ hideCompleted: boolean,
+ status: string,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/calendar/CalendarEventHandler.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/calendar/CalendarEventHandler.vue
new file mode 100644
index 0000000..39799a7
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/calendar/CalendarEventHandler.vue
@@ -0,0 +1,316 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.raw.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+ Cancel
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/calendar/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/calendar/types.ts
new file mode 100644
index 0000000..0c34936
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/calendar/types.ts
@@ -0,0 +1,13 @@
+import type { Except } from 'type-fest'
+import type { CalendarEvent } from '@db/apps/calendar/types'
+
+export interface Event extends CalendarEvent {
+ extendedProps: {
+ calendar?: string
+ location: string
+ description: string
+ guests: string[]
+ }
+}
+
+export type NewEvent = Except
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/calendar/useCalendar.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/calendar/useCalendar.ts
new file mode 100644
index 0000000..e821964
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/calendar/useCalendar.ts
@@ -0,0 +1,314 @@
+import type { CalendarApi, CalendarOptions, EventApi, EventSourceFunc } from '@fullcalendar/core'
+import dayGridPlugin from '@fullcalendar/daygrid'
+import interactionPlugin from '@fullcalendar/interaction'
+import listPlugin from '@fullcalendar/list'
+import timeGridPlugin from '@fullcalendar/timegrid'
+import type { Event, NewEvent } from './types'
+import { useConfigStore } from '@core/stores/config'
+import { useCalendarStore } from '@/views/apps/calendar/useCalendarStore'
+
+export const blankEvent: Event | NewEvent = {
+ title: '',
+ start: '',
+ end: '',
+ allDay: false,
+ url: '',
+ extendedProps: {
+ /*
+ โน๏ธ We have to use undefined here because if we have blank string as value then select placeholder will be active (moved to top).
+ Hence, we need to set it to undefined or null
+ */
+ calendar: undefined,
+ guests: [],
+ location: '',
+ description: '',
+ },
+}
+
+export const useCalendar = (event: Ref, isEventHandlerSidebarActive: Ref, isLeftSidebarOpen: Ref) => {
+ const configStore = useConfigStore()
+
+ // ๐ Store
+ const store = useCalendarStore()
+
+ // ๐ Calendar template ref
+ const refCalendar = ref()
+
+ // ๐ Calendar colors
+ const calendarsColor = {
+ Business: 'primary',
+ Holiday: 'success',
+ Personal: 'error',
+ Family: 'warning',
+ ETC: 'info',
+ }
+
+ // โน๏ธ Extract event data from event API
+ const extractEventDataFromEventApi = (eventApi: EventApi) => {
+ // @ts-expect-error EventApi has extendProps type Dictionary (Record) and we have fully typed extended props => Type conflict
+ const {
+ id,
+ title,
+ start,
+ end,
+ url,
+ extendedProps: { calendar, guests, location, description },
+ allDay,
+ }: Event = eventApi
+
+ return {
+ id,
+ title,
+ start,
+ end,
+ url,
+ extendedProps: {
+ calendar,
+ guests,
+ location,
+ description,
+ },
+ allDay,
+ }
+ }
+
+ // @ts-expect-error for nuxt workaround
+ if (typeof process !== 'undefined' && process.server)
+ store.fetchEvents()
+
+ // ๐ Fetch events
+ const fetchEvents: EventSourceFunc = (info, successCallback) => {
+ // If there's no info => Don't make useless API call
+ if (!info)
+ return
+
+ store.fetchEvents()
+ .then(r => {
+ successCallback(r.map((e: Event) => ({
+ ...e,
+
+ // Convert string representation of date to Date object
+ start: new Date(e.start),
+ end: new Date(e.end),
+ })))
+ })
+ .catch(e => {
+ console.error('Error occurred while fetching calendar events', e)
+ })
+ }
+
+ // ๐ Calendar API
+ const calendarApi = ref(null)
+
+ // ๐ Update event in calendar [UI]
+ const updateEventInCalendar = (updatedEventData: Event, propsToUpdate: (keyof Event)[], extendedPropsToUpdate: (keyof Event['extendedProps'])[]) => {
+ calendarApi.value = refCalendar.value.getApi()
+
+ const existingEvent = calendarApi.value?.getEventById(String(updatedEventData.id))
+
+ if (!existingEvent) {
+ console.warn('Can\'t found event in calendar to update')
+
+ return
+ }
+
+ // ---Set event properties except date related
+ // Docs: https://fullcalendar.io/docs/Event-setProp
+ // dateRelatedProps => ['start', 'end', 'allDay']
+ for (let index = 0; index < propsToUpdate.length; index++) {
+ const propName = propsToUpdate[index]
+
+ existingEvent.setProp(propName, updatedEventData[propName])
+ }
+
+ // --- Set date related props
+ // ? Docs: https://fullcalendar.io/docs/Event-setDates
+ existingEvent.setDates(updatedEventData.start, updatedEventData.end, { allDay: updatedEventData.allDay })
+
+ // --- Set event's extendedProps
+ // ? Docs: https://fullcalendar.io/docs/Event-setExtendedProp
+ for (let index = 0; index < extendedPropsToUpdate.length; index++) {
+ const propName = extendedPropsToUpdate[index]
+
+ existingEvent.setExtendedProp(propName, updatedEventData.extendedProps[propName])
+ }
+ }
+
+ // ๐ Remove event in calendar [UI]
+ const removeEventInCalendar = (eventId: string) => {
+ const _event = calendarApi.value?.getEventById(eventId)
+
+ if (_event)
+ _event.remove()
+ }
+
+ // ๐ refetch events
+ const refetchEvents = () => {
+ calendarApi.value?.refetchEvents()
+ }
+
+ watch(() => store.selectedCalendars, refetchEvents)
+
+ // ๐ Add event
+ const addEvent = (_event: NewEvent) => {
+ store.addEvent(_event)
+ .then(() => {
+ refetchEvents()
+ })
+ }
+
+ // ๐ Update event
+ const updateEvent = (_event: Event) => {
+ // โน๏ธ Making API call using $api('', { method: ... })
+ store.updateEvent(_event)
+ .then(r => {
+ const propsToUpdate = ['id', 'title', 'url'] as (keyof Event)[]
+ const extendedPropsToUpdate = ['calendar', 'guests', 'location', 'description'] as (keyof Event['extendedProps'])[]
+
+ updateEventInCalendar(r, propsToUpdate, extendedPropsToUpdate)
+ })
+ refetchEvents()
+ }
+
+ // ๐ Remove event
+ const removeEvent = (eventId: string) => {
+ store.removeEvent(eventId).then(() => {
+ removeEventInCalendar(eventId)
+ })
+ }
+
+ // ๐ Calendar options
+ const calendarOptions = {
+ plugins: [dayGridPlugin, interactionPlugin, timeGridPlugin, listPlugin],
+ initialView: 'dayGridMonth',
+ headerToolbar: {
+ start: 'drawerToggler,prev,next title',
+ end: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth',
+ },
+ events: fetchEvents,
+
+ // โ We need this to be true because when its false and event is allDay event and end date is same as start data then Full calendar will set end to null
+ forceEventDuration: true,
+
+ /*
+ Enable dragging and resizing event
+ Docs: https://fullcalendar.io/docs/editable
+ */
+ editable: true,
+
+ /*
+ Enable resizing event from start
+ Docs: https://fullcalendar.io/docs/eventResizableFromStart
+ */
+ eventResizableFromStart: true,
+
+ /*
+ Automatically scroll the scroll-containers during event drag-and-drop and date selecting
+ Docs: https://fullcalendar.io/docs/dragScroll
+ */
+ dragScroll: true,
+
+ /*
+ Max number of events within a given day
+ Docs: https://fullcalendar.io/docs/dayMaxEvents
+ */
+ dayMaxEvents: 2,
+
+ /*
+ Determines if day names and week names are clickable
+ Docs: https://fullcalendar.io/docs/navLinks
+ */
+ navLinks: true,
+
+ eventClassNames({ event: calendarEvent }) {
+ const colorName = calendarsColor[calendarEvent._def.extendedProps.calendar as keyof typeof calendarsColor]
+
+ return [
+ // Background Color
+ `bg-light-${colorName} text-${colorName}`,
+ ]
+ },
+
+ eventClick({ event: clickedEvent, jsEvent }) {
+ // Prevent the default action
+ jsEvent.preventDefault()
+
+ if (clickedEvent.url) {
+ // Open the URL in a new tab
+ window.open(clickedEvent.url, '_blank')
+ }
+
+ // * Only grab required field otherwise it goes in infinity loop
+ // ! Always grab all fields rendered by form (even if it get `undefined`) otherwise due to Vue3/Composition API you might get: "object is not extensible"
+ event.value = extractEventDataFromEventApi(clickedEvent)
+
+ isEventHandlerSidebarActive.value = true
+ },
+
+ // customButtons
+ dateClick(info) {
+ event.value = { ...event.value, start: info.date }
+
+ isEventHandlerSidebarActive.value = true
+ },
+
+ /*
+ Handle event drop (Also include dragged event)
+ Docs: https://fullcalendar.io/docs/eventDrop
+ We can use `eventDragStop` but it doesn't return updated event so we have to use `eventDrop` which returns updated event
+ */
+ eventDrop({ event: droppedEvent }) {
+ updateEvent(extractEventDataFromEventApi(droppedEvent))
+ },
+
+ /*
+ Handle event resize
+ Docs: https://fullcalendar.io/docs/eventResize
+ */
+ eventResize({ event: resizedEvent }) {
+ if (resizedEvent.start && resizedEvent.end)
+ updateEvent(extractEventDataFromEventApi(resizedEvent))
+ },
+
+ customButtons: {
+ drawerToggler: {
+ text: 'calendarDrawerToggler',
+ click() {
+ isLeftSidebarOpen.value = true
+ },
+ },
+ },
+ } as CalendarOptions
+
+ // ๐ onMounted
+ onMounted(() => {
+ nextTick(() => {
+ if (refCalendar.value)
+ calendarApi.value = refCalendar.value.getApi()
+ })
+ })
+
+ // ๐ Jump to date on sidebar(inline) calendar change
+ const jumpToDate = (currentDate: string) => {
+ calendarApi.value?.gotoDate(new Date(currentDate))
+ }
+
+ watch(
+ () => configStore.isAppRTL,
+ val => {
+ calendarApi.value?.setOption('direction', val ? 'rtl' : 'ltr')
+ },
+ { immediate: true },
+ )
+
+ return {
+ refCalendar,
+ calendarOptions,
+ refetchEvents,
+ fetchEvents,
+ addEvent,
+ updateEvent,
+ removeEvent,
+ jumpToDate,
+ }
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/calendar/useCalendarStore.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/calendar/useCalendarStore.ts
new file mode 100644
index 0000000..85cad57
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/calendar/useCalendarStore.ts
@@ -0,0 +1,62 @@
+import type { Event, NewEvent } from './types'
+
+export const useCalendarStore = defineStore('calendar', {
+ // arrow function recommended for full type inference
+ state: () => ({
+ availableCalendars: [
+ {
+ color: 'error',
+ label: 'Personal',
+ },
+ {
+ color: 'primary',
+ label: 'Business',
+ },
+ {
+ color: 'warning',
+ label: 'Family',
+ },
+ {
+ color: 'success',
+ label: 'Holiday',
+ },
+ {
+ color: 'info',
+ label: 'ETC',
+ },
+ ],
+ selectedCalendars: ['Personal', 'Business', 'Family', 'Holiday', 'ETC'],
+ }),
+ actions: {
+ async fetchEvents() {
+ const { data, error } = await useApi(createUrl('/apps/calendar', {
+ query: {
+ calendars: this.selectedCalendars,
+ },
+ }))
+
+ if (error.value)
+ return error.value
+
+ return data.value
+ },
+ async addEvent(event: NewEvent) {
+ await $api('/apps/calendar', {
+ method: 'POST',
+ body: event,
+ })
+ },
+ async updateEvent(event: Event) {
+ return await $api(`/apps/calendar/${event.id}`, {
+ method: 'PUT',
+ body: event,
+ })
+ },
+ async removeEvent(eventId: string) {
+ return await $api(`/apps/calendar/${eventId}`, {
+ method: 'DELETE',
+ })
+ },
+
+ },
+})
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/ChatActiveChatUserProfileSidebarContent.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/ChatActiveChatUserProfileSidebarContent.vue
new file mode 100644
index 0000000..30b11d9
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/ChatActiveChatUserProfileSidebarContent.vue
@@ -0,0 +1,182 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ avatarText(store.activeChat.contact.fullName) }}
+
+
+
+ {{ store.activeChat.contact.fullName }}
+
+
+ {{ store.activeChat.contact.role }}
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/ChatContact.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/ChatContact.vue
new file mode 100644
index 0000000..11b1a64
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/ChatContact.vue
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+ {{ avatarText(user.fullName) }}
+
+
+
+
+ {{ props.user.fullName }}
+
+
+ {{ props.isChatContact && 'chat' in props.user ? props.user.chat.lastMessage.message : props.user.about }}
+
+
+
+
+ {{ formatDateToMonthShort(props.user.chat.lastMessage.time) }}
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/ChatLeftSidebarContent.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/ChatLeftSidebarContent.vue
new file mode 100644
index 0000000..4db51b6
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/ChatLeftSidebarContent.vue
@@ -0,0 +1,136 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No chats found
+
+
+
+
+
+
+ No contacts found
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/ChatLog.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/ChatLog.vue
new file mode 100644
index 0000000..d1fc5ee
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/ChatLog.vue
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ msgData.message }}
+
+
+
+
+ {{ resolveFeedbackIcon(msgGrp.messages[msgGrp.messages.length - 1].feedback).icon }}
+
+ {{ formatDate(msgGrp.messages[msgGrp.messages.length - 1].time, { hour: 'numeric', minute: 'numeric' }) }}
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/ChatUserProfileSidebarContent.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/ChatUserProfileSidebarContent.vue
new file mode 100644
index 0000000..05abbcd
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/ChatUserProfileSidebarContent.vue
@@ -0,0 +1,199 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ avatarText(store.profileUser.fullName) }}
+
+
+
+ {{ store.profileUser.fullName }}
+
+
+ {{ store.profileUser.role }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/useChat.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/useChat.ts
new file mode 100644
index 0000000..b5fbded
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/useChat.ts
@@ -0,0 +1,23 @@
+import type { Chat, ChatContact, ChatStatus } from '@db/apps/chat/types'
+
+export type ActiveChat = {
+ chat?: Chat
+ contact: ChatContact
+} | null
+
+export const useChat = () => {
+ const resolveAvatarBadgeVariant = (status: ChatStatus) => {
+ if (status === 'online')
+ return 'success'
+ if (status === 'busy')
+ return 'error'
+ if (status === 'away')
+ return 'warning'
+
+ return 'secondary'
+ }
+
+ return {
+ resolveAvatarBadgeVariant,
+ }
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/useChatStore.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/useChatStore.ts
new file mode 100644
index 0000000..7bc754c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/chat/useChatStore.ts
@@ -0,0 +1,93 @@
+import type { ActiveChat } from './useChat'
+import type { ChatContact, ChatContactWithChat, ChatMessage, ChatOut } from '@db/apps/chat/types'
+
+interface State {
+ chatsContacts: ChatContactWithChat[]
+ contacts: ChatContact[]
+ profileUser: ChatContact | undefined
+ activeChat: ActiveChat
+}
+
+export const useChatStore = defineStore('chat', {
+ // โน๏ธ arrow function recommended for full type inference
+ state: (): State => ({
+ contacts: [],
+ chatsContacts: [],
+ profileUser: undefined,
+ activeChat: null,
+ }),
+ actions: {
+ async fetchChatsAndContacts(q: string) {
+ const { data, error } = await useApi(createUrl('/apps/chat/chats-and-contacts', {
+ query: {
+ q,
+ },
+ }))
+
+ if (error.value) {
+ console.log(error.value)
+ }
+ else {
+ const { chatsContacts, contacts, profileUser } = data.value
+
+ this.chatsContacts = chatsContacts
+ this.contacts = contacts
+ this.profileUser = profileUser
+ }
+ },
+
+ async getChat(userId: ChatContact['id']) {
+ const res = await $api(`/apps/chat/chats/${userId}`)
+
+ this.activeChat = res
+ },
+
+ async sendMsg(message: ChatMessage['message']) {
+ const senderId = this.profileUser?.id
+
+ const response = await $api(`apps/chat/chats/${this.activeChat?.contact.id}`, {
+ method: 'POST',
+ body: { message, senderId },
+ })
+
+ const { msg, chat }: { msg: ChatMessage; chat: ChatOut } = response
+
+ // ? If it's not undefined => New chat is created (Contact is not in list of chats)
+ if (chat !== undefined) {
+ const activeChat = this.activeChat!
+
+ this.chatsContacts.push({
+ ...activeChat.contact,
+ chat: {
+ id: chat.id,
+ lastMessage: [],
+ unseenMsgs: 0,
+ messages: [msg],
+ },
+ })
+
+ if (this.activeChat) {
+ this.activeChat.chat = {
+ id: chat.id,
+ messages: [msg],
+ unseenMsgs: 0,
+ userId: this.activeChat?.contact.id,
+ }
+ }
+ }
+ else {
+ this.activeChat?.chat?.messages.push(msg)
+ }
+
+ // Set Last Message for active contact
+ const contact = this.chatsContacts.find(c => {
+ if (this.activeChat)
+ return c.id === this.activeChat.contact.id
+
+ return false
+ }) as ChatContactWithChat
+
+ contact.chat.lastMessage = msg
+ },
+ },
+})
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/ECommerceAddCategoryDrawer.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/ECommerceAddCategoryDrawer.vue
new file mode 100644
index 0000000..d335847
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/ECommerceAddCategoryDrawer.vue
@@ -0,0 +1,286 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Attachment
+
+
+
+
+ Choose
+
+
+
+
+
+
+
+
+
+
+
+ Description
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add
+
+
+ Discard
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/ECommerceAddCustomerDrawer.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/ECommerceAddCustomerDrawer.vue
new file mode 100644
index 0000000..01a4603
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/ECommerceAddCustomerDrawer.vue
@@ -0,0 +1,215 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Basic Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Shipping Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Use as a billing address?
+
+
+ Please check budget for more info
+
+
+
+
+
+
+
+
+
+ Add
+
+
+ Discard
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerBioPanel.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerBioPanel.vue
new file mode 100644
index 0000000..882efc0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerBioPanel.vue
@@ -0,0 +1,233 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ avatarText(props.customerData.customer) }}
+
+
+
+
+
+ {{ props.customerData.customer }}
+
+
+ Customer ID #{{ props.customerData.customerId }}
+
+
+
+
+
+
+
+
+
+ {{ props.customerData.order }}
+
+
+ Order
+
+
+
+
+
+
+
+
+
+ ${{ props.customerData.totalSpent }}
+
+
+ Spent
+
+
+
+
+
+
+
+
+
+ Details
+
+
+
+
+
+
+
+ Username:
+
+ {{ props.customerData.customer }}
+
+
+
+
+
+
+ Billing Email:
+
+ {{ props.customerData.email }}
+
+
+
+
+
+
+
+ Status:
+
+
+ {{ props.customerData.status }}
+
+
+
+
+
+
+ Contact:
+
+ {{ props.customerData.contact }}
+
+
+
+
+
+
+ Country:
+
+ {{ props.customerData.country }}
+
+
+
+
+
+
+
+
+ Edit Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Upgrade to premium
+
+
+ Upgrade customer to premium membership to access pro features.
+
+
+
+
+
+
+
+ Upgrade to Premium
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerOrderTable.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerOrderTable.vue
new file mode 100644
index 0000000..9e4ca4e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerOrderTable.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #{{ item.order }}
+
+
+
+
+
+ {{ new Date(item.date).toDateString() }}
+
+
+
+
+
+ {{ item.status }}
+
+
+
+
+
+ ${{ item.spent }}
+
+
+
+
+
+
+
+
+
+ View
+
+
+ Delete
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerTabAddressAndBilling.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerTabAddressAndBilling.vue
new file mode 100644
index 0000000..28b6919
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerTabAddressAndBilling.vue
@@ -0,0 +1,409 @@
+
+
+
+
+
+
+
+
+
+
+ Address Book
+
+
+ Add new Address
+
+
+
+
+
+
+
+
+
+
+ {{ address.title }}
+
+
+ Default Address
+
+
+
+ {{ address.subtitle }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ address.owner }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Payment Methods
+
+
+ Add Payment Methods
+
+
+
+
+
+
+
+
+
+
+
+ {{ payment.title }}
+
+
+ Default Method
+
+
+
+ {{ payment.subtitle }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name
+
+ Violet Mendoza
+
+
+
+ Number
+
+ **** 4487
+
+
+
+ Expires
+
+ 08/2028
+
+
+
+ Type
+
+ Master Card
+
+
+
+ Issuer
+
+ VICBANK
+
+
+
+ ID
+
+ DH73DJ8
+
+
+
+
+
+
+
+ Billing
+
+ United Kingdom
+
+
+
+ Number
+
+ +7634 983 637
+
+
+
+ Email
+
+ vafgot@vultukir.org
+
+
+
+ Origin
+
+
+ United States
+
+
+
+
+
+ CVC Check
+
+
+ Passed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerTabNotification.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerTabNotification.vue
new file mode 100644
index 0000000..d3e0fe4
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerTabNotification.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+ Notifications
+
+
+ You will receive notification for the below selected items.
+
+
+
+
+
+
+
+
+ TYPE
+
+
+ EMAIL
+
+
+ BROWSER
+
+
+ APP
+
+
+
+
+
+
+ {{ notification.type }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Save changes
+
+ Discard
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerTabOverview.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerTabOverview.vue
new file mode 100644
index 0000000..e5da863
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerTabOverview.vue
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+ Account Balance
+
+
+
+ $7480
+ Credit Left
+
+
+ Account balance for next purchase
+
+
+
+
+
+
+
+
+
+
+
+ Loyalty Program
+
+
+
+ Platinum member
+
+
+ 3000 points to next tier
+
+
+
+
+
+
+
+
+
+
+
+ Wishlist
+
+
+
+ 15
+ Items in wishlist
+
+
+ Receive notification when items go on sale
+
+
+
+
+
+
+
+
+
+
+
+ Coupons
+
+
+
+ 21
+ Coupons you win
+
+
+ Use coupon on next purchase
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerTabSecurity.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerTabSecurity.vue
new file mode 100644
index 0000000..57a56ca
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/customer/view/CustomerTabSecurity.vue
@@ -0,0 +1,193 @@
+
+
+
+
+
+
+
+
+
+
+ {}">
+
+
+
+
+
+
+
+
+
+
+ Change Password
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SMS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Two-factor authentication adds an additional layer of security to your account by requiring more than just a password to log in. Learn more .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.browser }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsCheckout.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsCheckout.vue
new file mode 100644
index 0000000..5e04676
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsCheckout.vue
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ To send SMS updates, you need to install an SMS App.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Discard
+
+ Save Changes
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsLocations.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsLocations.vue
new file mode 100644
index 0000000..5756744
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsLocations.vue
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ This is your default location. To change whether you fulfill online orders from this location, select another default location first.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Discard
+
+ Save Changes
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsNotifications.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsNotifications.vue
new file mode 100644
index 0000000..56f8293
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsNotifications.vue
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+ Customer
+
+
+
+
+
+ TYPE
+
+
+ EMAIL
+
+
+ APP
+
+
+
+
+
+
+
+ {{ notification.type }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Orders
+
+
+
+
+
+ TYPE
+
+
+ EMAIL
+
+
+ APP
+
+
+
+
+
+
+
+ {{ notification.type }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Shipping
+
+
+
+
+
+ TYPE
+
+
+ EMAIL
+
+
+ APP
+
+
+
+
+
+
+
+ {{ notification.type }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Discard
+
+ Save Changes
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsPayment.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsPayment.vue
new file mode 100644
index 0000000..9d6350c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsPayment.vue
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
+
+ Providers that enable you to accept payment methods at a rate set by the third-party. An additional fee will apply to new orders once you select a plan.
+
+
+ Choose a provider
+
+
+
+
+
+
+
+
+ Default
+
+
+
+
+
+
+
+
+ Activate PayPal
+
+
+
+
+
+
+ Provider
+
+
+ PayPal
+
+
+
+
+
+ Status
+
+
+ Inactive
+
+
+
+
+
+ Transaction Fee
+
+
+ 2.99%
+
+
+
+
+
+ Add Payment Methods
+
+
+
+
+
+
+
+ Payments that are made outside your online store. When a customer selects a manual payment method such as cash on delivery, you'll need to approve their order before it can be fulfilled.
+
+
+ Add Manual Payment Methods
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+
+
+ Discard
+
+
+ save changes
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsShippingAndDelivery.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsShippingAndDelivery.vue
new file mode 100644
index 0000000..f97d99e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsShippingAndDelivery.vue
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+ Create Zone
+
+
+
+
+
+
+
+
+
+
+
+ Domestic
+
+
+ United state of America
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RATE NAME
+ CONDITION
+ PRICE
+ ACTIONS
+
+
+
+
+ {{ data.rate }}
+ {{ data.condition }}
+ {{ data.price }}
+
+
+
+
+
+
+
+
+
+
+ Add rate
+
+
+
+
+
+
+
+
+
+ International
+
+
+ United state of America
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ RATE NAME
+ CONDITION
+ PRICE
+ ACTIONS
+
+
+
+
+ {{ data.rate }}
+ {{ data.condition }}
+ {{ data.price }}
+
+
+
+
+
+
+
+
+
+
+ Add rate
+
+
+
+
+
+
+
+ Discard
+
+ Save Changes
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsStoreDetails.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsStoreDetails.vue
new file mode 100644
index 0000000..0db8684
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/settings/SettingsStoreDetails.vue
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Confirm that you have access to johndoe@gmail.com in sender email
+ settings.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Time zone and units of measurement
+
+
+
+
+
+ Used to calculate product prices, shipping weights, and order times.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Your order ID will appear as #1001, #1002, #1003 ...
+
+
+
+
+
+
+ Discard
+
+ Save Changes
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/types.ts
new file mode 100644
index 0000000..8f1ec55
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/ecommerce/types.ts
@@ -0,0 +1,26 @@
+export interface ProductParams {
+ q: string
+ stock: string
+ category: string
+ status: string
+ options: object
+}
+
+export interface OrderParams {
+ q: string
+ options: object
+}
+
+export interface CustomerParams {
+ q: string
+ options: object
+}
+
+export interface ReviewParams {
+ q: string
+ options: object
+}
+
+export interface ReferralParams {
+ options: object
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/email/ComposeDialog.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/email/ComposeDialog.vue
new file mode 100644
index 0000000..6783b4a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/email/ComposeDialog.vue
@@ -0,0 +1,250 @@
+
+
+
+
+
+
+
+ Compose Mail
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ To:
+
+
+
+
+ Cc
+ |
+ Bcc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ send
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/email/EmailLeftSidebarContent.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/email/EmailLeftSidebarContent.vue
new file mode 100644
index 0000000..5b69efc
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/email/EmailLeftSidebarContent.vue
@@ -0,0 +1,269 @@
+
+
+
+
+
+
+
+ Compose
+
+
+
+
+
+
+
+
+
+
+
+ {{ folder.title }}
+
+
+
+
+
+ {{ folder.badge?.content }}
+
+
+
+
+
+
+
+
+ LABELS
+
+
+
+
+
+ {{ label.title }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/email/EmailView.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/email/EmailView.vue
new file mode 100644
index 0000000..b73d389
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/email/EmailView.vue
@@ -0,0 +1,435 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Delete Mail
+
+
+
+
+
+
+
+ Mark as Unread
+
+
+
+
+
+
+
+ Move to
+
+
+
+
+
+
+
+
+
+
+ {{ moveTo.action }}
+
+
+
+
+
+
+
+
+
+
+
+ Label
+
+
+
+
+
+
+
+
+
+ {{ label.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ props.email.from.name }}
+
+
+ {{ props.email.from.email }}
+
+
+
+
+
+
+
+ {{ new Date(props.email.time).toDateString() }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ props.email.from.name }},
+
+
+
+
+
+
+
+
+
+ 2 Attachments
+
+
+ {{ attachment.fileName }}
+
+
+
+
+
+
+
+
+
+ Click here to
+ Reply
+ or
+ Forward
+
+
+
+
+
+
+
+
+ Reply to {{ email?.from.name }}
+
+
+
+
+
+
+
+
+
+
+ Attachments
+
+
+ Send
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/email/useEmail.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/email/useEmail.ts
new file mode 100644
index 0000000..b1765e7
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/email/useEmail.ts
@@ -0,0 +1,109 @@
+import type { PartialDeep } from 'type-fest'
+import type { Email } from '@db/apps/email/types'
+
+export type MoveEmailToAction = 'inbox' | 'spam' | 'trash'
+
+export const useEmail = () => {
+ const route = useRoute('apps-email-filter')
+
+ const updateEmails = async (ids: Email['id'][], data: PartialDeep) => {
+ await $api('apps/email', {
+ method: 'POST',
+ body: JSON.stringify({ ids, data }),
+ })
+ }
+
+ const updateEmailLabels = async (ids: Email['id'][], label: Email['labels'][number]) => {
+ await $api('/apps/email', {
+ method: 'POST',
+ body: { ids, label },
+ })
+ }
+
+ const emailMoveToFolderActions: { action: MoveEmailToAction; icon: string }[] = [
+ { action: 'inbox', icon: 'tabler-mail' },
+ { action: 'spam', icon: 'tabler-alert-octagon' },
+ { action: 'trash', icon: 'tabler-trash' },
+ ]
+
+ const labels: { title: Email['labels'][number]; color: string }[] = [
+ {
+ title: 'personal',
+ color: 'success',
+
+ },
+ {
+ title: 'company',
+ color: 'primary',
+
+ },
+ {
+ title: 'important',
+ color: 'warning',
+
+ },
+ {
+ title: 'private',
+ color: 'error',
+
+ },
+ ]
+
+ const resolveLabelColor = (label: Email['labels'][number]) => {
+ if (label === 'personal')
+ return 'success'
+ if (label === 'company')
+ return 'primary'
+ if (label === 'important')
+ return 'warning'
+ if (label === 'private')
+ return 'error'
+
+ return 'secondary'
+ }
+
+ const shallShowMoveToActionFor = (action: MoveEmailToAction) => {
+ if (action === 'trash')
+ return route.params.filter !== 'trashed'
+
+ else if (action === 'inbox')
+ return !(route.params.filter === undefined || route.params.filter === 'sent' || route.params.filter === 'draft')
+
+ else if (action === 'spam')
+ return !(route.params.filter === 'spam' || route.params.filter === 'sent' || route.params.filter === 'draft')
+
+ return false
+ }
+
+ const moveSelectedEmailTo = async (action: MoveEmailToAction, selectedEmails: number[]) => {
+ const dataToUpdate: PartialDeep = {}
+
+ if (action === 'inbox') {
+ if (route.params.filter === 'trashed')
+ dataToUpdate.isDeleted = false
+ dataToUpdate.folder = 'inbox'
+ }
+
+ else if (action === 'spam') {
+ if (route.params.filter === 'trashed')
+ dataToUpdate.isDeleted = false
+ dataToUpdate.folder = 'spam'
+ }
+
+ else if (action === 'trash') {
+ dataToUpdate.isDeleted = true
+ }
+
+ await updateEmails(selectedEmails, dataToUpdate)
+ }
+
+ return {
+ labels,
+ resolveLabelColor,
+ shallShowMoveToActionFor,
+ emailMoveToFolderActions,
+ moveSelectedEmailTo,
+ updateEmails,
+ updateEmailLabels,
+ }
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/invoice/InvoiceAddPaymentDrawer.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/invoice/InvoiceAddPaymentDrawer.vue
new file mode 100644
index 0000000..33c3437
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/invoice/InvoiceAddPaymentDrawer.vue
@@ -0,0 +1,137 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Send
+
+
+
+ Cancel
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/invoice/InvoiceEditable.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/invoice/InvoiceEditable.vue
new file mode 100644
index 0000000..612923c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/invoice/InvoiceEditable.vue
@@ -0,0 +1,338 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ themeConfig.app.title }}
+
+
+
+
+
+ Office 149, 450 South Brand Brooklyn
+
+
+ San Diego County, CA 91905, USA
+
+
+ +1 (123) 456 7891, +44 (876) 543 2198
+
+
+
+
+
+
+
+
+
+
+
+ Invoice To:
+
+
+
+
+ {{ invoice.client.name }}
+
+
+ {{ invoice.client.company }}
+
+
+ {{ invoice.client.address }}, {{ invoice.client.country }}
+
+
+ {{ invoice.client.contact }}
+
+
+ {{ invoice.client.companyEmail }}
+
+
+
+
+
+ Bill To:
+
+
+
+
+
+
+ Total Due:
+
+ {{ props.data.paymentDetails.totalDue }}
+
+
+
+ Bank Name:
+
+ {{ props.data.paymentDetails.bankName }}
+
+
+
+ Country:
+
+ {{ props.data.paymentDetails.country }}
+
+
+
+ IBAN:
+
+
+
+ {{ props.data.paymentDetails.iban }}
+
+
+
+
+
+ SWIFT Code:
+
+ {{ props.data.paymentDetails.swiftCode }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Subtotal:
+
+
+
+ $1800
+
+
+
+
+
+ Discount:
+
+
+
+ $28
+
+
+
+
+
+ Tax:
+
+
+
+ 21%
+
+
+
+
+
+
+
+
+
+
+
+
+ Total:
+
+
+
+ $1690
+
+
+
+
+
+
+
+
+
+
+
+
+ Note:
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/invoice/InvoiceProductEdit.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/invoice/InvoiceProductEdit.vue
new file mode 100644
index 0000000..3d24427
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/invoice/InvoiceProductEdit.vue
@@ -0,0 +1,216 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Discount
+
+
0%
+
+ 0%
+ Tax 1
+
+
+ 0%
+ Tax 2
+
+
+
+
+
+
+
+
+ Price:
+ ${{ totalPrice }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/invoice/InvoiceSendInvoiceDrawer.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/invoice/InvoiceSendInvoiceDrawer.vue
new file mode 100644
index 0000000..f6a7106
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/invoice/InvoiceSendInvoiceDrawer.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Invoice Attached
+
+
+
+ Send
+
+
+
+ Cancel
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/invoice/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/invoice/types.ts
new file mode 100644
index 0000000..2ecf72e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/invoice/types.ts
@@ -0,0 +1,26 @@
+import type { Invoice, PaymentDetails } from '@db/apps/invoice/types'
+
+export interface PurchasedProduct {
+ title: string
+ cost: number
+ hours: number
+ description: string
+}
+
+export interface InvoiceData {
+ invoice: Invoice
+ paymentDetails: PaymentDetails
+ purchasedProducts: PurchasedProduct[]
+ note: string
+ paymentMethod: string
+ salesperson: string
+ thanksNote: string
+}
+
+export interface InvoiceParams {
+ q?: string
+ status?: string
+ startDate?: string
+ endDate?: string
+ options?: object
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/kanban/KanbanBoard.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/kanban/KanbanBoard.vue
new file mode 100644
index 0000000..4fa529a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/kanban/KanbanBoard.vue
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add New
+
+
+
+
+
+
+
+
+
+ Add
+
+
+ Cancel
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/kanban/KanbanBoardEditDrawer.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/kanban/KanbanBoardEditDrawer.vue
new file mode 100644
index 0000000..60b3a10
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/kanban/KanbanBoardEditDrawer.vue
@@ -0,0 +1,351 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.raw }}
+
+
+
+
+
+
+
+ Assigned
+
+
+
+
+
+
+
+
+
+ {{ item.raw.name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Choose
+
+
+
+
+
+
+
+ COMMENT
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Update
+
+
+ Delete
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/kanban/KanbanCard.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/kanban/KanbanCard.vue
new file mode 100644
index 0000000..0e21a1a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/kanban/KanbanCard.vue
@@ -0,0 +1,162 @@
+
+
+
+
+
+
+
+
+ {{ text }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/kanban/KanbanItems.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/kanban/KanbanItems.vue
new file mode 100644
index 0000000..0b47c03
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/kanban/KanbanItems.vue
@@ -0,0 +1,287 @@
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsCardStatistics.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsCardStatistics.vue
new file mode 100644
index 0000000..b6f2926
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsCardStatistics.vue
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.value }}
+
+
+
+ {{ data.title }}
+
+
+
+ {{ (data.change > 0) ? '+' : '' }} {{ data.change }}%
+
+
+ than last week
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsDeliveryExpectations.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsDeliveryExpectations.vue
new file mode 100644
index 0000000..725df82
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsDeliveryExpectations.vue
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsDeliveryPerformance.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsDeliveryPerformance.vue
new file mode 100644
index 0000000..1316dcb
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsDeliveryPerformance.vue
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+ 12% increase in this month
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.title }}
+
+
+
+
+
+
+
+
+ {{ data.value }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsOrderByCountries.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsOrderByCountries.vue
new file mode 100644
index 0000000..142d2c0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsOrderByCountries.vue
@@ -0,0 +1,342 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ tab }}
+
+
+
+
+
+
+
+
+
+
+ Sender
+
+
+ Myrtle Ullrich
+
+
+ 101 Boulder, California(CA), 95959
+
+
+
+
+ Receiver
+
+
+ Barry Schowalter
+
+
+ 939 Orange, California(CA), 92118
+
+
+
+
+
+
+
+ Sender
+
+
+ Veronica Herman
+
+
+ 162 Windsor, California(CA), 95492
+
+
+
+
+
+ Receiver
+
+
+ Helen Jacobs
+
+
+ 487 Sunset, California(CA), 94043
+
+
+
+
+
+
+
+
+
+
+
+ Sender
+
+
+ Myrtle Ullrich
+
+
+ 101 Boulder, California(CA), 95959
+
+
+
+
+ Receiver
+
+
+ Barry Schowalter
+
+
+ 939 Orange, California(CA), 92118
+
+
+
+
+
+
+
+ Sender
+
+
+ Veronica Herman
+
+
+ 162 Windsor, California(CA), 95492
+
+
+
+
+
+ Receiver
+
+
+ Helen Jacobs
+
+
+ 487 Sunset, California(CA), 94043
+
+
+
+
+
+
+
+
+
+
+
+ Sender
+
+
+ Myrtle Ullrich
+
+
+ 101 Boulder, California(CA), 95959
+
+
+
+
+ Receiver
+
+
+ Barry Schowalter
+
+
+ 939 Orange, California(CA), 92118
+
+
+
+
+
+
+
+ Sender
+
+
+ Veronica Herman
+
+
+ 162 Windsor, California(CA), 95492
+
+
+
+
+
+ Receiver
+
+
+ Helen Jacobs
+
+
+ 487 Sunset, California(CA), 94043
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsOverviewTable.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsOverviewTable.vue
new file mode 100644
index 0000000..f38a3e8
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsOverviewTable.vue
@@ -0,0 +1,141 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ VOL-{{ item.location }}
+
+
+
+
+
+ {{ item.startCity }}, {{ item.startCountry }}
+
+
+
+ {{ item.endCity }}, {{ item.endCountry }}
+
+
+
+
+ {{ item.warnings }}
+
+
+
+
+
+
+
+
+
+ {{ item.progress }}%
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsShipmentStatistics.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsShipmentStatistics.vue
new file mode 100644
index 0000000..0d41f78
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsShipmentStatistics.vue
@@ -0,0 +1,235 @@
+
+
+
+
+
+
+
+ January
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsVehicleOverview.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsVehicleOverview.vue
new file mode 100644
index 0000000..7e6cb7b
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/LogisticsVehicleOverview.vue
@@ -0,0 +1,168 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ On the way
+
+
+
+ 39.7%
+
+
+
+
+
+ Unloading
+
+
+
+ 28.3%
+
+
+
+
+
+ Loading
+
+
+
+ 17.4%
+
+
+
+
+
+ Waiting
+
+
+
+ 14.6%
+
+
+
+
+
+
+
+
+
+
+
+ {{ vehicle.title }}
+
+
+
+
+
+ {{ vehicle.time }}
+
+
+
+
+ {{ vehicle.percentage }}%
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/types.d.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/types.d.ts
new file mode 100644
index 0000000..feb4520
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/logistics/types.d.ts
@@ -0,0 +1,3 @@
+export interface vehicleParams{
+ options: object,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/roles/RoleCards.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/roles/RoleCards.vue
new file mode 100644
index 0000000..43609b2
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/roles/RoleCards.vue
@@ -0,0 +1,314 @@
+
+
+
+
+
+
+
+
+
+ Total {{ item.users.length }} users
+
+
+
+
+
+
+
+
+
+
+
+
+ +{{ item.users.length - 3 }}
+
+
+
+
+
+
+
+
+
+ {{ item.role }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add New Role
+
+
+ Add new role, if it doesn't exist.
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/roles/UserList.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/roles/UserList.vue
new file mode 100644
index 0000000..ac5d563
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/roles/UserList.vue
@@ -0,0 +1,318 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+
+
+ {{ item.fullName }}
+
+
+
+ {{ item.email }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.role }}
+
+
+
+
+
+
+
+ {{ item.currentPlan }}
+
+
+
+
+
+
+ {{ item.status }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ View
+
+
+
+
+
+
+ Edit
+
+
+
+
+
+
+ Delete
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/list/AddNewUserDrawer.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/list/AddNewUserDrawer.vue
new file mode 100644
index 0000000..248b8c4
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/list/AddNewUserDrawer.vue
@@ -0,0 +1,218 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+ Cancel
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/types.ts
new file mode 100644
index 0000000..7e9bf62
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/types.ts
@@ -0,0 +1,7 @@
+export interface UserParams {
+ q: string
+ role: string
+ plan: string
+ status: string
+ options: object
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserBioPanel.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserBioPanel.vue
new file mode 100644
index 0000000..27273d2
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserBioPanel.vue
@@ -0,0 +1,363 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ avatarText(props.userData.fullName) }}
+
+
+
+
+
+ {{ props.userData.fullName }}
+
+
+
+
+ {{ props.userData.role }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ `${(props.userData.taskDone / 1000).toFixed(2)}k` }}
+
+
+ Task Done
+
+
+
+
+
+
+
+
+
+
+ {{ kFormatter(props.userData.projectDone) }}
+
+ Project Done
+
+
+
+
+
+
+ Details
+
+
+
+
+
+
+
+
+
+ Username:
+
+ {{ props.userData.fullName }}
+
+
+
+
+
+
+
+
+ Billing Email:
+
+
+ {{ props.userData.email }}
+
+
+
+
+
+
+
+ Status:
+
+ {{ props.userData.status }}
+
+
+
+
+
+
+
+
+ Role:
+
+ {{ props.userData.role }}
+
+
+
+
+
+
+
+
+ Tax ID:
+
+ {{ props.userData.taxId }}
+
+
+
+
+
+
+
+
+ Contact:
+
+ {{ props.userData.contact }}
+
+
+
+
+
+
+
+
+ Language:
+
+ {{ props.userData.language }}
+
+
+
+
+
+
+
+
+ Country:
+
+ {{ props.userData.country }}
+
+
+
+
+
+
+
+
+
+
+ Edit
+
+
+
+ Suspend
+
+
+
+
+
+
+
+
+
+
+
+
+ Popular
+
+
+
+
+
+
+ $
+
+ 99
+
+ / month
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Days
+
+
+ 26 of 30 Days
+
+
+
+
+
+
+
+ 4 days remaining
+
+
+
+
+
+
+ Upgrade Plan
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserInvoiceTable.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserInvoiceTable.vue
new file mode 100644
index 0000000..b8560ab
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserInvoiceTable.vue
@@ -0,0 +1,217 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #{{ item.id }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.invoiceStatus }}
+
+
+ Balance: {{ item.balance }}
+
+
+ Due date: {{ item.dueDate }}
+
+
+
+
+
+
+ ${{ item.total }}
+
+
+
+
+ {{ item.issuedDate }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserTabAccount.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserTabAccount.vue
new file mode 100644
index 0000000..ea28d7a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserTabAccount.vue
@@ -0,0 +1,373 @@
+
+
+
+
+
+
+
+
+ User's Projects List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+ {{ item.project }}
+
+
+
+
+
+
+
+ {{ item.leader }}
+
+
+
+
+
+
+
+
+
+
+
+
+ +{{ item.extraMembers }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.progress }}%
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 12 Invoices have been paid
+
+ 12 min ago
+
+
+
+
+ Invoices have been paid to the company
+
+
+
+
+
+ invoice.pdf
+
+
+
+
+
+
+
+
+
+
+ Client Meeting
+
+
45 min ago
+
+
+
+ Project meeting with john @10:15am
+
+
+
+
+
+
+
+
+
+ Lester McCarthy (Client)
+
+
CEO of Pixinvent
+
+
+
+
+
+
+
+
+
+
+
+ Create a new project for client
+
+ 2 Day Ago
+
+
+
+
+ 6 team members in a project
+
+
+
+
+
+
+ John Doe
+
+
+
+
+
+
+ Jennie Obrien
+
+
+
+
+
+
+ Peter Harper
+
+
+
+
+ +3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserTabBillingsPlans.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserTabBillingsPlans.vue
new file mode 100644
index 0000000..bc23ab9
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserTabBillingsPlans.vue
@@ -0,0 +1,438 @@
+
+
+
+
+
+
+
+
+
+
+
+ Your Current Plan is Basic
+
+
+ A simple start for everyone
+
+
+
+ Active until Dec 09, 2021
+
+
+ We will send you a notification upon Subscription expiration
+
+
+
+ $99 Per Month
+
+ Popular
+
+
+
+ Standard plan for small to medium businesses
+
+
+
+
+
+
+
+ We need your attention!
+
+
+ Your plan requires update
+
+
+
+
+
+
+ Days
+
+
+ 26 of 30 Days
+
+
+
+
+
+ Your plan requires update
+
+
+
+
+
+
+ upgrade plan
+
+
+
+ Cancel Subscription
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Add Card
+
+
+
+
+
+
+
+
+
+
+ {{ card.name }}
+
+
+ {{ card.isPrimary ? 'Popular' : card.isExpired ? 'Expired' : '' }}
+
+
+
+ **** **** **** {{ card.number.substring(card.number.length - 4) }}
+
+
+
+
+
+
+ Edit
+
+
+ Delete
+
+
+
+
+ Card expires at {{ card.expiry }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Edit Address
+
+
+
+
+
+
+
+
+
+
+ Company Name:
+
+
+
+
+ {{ currentAddress.companyName }}
+
+
+
+
+
+
+ Billing Email:
+
+
+
+
+ {{ currentAddress.billingEmail }}
+
+
+
+
+
+
+ Tax ID:
+
+
+
+
+ {{ currentAddress.taxID }}
+
+
+
+
+
+
+ VAT Number:
+
+
+
+
+ {{ currentAddress.vatNumber }}
+
+
+
+
+
+
+ Billing Address:
+
+
+
+
+ {{ currentAddress.address }}
+
+
+
+
+
+
+
+
+
+
+
+ Contact:
+
+
+
+
+ {{ currentAddress.contact }}
+
+
+
+
+
+
+ Country:
+
+
+
+
+ {{ currentAddress.country }}
+
+
+
+
+
+
+ State:
+
+
+
+
+ {{ currentAddress.state }}
+
+
+
+
+
+
+ Zip Code:
+
+
+
+
+ {{ currentAddress.zipCode }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserTabConnections.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserTabConnections.vue
new file mode 100644
index 0000000..ca03a2f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserTabConnections.vue
@@ -0,0 +1,181 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ account.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ account.title }}
+
+
+
+
+
+
+
+ {{ account.username }}
+
+
+
+
+ Not connected
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserTabNotifications.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserTabNotifications.vue
new file mode 100644
index 0000000..928871a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserTabNotifications.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+ TYPE
+
+
+ EMAIL
+
+
+ BROWSER
+
+
+ APP
+
+
+
+
+
+
+
+ {{ notification.type }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Save changes
+
+ Discard
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserTabSecurity.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserTabSecurity.vue
new file mode 100644
index 0000000..e6da78c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/apps/user/view/UserTabSecurity.vue
@@ -0,0 +1,178 @@
+
+
+
+
+
+
+
+
+
+
+ { }">
+
+
+
+
+
+
+
+
+
+
+ Change Password
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SMS
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Two-factor authentication adds an additional layer of security to your account by requiring more than just a password to log in. Learn more .
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.browser }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartAreaChart.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartAreaChart.vue
new file mode 100644
index 0000000..77a9be8
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartAreaChart.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartBalance.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartBalance.vue
new file mode 100644
index 0000000..431d501
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartBalance.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartDailySalesStates.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartDailySalesStates.vue
new file mode 100644
index 0000000..fff5ea6
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartDailySalesStates.vue
@@ -0,0 +1,70 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartDataScience.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartDataScience.vue
new file mode 100644
index 0000000..c21539f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartDataScience.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartExpenseRatio.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartExpenseRatio.vue
new file mode 100644
index 0000000..e9713a2
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartExpenseRatio.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartHorizontalBar.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartHorizontalBar.vue
new file mode 100644
index 0000000..be2afd1
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartHorizontalBar.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartMobileComparison.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartMobileComparison.vue
new file mode 100644
index 0000000..3b785ff
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartMobileComparison.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartNewTechnologiesData.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartNewTechnologiesData.vue
new file mode 100644
index 0000000..3ff9116
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartNewTechnologiesData.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartStatistics.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartStatistics.vue
new file mode 100644
index 0000000..fa41a4f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartStatistics.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartStocksPrices.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartStocksPrices.vue
new file mode 100644
index 0000000..7e777a7
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/apex-chart/ApexChartStocksPrices.vue
@@ -0,0 +1,80 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsBarChart.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsBarChart.vue
new file mode 100644
index 0000000..3b5b023
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsBarChart.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsBubbleChart.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsBubbleChart.vue
new file mode 100644
index 0000000..16c98a6
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsBubbleChart.vue
@@ -0,0 +1,70 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsHorizontalBarChart.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsHorizontalBarChart.vue
new file mode 100644
index 0000000..903d2cb
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsHorizontalBarChart.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsLineAreaChart.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsLineAreaChart.vue
new file mode 100644
index 0000000..c258a48
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsLineAreaChart.vue
@@ -0,0 +1,91 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsLineChart.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsLineChart.vue
new file mode 100644
index 0000000..4d3a9ee
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsLineChart.vue
@@ -0,0 +1,76 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsPolarAreaChart.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsPolarAreaChart.vue
new file mode 100644
index 0000000..69630dc
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsPolarAreaChart.vue
@@ -0,0 +1,36 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsRadarChart.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsRadarChart.vue
new file mode 100644
index 0000000..6085f6a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsRadarChart.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsScatterChart.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsScatterChart.vue
new file mode 100644
index 0000000..3226fc0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/ChartJsScatterChart.vue
@@ -0,0 +1,104 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/types.ts
new file mode 100644
index 0000000..8bdcb35
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/charts/chartjs/types.ts
@@ -0,0 +1,20 @@
+export interface ChartJsCustomColors {
+ white: string
+ yellow: string
+ primary: string
+ areaChartBlue: string
+ barChartYellow: string
+ polarChartGrey: string
+ polarChartInfo: string
+ lineChartYellow: string
+ polarChartGreen: string
+ lineChartPrimary: string
+ lineChartWarning: string
+ horizontalBarInfo: string
+ polarChartWarning: string
+ scatterChartGreen: string
+ warningShade: string
+ areaChartBlueLight: string
+ areaChartGreyLight: string
+ scatterChartWarning: string
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsAverageDailySales.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsAverageDailySales.vue
new file mode 100644
index 0000000..99626e7
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsAverageDailySales.vue
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+ Average Daily Sales
+
+
+ Total Sales This Month
+
+
+ $28,450
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsEarningReportsWeeklyOverview.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsEarningReportsWeeklyOverview.vue
new file mode 100644
index 0000000..fb3fad3
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsEarningReportsWeeklyOverview.vue
@@ -0,0 +1,222 @@
+
+
+
+
+
+ Earning Reports
+ Weekly Earnings Overview
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $468
+
+
+ +4.2%
+
+
+
+
+ You informed of this week compared to last week
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ report.title }}
+
+
+
+ {{ report.amount }}
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsMonthlyCampaignState.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsMonthlyCampaignState.vue
new file mode 100644
index 0000000..c0d05ec
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsMonthlyCampaignState.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+ Monthly Campaign State
+
+ 8.52k Social Visitors
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ state.title }}
+
+
+
+
+
+ {{ state.count }}
+
+
+ {{ state.stats }}
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsProjectTable.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsProjectTable.vue
new file mode 100644
index 0000000..19b40be
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsProjectTable.vue
@@ -0,0 +1,163 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+ {{ item.project }}
+
+
+
+
+
+
+
+ {{ item.leader }}
+
+
+
+
+
+
+
+
+
+
+
+
+ +{{ item.extraMembers }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.progress }}%
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsSalesByCountries.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsSalesByCountries.vue
new file mode 100644
index 0000000..00aad6d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsSalesByCountries.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ country.stats }}
+
+
+ {{ country.subtitle }}
+
+
+
+
+
+
+ {{ Math.abs(country.profitLoss) }}%
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsSalesOverview.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsSalesOverview.vue
new file mode 100644
index 0000000..357f686
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsSalesOverview.vue
@@ -0,0 +1,110 @@
+
+
+
+
+
+ Sales Overview
+
+
+ +18.2%
+
+
+
+ $42.5k
+
+
+
+
+
+
+
+
+
+
+
+ Order
+
+
+ 62.2%
+
+
+ 6,440
+
+
+
+
+
+
+
+
+
+
+
+ Visits
+
+
+
+
+
+ 25.5%
+
+
+ 12,749
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsSourceVisits.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsSourceVisits.vue
new file mode 100644
index 0000000..3aecbb9
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsSourceVisits.vue
@@ -0,0 +1,124 @@
+
+
+
+
+
+ Source Visits
+
+ 38.4k Visitors
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ visit.title }}
+
+
+ {{ visit.subtitle }}
+
+
+
+
+
+ {{ visit.stats }}
+
+
+ {{ visit.profitLoss > 0 ? '+' : '' }}
+ {{ visit.profitLoss }}%
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsSupportTracker.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsSupportTracker.vue
new file mode 100644
index 0000000..cd88a91
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsSupportTracker.vue
@@ -0,0 +1,203 @@
+
+
+
+
+
+ Support Tracker
+ Last 7 Days
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 164
+
+
+ Total Tickets
+
+
+
+
+
+
+ {{ ticket.title }}
+
+
+ {{ ticket.subtitle }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsTotalEarning.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsTotalEarning.vue
new file mode 100644
index 0000000..6116314
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsTotalEarning.vue
@@ -0,0 +1,297 @@
+
+
+
+
+
+ Total Earning
+
+
+
+ 87%
+
+
+
+ 25.8%
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ earning.title }}
+
+
+ {{ earning.subtitle }}
+
+
+
+
+
+
+
+
+ {{ earning.earning }}
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsWebsiteAnalytics.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsWebsiteAnalytics.vue
new file mode 100644
index 0000000..24062e3
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/AnalyticsWebsiteAnalytics.vue
@@ -0,0 +1,188 @@
+
+
+
+
+
+
+
+
+
+
+ Website Analytics
+
+
+ Total 28.5% Conversion Rate
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+ {{ d.number }}
+
+ {{ d.text }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/types.d.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/types.d.ts
new file mode 100644
index 0000000..68c0ae0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/analytics/types.d.ts
@@ -0,0 +1,5 @@
+export interface ProjectParams {
+ q?: string,
+ perPage: number,
+ currentPage: number,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmActiveProject.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmActiveProject.vue
new file mode 100644
index 0000000..5e63c96
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmActiveProject.vue
@@ -0,0 +1,125 @@
+
+
+
+
+
+ Active Projects
+
+ Average 72% completed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ project.title }}
+
+
+ {{ project.subtitle }}
+
+
+
+
+
+
+
+
{{ project.stats }}%
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmActivityTimeline.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmActivityTimeline.vue
new file mode 100644
index 0000000..e4e06f0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmActivityTimeline.vue
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Activity Timeline
+
+
+
+
+
+
+
+
+
+ 12 Invoices have been paid
+
+ 12 min ago
+
+
+
+
+ Invoices have been paid to the company
+
+
+
+
+
+ invoice.pdf
+
+
+
+
+
+
+
+
+
+
+ Client Meeting
+
+
45 min ago
+
+
+
+ Project meeting with john @10:15am
+
+
+
+
+
+
+
+
+
+ Lester McCarthy (Client)
+
+
CEO of Pixinvent
+
+
+
+
+
+
+
+
+
+
+
+ Create a new project for client
+
+ 2 Day Ago
+
+
+
+
+ 6 team members in a project
+
+
+
+
+
+
+ John Doe
+
+
+
+
+
+
+ Jennie Obrien
+
+
+
+
+
+
+ Peter Harper
+
+
+
+
+ +3
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmAnalyticsSales.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmAnalyticsSales.vue
new file mode 100644
index 0000000..bee612a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmAnalyticsSales.vue
@@ -0,0 +1,139 @@
+
+
+
+
+
+ Sales
+ Last 6 Months
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmEarningReportsYearlyOverview.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmEarningReportsYearlyOverview.vue
new file mode 100644
index 0000000..c775ecc
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmEarningReportsYearlyOverview.vue
@@ -0,0 +1,668 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ report.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmOrderBarChart.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmOrderBarChart.vue
new file mode 100644
index 0000000..abf979a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmOrderBarChart.vue
@@ -0,0 +1,223 @@
+
+
+
+
+
+ Orders
+ Last Week
+
+
+
+
+
+
+
+ 124k
+
+
+ +12.6%
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmProjectStatus.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmProjectStatus.vue
new file mode 100644
index 0000000..497c54a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmProjectStatus.vue
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $4,3742
+
+
+
+
+
+ Your Earnings
+
+
+
+ +10.2%
+
+
+
+
+
+
+
+
+
+ {{ status.title }}
+
+
+ {{ status.amount }}
+ {{ prefixWithPlus(status.lossProfit) }}
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmRecentTransactions.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmRecentTransactions.vue
new file mode 100644
index 0000000..f680392
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmRecentTransactions.vue
@@ -0,0 +1,174 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CARD
+ DATE
+ STATUS
+
+ TREND
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ transition.lastDigit }}
+
+
+ {{ transition.cardType }}
+
+
+
+
+
+
+ Sent
+
+
+ {{ transition.sentDate }}
+
+
+
+
+ {{ transition.status }}
+
+
+
+
+ {{ transition.trend }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmRevenueGrowth.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmRevenueGrowth.vue
new file mode 100644
index 0000000..6b5a761
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmRevenueGrowth.vue
@@ -0,0 +1,221 @@
+
+
+
+
+
+
+
+
+ Revenue Growth
+
+
+ Weekly Report
+
+
+
+
+
+ $4,673
+
+
+ +15.2%
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmSalesAreaCharts.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmSalesAreaCharts.vue
new file mode 100644
index 0000000..19e3151
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmSalesAreaCharts.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+ Sales
+
+
+ Last Year
+
+
+
+
+
+
+
+
+ 175k
+
+
+ -16.2%
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmSalesByCountries.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmSalesByCountries.vue
new file mode 100644
index 0000000..7bbd31a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmSalesByCountries.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ country.stats }}
+
+
+ {{ country.subtitle }}
+
+
+
+
+
+
+ {{ Math.abs(country.profitLoss) }}%
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmSessionsBarWithGapCharts.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmSessionsBarWithGapCharts.vue
new file mode 100644
index 0000000..4460ea3
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/crm/CrmSessionsBarWithGapCharts.vue
@@ -0,0 +1,235 @@
+
+
+
+
+
+
+
+ Sessions
+
+
+ This Month
+
+
+
+
+
+
+
+ 45.1k
+
+
+ +12.6%
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceCongratulationsJohn.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceCongratulationsJohn.vue
new file mode 100644
index 0000000..d9bcf71
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceCongratulationsJohn.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+ Congratulations John! ๐
+
+
+ Best seller of the month
+
+
+ $48.9k
+
+ View Sales
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceEarningReports.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceEarningReports.vue
new file mode 100644
index 0000000..5d10cc1
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceEarningReports.vue
@@ -0,0 +1,193 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ report.title }}
+
+
+ {{ report.subtitle }}
+
+
+
+
+ {{ report.earnings }}
+
+ {{ report.percentage }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceExpensesRadialBarCharts.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceExpensesRadialBarCharts.vue
new file mode 100644
index 0000000..7b129a8
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceExpensesRadialBarCharts.vue
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+ 82.5K
+
+
+ Expenses
+
+
+
+
+
+
+ $21k Expenses more than last month
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceGeneratedLeads.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceGeneratedLeads.vue
new file mode 100644
index 0000000..4c988a3
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceGeneratedLeads.vue
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
+
+ Generated Leads
+
+
+ Monthly Report
+
+
+
+
+
+ 4,350
+
+
+
+ 15.8%
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceInvoiceTable.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceInvoiceTable.vue
new file mode 100644
index 0000000..edf4bb7
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceInvoiceTable.vue
@@ -0,0 +1,273 @@
+
+
+
+
+
+
+
+
+
+
+ Create invoice
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #{{ item.id }}
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.invoiceStatus }}
+
+
+ Balance: {{ item.balance }}
+
+
+ Due date: {{ item.dueDate }}
+
+
+
+
+
+
+ ${{ item.total }}
+
+
+
+
+ {{ item.issuedDate }}
+
+
+
+
+
+ {{ (resolveInvoiceBalanceVariant(item.balance, item.total)).status }}
+
+
+
+
+ {{ Number((resolveInvoiceBalanceVariant(item.balance, item.total)).status) > 0 ? `$${(resolveInvoiceBalanceVariant(item.balance, item.total)).status}` : `-$${Math.abs(Number((resolveInvoiceBalanceVariant(item.balance, item.total)).status))}` }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceOrder.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceOrder.vue
new file mode 100644
index 0000000..eca7c61
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceOrder.vue
@@ -0,0 +1,343 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ tab }}
+
+
+
+
+
+
+
+
+
+
+ Sender
+
+
+ Myrtle Ullrich
+
+
+ 101 Boulder, California(CA), 95959
+
+
+
+
+ Receiver
+
+
+ Barry Schowalter
+
+
+ 939 Orange, California(CA), 92118
+
+
+
+
+
+
+
+ Sender
+
+
+ Veronica Herman
+
+
+ 162 Windsor, California(CA), 95492
+
+
+
+
+
+ Receiver
+
+
+ Helen Jacobs
+
+
+ 487 Sunset, California(CA), 94043
+
+
+
+
+
+
+
+
+
+
+
+ Sender
+
+
+ Myrtle Ullrich
+
+
+ 101 Boulder, California(CA), 95959
+
+
+
+
+ Receiver
+
+
+ Barry Schowalter
+
+
+ 939 Orange, California(CA), 92118
+
+
+
+
+
+
+
+ Sender
+
+
+ Veronica Herman
+
+
+ 162 Windsor, California(CA), 95492
+
+
+
+
+
+ Receiver
+
+
+ Helen Jacobs
+
+
+ 487 Sunset, California(CA), 94043
+
+
+
+
+
+
+
+
+
+
+
+ Sender
+
+
+ Myrtle Ullrich
+
+
+ 101 Boulder, California(CA), 95959
+
+
+
+
+ Receiver
+
+
+ Barry Schowalter
+
+
+ 939 Orange, California(CA), 92118
+
+
+
+
+
+
+
+ Sender
+
+
+ Veronica Herman
+
+
+ 162 Windsor, California(CA), 95492
+
+
+
+
+
+ Receiver
+
+
+ Helen Jacobs
+
+
+ 487 Sunset, California(CA), 94043
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommercePopularProducts.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommercePopularProducts.vue
new file mode 100644
index 0000000..7c00e32
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommercePopularProducts.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ product.title }}
+
+
+ {{ product.subtitle }}
+
+
+
+
+ {{ product.stats }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceRevenueReport.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceRevenueReport.vue
new file mode 100644
index 0000000..dbb0f72
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceRevenueReport.vue
@@ -0,0 +1,431 @@
+
+
+
+
+
+
+
+
+ Revenue Report
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+ $25,825
+
+
+ Budget:
+ 56,800
+
+
+
+
+
+
+ Increase Budget
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceStatistics.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceStatistics.vue
new file mode 100644
index 0000000..52c3332
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceStatistics.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+ Updated 1 month ago
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.stats }}
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceTotalProfitLineCharts.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceTotalProfitLineCharts.vue
new file mode 100644
index 0000000..c424e8f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceTotalProfitLineCharts.vue
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+ Profit
+
+
+ Last Month
+
+
+
+
+
+
+
+ 624k
+
+
+ +8.24%
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceTransactions.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceTransactions.vue
new file mode 100644
index 0000000..f8e6e0d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/dashboards/ecommerce/EcommerceTransactions.vue
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ transition.title }}
+
+
+ {{ transition.subtitle }}
+
+
+
+
+ {{ transition.stats }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertBasic.vue
new file mode 100644
index 0000000..e2d695c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertBasic.vue
@@ -0,0 +1,13 @@
+
+
+
+ Good Morning! Start your day with some alerts.
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertBorder.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertBorder.vue
new file mode 100644
index 0000000..3ec18e1
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertBorder.vue
@@ -0,0 +1,35 @@
+
+
+
+ Good Morning! Start your day with some alerts.
+
+
+
+ Good Morning! Start your day with some alerts.
+
+
+
+ Good Morning! Start your day with some alerts.
+
+
+
+ Good Morning! Start your day with some alerts.
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertClosable.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertClosable.vue
new file mode 100644
index 0000000..f487ab9
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertClosable.vue
@@ -0,0 +1,24 @@
+
+
+
+
+ Pudding wafer I love chocolate bar wafer chupa chups wafer. Cake gummies pudding gummies cake.
+
+
+
+
+
+ Reset
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertColoredBorder.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertColoredBorder.vue
new file mode 100644
index 0000000..f3eba6c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertColoredBorder.vue
@@ -0,0 +1,42 @@
+
+
+
+ Cake sweet roll sesame snaps cheesecake halvah apple pie gingerbread cake.
+
+
+ Cookie brownie tootsie roll pudding biscuit chupa chups. Dragรฉe gingerbread carrot.
+
+
+ Gingerbread jelly beans macaroon croissant soufflรฉ. Muffin halvah cake brownie cake.
+
+
+ Muffin I love wafer pudding caramels jelly beans fruitcake I love cotton candy.
+
+
+
+ Cake sweet roll sesame snaps cheesecake halvah apple pie gingerbread cake.
+
+
+
+ Lemon drops tootsie roll liquorice marzipan lollipop I love tiramisu tootsie roll.
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertColors.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertColors.vue
new file mode 100644
index 0000000..668683e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertColors.vue
@@ -0,0 +1,27 @@
+
+
+
+ I'm an alert with primary background color.
+
+
+
+ I'm an alert with secondary background color.
+
+
+
+ I'm an alert with success background color.
+
+
+
+ I'm an alert with info background color.
+
+
+
+ I'm an alert with warning background color.
+
+
+
+ I'm an alert with error background color.
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertDensity.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertDensity.vue
new file mode 100644
index 0000000..4de7191
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertDensity.vue
@@ -0,0 +1,27 @@
+
+
+
+ I'm a compact alert with a color of primary.
+
+
+
+ I'm a comfortable alert with the variant prop and a color of secondary.
+
+
+
+ I'm a default alert with the color of success.
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertElevation.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertElevation.vue
new file mode 100644
index 0000000..36d50e2
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertElevation.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+ I'm an alert with box shadow.
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertIcons.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertIcons.vue
new file mode 100644
index 0000000..d30d493
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertIcons.vue
@@ -0,0 +1,26 @@
+
+
+
+ Suspendisse enim turpis, dictum sed, iaculis a, condimentum nec, nisi.
+
+
+
+ Phasellus blandit leo ut odio. Morbi mattis ullamcorper velit.
+
+
+
+ Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus.
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertOutlined.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertOutlined.vue
new file mode 100644
index 0000000..30955e4
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertOutlined.vue
@@ -0,0 +1,45 @@
+
+
+
+ Duis vel nibh at velit scelerisque suscipit. Praesent blandit laoreet nibh. Aenean posuere, tortor sed cursus feugiat, nunc augue blandit nunc.
+
+
+
+ Praesent venenatis metus at tortor pulvinar varius. Aenean commodo ligula eget dolor. Praesent ac massa at ligula laoreet iaculis.
+
+
+
+ Duis arcu tortor, suscipit eget, imperdiet nec, imperdiet iaculis, ipsum. Suspendisse non nisl sit amet velit hendrerit rutrum.
+
+
+
+ Marshmallow jelly beans toffee. Sweet roll lemon drops muffin biscuit. Gummies jujubes halvah dessert cream croissant.
+
+
+
+ Tootsie roll candy canes wafer icing sweet jelly macaroon. Caramels icing fruitcake chocolate cake cake donut.
+
+
+
+ Jelly beans dragรฉe jelly. Cotton candy danish chocolate cake. Carrot cake pastry jelly beans gummi bears.
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertProminent.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertProminent.vue
new file mode 100644
index 0000000..e479ed5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertProminent.vue
@@ -0,0 +1,28 @@
+
+
+
+
+ Macaroon I love tiramisu I love wafer apple pie jelly beans shortbread.
+
+
+
+
+ Cotton candy tart tiramisu lollipop gummi bears oat cake cupcake macaroon.
+
+
+
+ Ice cream candy I love wafer bonbon gingerbread candy canes tiramisu.
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertTonal.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertTonal.vue
new file mode 100644
index 0000000..5c53c78
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertTonal.vue
@@ -0,0 +1,45 @@
+
+
+
+ Maecenas nec odio et ante tincidunt tempus. Sed mollis, eros et ultrices tempus.
+
+
+
+ Nullam tincidunt adipiscing enim. In consectetuer turpis ut velit.
+
+
+
+ Vestibulum ullamcorper mauris at ligula. Nulla porta dolor.
+
+
+
+ Praesent blandit laoreet nibh. Praesent nonummy mi in odio. Phasellus tempus. Mauris turpis nunc.
+
+
+
+ Marzipan topping croissant cake sweet roll ice cream soufflรฉ chocolate. Jelly beans chupa chups tootsie roll biscuit.
+
+
+
+ Marzipan topping croissant cake sweet roll ice cream soufflรฉ chocolate. Jelly beans chupa chups tootsie roll biscuit.
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertType.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertType.vue
new file mode 100644
index 0000000..5af7531
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertType.vue
@@ -0,0 +1,19 @@
+
+
+
+ I'm a alert with a type of info
+
+
+
+ I'm a alert with a type of success
+
+
+
+ I'm a alert with a type of warning
+
+
+
+ I'm a alert with a type of error
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertVModelSupport.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertVModelSupport.vue
new file mode 100644
index 0000000..9f6a503
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/DemoAlertVModelSupport.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+ non adipiscing dolor urna a orci. Sed mollis, eros et ultrices tempus, mauris ipsum aliquam libero, non adipiscing dolor urna a orci. Curabitur blandit mollis lacus. Curabitur ligula sapien, tincidunt non, euismod vitae, posuere imperdiet, leo.
+
+
+
+
+
+ {{ isAlertVisible ? "Hide Alert" : "Show Alert" }}
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/demoCodeAlert.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/demoCodeAlert.ts
new file mode 100644
index 0000000..91e44fd
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/alert/demoCodeAlert.ts
@@ -0,0 +1,824 @@
+export const basic = {
+ ts: `
+
+
+ Good Morning! Start your day with some alerts.
+
+
+
+
+`,
+ js: `
+
+
+ Good Morning! Start your day with some alerts.
+
+
+
+
+`,
+}
+
+export const border = {
+ ts: `
+
+
+ Good Morning! Start your day with some alerts.
+
+
+
+ Good Morning! Start your day with some alerts.
+
+
+
+ Good Morning! Start your day with some alerts.
+
+
+
+ Good Morning! Start your day with some alerts.
+
+
+
+`,
+ js: `
+
+
+ Good Morning! Start your day with some alerts.
+
+
+
+ Good Morning! Start your day with some alerts.
+
+
+
+ Good Morning! Start your day with some alerts.
+
+
+
+ Good Morning! Start your day with some alerts.
+
+
+
+`,
+}
+
+export const closable = {
+ ts: `
+
+
+
+ Pudding wafer I love chocolate bar wafer chupa chups wafer. Cake gummies pudding gummies cake.
+
+
+
+
+
+ Reset
+
+
+
+`,
+ js: `
+
+
+
+ Pudding wafer I love chocolate bar wafer chupa chups wafer. Cake gummies pudding gummies cake.
+
+
+
+
+
+ Reset
+
+
+
+`,
+}
+
+export const coloredBorder = {
+ ts: `
+
+
+ Cake sweet roll sesame snaps cheesecake halvah apple pie gingerbread cake.
+
+
+ Cookie brownie tootsie roll pudding biscuit chupa chups. Dragรฉe gingerbread carrot.
+
+
+ Gingerbread jelly beans macaroon croissant soufflรฉ. Muffin halvah cake brownie cake.
+
+
+ Muffin I love wafer pudding caramels jelly beans fruitcake I love cotton candy.
+
+
+
+ Cake sweet roll sesame snaps cheesecake halvah apple pie gingerbread cake.
+
+
+
+ Lemon drops tootsie roll liquorice marzipan lollipop I love tiramisu tootsie roll.
+
+
+
+`,
+ js: `
+
+
+ Cake sweet roll sesame snaps cheesecake halvah apple pie gingerbread cake.
+
+
+ Cookie brownie tootsie roll pudding biscuit chupa chups. Dragรฉe gingerbread carrot.
+
+
+ Gingerbread jelly beans macaroon croissant soufflรฉ. Muffin halvah cake brownie cake.
+
+
+ Muffin I love wafer pudding caramels jelly beans fruitcake I love cotton candy.
+
+
+
+ Cake sweet roll sesame snaps cheesecake halvah apple pie gingerbread cake.
+
+
+
+ Lemon drops tootsie roll liquorice marzipan lollipop I love tiramisu tootsie roll.
+
+
+
+`,
+}
+
+export const colors = {
+ ts: `
+
+
+ I'm an alert with primary background color.
+
+
+
+ I'm an alert with secondary background color.
+
+
+
+ I'm an alert with success background color.
+
+
+
+ I'm an alert with info background color.
+
+
+
+ I'm an alert with warning background color.
+
+
+
+ I'm an alert with error background color.
+
+
+
+`,
+ js: `
+
+
+ I'm an alert with primary background color.
+
+
+
+ I'm an alert with secondary background color.
+
+
+
+ I'm an alert with success background color.
+
+
+
+ I'm an alert with info background color.
+
+
+
+ I'm an alert with warning background color.
+
+
+
+ I'm an alert with error background color.
+
+
+
+`,
+}
+
+export const density = {
+ ts: `
+
+
+ I'm a compact alert with a color of primary.
+
+
+
+ I'm a comfortable alert with the variant prop and a color of secondary.
+
+
+
+ I'm a default alert with the color of success.
+
+
+
+`,
+ js: `
+
+
+ I'm a compact alert with a color of primary.
+
+
+
+ I'm a comfortable alert with the variant prop and a color of secondary.
+
+
+
+ I'm a default alert with the color of success.
+
+
+
+`,
+}
+
+export const elevation = {
+ ts: `
+
+
+
+
+
+ I'm an alert with box shadow.
+
+
+`,
+ js: `
+
+
+
+
+
+ I'm an alert with box shadow.
+
+
+`,
+}
+
+export const icons = {
+ ts: `
+
+
+ Suspendisse enim turpis, dictum sed, iaculis a, condimentum nec, nisi.
+
+
+
+ Phasellus blandit leo ut odio. Morbi mattis ullamcorper velit.
+
+
+
+ Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus.
+
+
+
+`,
+ js: `
+
+
+ Suspendisse enim turpis, dictum sed, iaculis a, condimentum nec, nisi.
+
+
+
+ Phasellus blandit leo ut odio. Morbi mattis ullamcorper velit.
+
+
+
+ Aliquam lorem ante, dapibus in, viverra quis, feugiat a, tellus.
+
+
+
+`,
+}
+
+export const outlined = {
+ ts: `
+
+
+ Duis vel nibh at velit scelerisque suscipit. Praesent blandit laoreet nibh. Aenean posuere, tortor sed cursus feugiat, nunc augue blandit nunc.
+
+
+
+ Praesent venenatis metus at tortor pulvinar varius. Aenean commodo ligula eget dolor. Praesent ac massa at ligula laoreet iaculis.
+
+
+
+ Duis arcu tortor, suscipit eget, imperdiet nec, imperdiet iaculis, ipsum. Suspendisse non nisl sit amet velit hendrerit rutrum.
+
+
+
+ Marshmallow jelly beans toffee. Sweet roll lemon drops muffin biscuit. Gummies jujubes halvah dessert cream croissant.
+
+
+
+ Tootsie roll candy canes wafer icing sweet jelly macaroon. Caramels icing fruitcake chocolate cake cake donut.
+
+
+
+ Jelly beans dragรฉe jelly. Cotton candy danish chocolate cake. Carrot cake pastry jelly beans gummi bears.
+
+
+
+`,
+ js: `
+
+
+ Duis vel nibh at velit scelerisque suscipit. Praesent blandit laoreet nibh. Aenean posuere, tortor sed cursus feugiat, nunc augue blandit nunc.
+
+
+
+ Praesent venenatis metus at tortor pulvinar varius. Aenean commodo ligula eget dolor. Praesent ac massa at ligula laoreet iaculis.
+
+
+
+ Duis arcu tortor, suscipit eget, imperdiet nec, imperdiet iaculis, ipsum. Suspendisse non nisl sit amet velit hendrerit rutrum.
+
+
+
+ Marshmallow jelly beans toffee. Sweet roll lemon drops muffin biscuit. Gummies jujubes halvah dessert cream croissant.
+
+
+
+ Tootsie roll candy canes wafer icing sweet jelly macaroon. Caramels icing fruitcake chocolate cake cake donut.
+
+
+
+ Jelly beans dragรฉe jelly. Cotton candy danish chocolate cake. Carrot cake pastry jelly beans gummi bears.
+
+
+
+`,
+}
+
+export const prominent = {
+ ts: `
+
+
+
+ Macaroon I love tiramisu I love wafer apple pie jelly beans shortbread.
+
+
+
+
+ Cotton candy tart tiramisu lollipop gummi bears oat cake cupcake macaroon.
+
+
+
+ Ice cream candy I love wafer bonbon gingerbread candy canes tiramisu.
+
+
+
+`,
+ js: `
+
+
+
+ Macaroon I love tiramisu I love wafer apple pie jelly beans shortbread.
+
+
+
+
+ Cotton candy tart tiramisu lollipop gummi bears oat cake cupcake macaroon.
+
+
+
+ Ice cream candy I love wafer bonbon gingerbread candy canes tiramisu.
+
+
+
+`,
+}
+
+export const tonal = {
+ ts: `
+
+
+ Maecenas nec odio et ante tincidunt tempus. Sed mollis, eros et ultrices tempus.
+
+
+
+ Nullam tincidunt adipiscing enim. In consectetuer turpis ut velit.
+
+
+
+ Vestibulum ullamcorper mauris at ligula. Nulla porta dolor.
+
+
+
+ Praesent blandit laoreet nibh. Praesent nonummy mi in odio. Phasellus tempus. Mauris turpis nunc.
+
+
+
+ Marzipan topping croissant cake sweet roll ice cream soufflรฉ chocolate. Jelly beans chupa chups tootsie roll biscuit.
+
+
+
+ Marzipan topping croissant cake sweet roll ice cream soufflรฉ chocolate. Jelly beans chupa chups tootsie roll biscuit.
+
+
+
+`,
+ js: `
+
+
+ Maecenas nec odio et ante tincidunt tempus. Sed mollis, eros et ultrices tempus.
+
+
+
+ Nullam tincidunt adipiscing enim. In consectetuer turpis ut velit.
+
+
+
+ Vestibulum ullamcorper mauris at ligula. Nulla porta dolor.
+
+
+
+ Praesent blandit laoreet nibh. Praesent nonummy mi in odio. Phasellus tempus. Mauris turpis nunc.
+
+
+
+ Marzipan topping croissant cake sweet roll ice cream soufflรฉ chocolate. Jelly beans chupa chups tootsie roll biscuit.
+
+
+
+ Marzipan topping croissant cake sweet roll ice cream soufflรฉ chocolate. Jelly beans chupa chups tootsie roll biscuit.
+
+
+
+`,
+}
+
+export const type = {
+ ts: `
+
+
+ I'm a alert with a type of info
+
+
+
+ I'm a alert with a type of success
+
+
+
+ I'm a alert with a type of warning
+
+
+
+ I'm a alert with a type of error
+
+
+
+`,
+ js: `
+
+
+ I'm a alert with a type of info
+
+
+
+ I'm a alert with a type of success
+
+
+
+ I'm a alert with a type of warning
+
+
+
+ I'm a alert with a type of error
+
+
+
+`,
+}
+
+export const vModelSupport = {
+ ts: `
+
+
+
+
+ non adipiscing dolor urna a orci. Sed mollis, eros et ultrices tempus, mauris ipsum aliquam libero, non adipiscing dolor urna a orci. Curabitur blandit mollis lacus. Curabitur ligula sapien, tincidunt non, euismod vitae, posuere imperdiet, leo.
+
+
+
+
+
+ {{ isAlertVisible ? "Hide Alert" : "Show Alert" }}
+
+
+
+
+`,
+ js: `
+
+
+
+
+ non adipiscing dolor urna a orci. Sed mollis, eros et ultrices tempus, mauris ipsum aliquam libero, non adipiscing dolor urna a orci. Curabitur blandit mollis lacus. Curabitur ligula sapien, tincidunt non, euismod vitae, posuere imperdiet, leo.
+
+
+
+
+
+ {{ isAlertVisible ? "Hide Alert" : "Show Alert" }}
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarColors.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarColors.vue
new file mode 100644
index 0000000..6e573c0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarColors.vue
@@ -0,0 +1,27 @@
+
+
+
+ PI
+
+
+
+ SE
+
+
+
+ SU
+
+
+
+ IN
+
+
+
+ WA
+
+
+
+ ER
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarGroup.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarGroup.vue
new file mode 100644
index 0000000..81f6898
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarGroup.vue
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+ John Doe
+
+
+
+
+
+
+ Jennie Obrien
+
+
+
+
+
+
+ Peter Harper
+
+
+
+
+
+
+ Vivian Padilla
+
+
+
+
+
+
+ Scott Wells
+
+
+
+
+
+
+ Angel Bishop
+
+
+
+
+ +3
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarIcons.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarIcons.vue
new file mode 100644
index 0000000..940c65e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarIcons.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarImages.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarImages.vue
new file mode 100644
index 0000000..20b6bf3
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarImages.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarRounded.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarRounded.vue
new file mode 100644
index 0000000..795aa40
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarRounded.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarSizes.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarSizes.vue
new file mode 100644
index 0000000..172be4c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarSizes.vue
@@ -0,0 +1,35 @@
+
+
+
+ PI
+
+
+
+ PI
+
+
+
+ PI
+
+
+
+ PI
+
+
+
+ PI
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarTonal.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarTonal.vue
new file mode 100644
index 0000000..8972818
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/DemoAvatarTonal.vue
@@ -0,0 +1,41 @@
+
+
+
+ PI
+
+
+
+ SE
+
+
+ SU
+
+
+ IN
+
+
+ WA
+
+
+ ER
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/demoCodeAvatar.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/demoCodeAvatar.ts
new file mode 100644
index 0000000..9c66ad0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/avatar/demoCodeAvatar.ts
@@ -0,0 +1,612 @@
+export const colors = {
+ ts: `
+
+
+ PI
+
+
+
+ SE
+
+
+
+ SU
+
+
+
+ IN
+
+
+
+ WA
+
+
+
+ ER
+
+
+
+`,
+ js: `
+
+
+ PI
+
+
+
+ SE
+
+
+
+ SU
+
+
+
+ IN
+
+
+
+ WA
+
+
+
+ ER
+
+
+
+`,
+}
+
+export const group = {
+ ts: `
+
+
+
+
+
+
+ John Doe
+
+
+
+
+
+
+ Jennie Obrien
+
+
+
+
+
+
+ Peter Harper
+
+
+
+
+
+
+ Vivian Padilla
+
+
+
+
+
+
+ Scott Wells
+
+
+
+
+
+
+ Angel Bishop
+
+
+
+
+ +3
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ John Doe
+
+
+
+
+
+
+ Jennie Obrien
+
+
+
+
+
+
+ Peter Harper
+
+
+
+
+
+
+ Vivian Padilla
+
+
+
+
+
+
+ Scott Wells
+
+
+
+
+
+
+ Angel Bishop
+
+
+
+
+ +3
+
+
+
+
+
+`,
+}
+
+export const icons = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const images = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const rounded = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const sizes = {
+ ts: `
+
+
+ PI
+
+
+
+ PI
+
+
+
+ PI
+
+
+
+ PI
+
+
+
+ PI
+
+
+
+`,
+ js: `
+
+
+ PI
+
+
+
+ PI
+
+
+
+ PI
+
+
+
+ PI
+
+
+
+ PI
+
+
+
+`,
+}
+
+export const tonal = {
+ ts: `
+
+
+ PI
+
+
+
+ SE
+
+
+ SU
+
+
+ IN
+
+
+ WA
+
+
+ ER
+
+
+
+`,
+ js: `
+
+
+ PI
+
+
+
+ SE
+
+
+ SU
+
+
+ IN
+
+
+ WA
+
+
+ ER
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeAvatarStatus.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeAvatarStatus.vue
new file mode 100644
index 0000000..b9c8aaf
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeAvatarStatus.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeColor.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeColor.vue
new file mode 100644
index 0000000..8c6388e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeColor.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeDynamicNotifications.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeDynamicNotifications.vue
new file mode 100644
index 0000000..7956310
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeDynamicNotifications.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+ Send Message
+
+
+
+ Clear Notifications
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeIcon.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeIcon.vue
new file mode 100644
index 0000000..9640218
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeIcon.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeMaximumValue.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeMaximumValue.vue
new file mode 100644
index 0000000..38f7bc6
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeMaximumValue.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgePosition.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgePosition.vue
new file mode 100644
index 0000000..7de3984
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgePosition.vue
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeShowOnHover.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeShowOnHover.vue
new file mode 100644
index 0000000..bed1efc
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeShowOnHover.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeStyle.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeStyle.vue
new file mode 100644
index 0000000..7716183
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeStyle.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+ Default
+
+
+
+
+
+
+ Border
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeTabs.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeTabs.vue
new file mode 100644
index 0000000..201f71d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeTabs.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ {{ tab.content }}
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeTonal.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeTonal.vue
new file mode 100644
index 0000000..2562062
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/DemoBadgeTonal.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Default
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/demoCodeBadge.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/demoCodeBadge.ts
new file mode 100644
index 0000000..c0ce5d7
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/badge/demoCodeBadge.ts
@@ -0,0 +1,908 @@
+export const avatarStatus = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const color = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const dynamicNotifications = {
+ ts: `
+
+
+
+
+
+
+
+
+
+ Send Message
+
+
+
+ Clear Notifications
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+ Send Message
+
+
+
+ Clear Notifications
+
+
+
+
+`,
+}
+
+export const icon = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const maximumValue = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const position = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const showOnHover = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const style = {
+ ts: `
+
+
+
+
+
+
+ Default
+
+
+
+
+
+
+ Border
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ Default
+
+
+
+
+
+
+ Border
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const tabs = {
+ ts: `
+
+
+
+
+
+ {{ tab.content }}
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ {{ tab.content }}
+
+
+
+
+`,
+}
+
+export const tonal = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+ Default
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+ Default
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonBlock.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonBlock.vue
new file mode 100644
index 0000000..edb2161
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonBlock.vue
@@ -0,0 +1,24 @@
+
+
+
+
+ Block Button
+
+
+
+
+
+ Block Button
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonColors.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonColors.vue
new file mode 100644
index 0000000..f080e4a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonColors.vue
@@ -0,0 +1,22 @@
+
+
+
+ Primary
+
+
+ Secondary
+
+
+ Success
+
+
+ Info
+
+
+ Warning
+
+
+ Error
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonFlat.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonFlat.vue
new file mode 100644
index 0000000..ad23ab6
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonFlat.vue
@@ -0,0 +1,42 @@
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonGroup.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonGroup.vue
new file mode 100644
index 0000000..34af53a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonGroup.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonIcon.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonIcon.vue
new file mode 100644
index 0000000..a85fb74
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonIcon.vue
@@ -0,0 +1,42 @@
+
+
+
+ Accept
+
+
+
+
+ Cancel
+
+
+
+ Upload
+
+
+
+
+
+ Back
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonIconOnly.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonIconOnly.vue
new file mode 100644
index 0000000..a02b3e1
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonIconOnly.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonLink.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonLink.vue
new file mode 100644
index 0000000..8eb83fb
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonLink.vue
@@ -0,0 +1,15 @@
+
+
+
+ String Literal
+
+
+
+ Open New Tab
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonLoaders.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonLoaders.vue
new file mode 100644
index 0000000..0043e2b
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonLoaders.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+ Accept Terms
+
+
+
+ Upload
+
+
+
+
+ Loader slot
+
+ Loading...
+
+
+
+
+ Icon Loader
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonOutlined.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonOutlined.vue
new file mode 100644
index 0000000..03af5da
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonOutlined.vue
@@ -0,0 +1,37 @@
+
+
+
+ Primary
+
+
+ Secondary
+
+
+ Success
+
+
+ Info
+
+
+ Warning
+
+
+ Error
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonPlain.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonPlain.vue
new file mode 100644
index 0000000..0c27ce5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonPlain.vue
@@ -0,0 +1,42 @@
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonRounded.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonRounded.vue
new file mode 100644
index 0000000..f821721
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonRounded.vue
@@ -0,0 +1,25 @@
+
+
+
+ Normal Button
+
+
+ Rounded Button
+
+
+ Tile Button
+
+
+ Pill Button
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonRouter.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonRouter.vue
new file mode 100644
index 0000000..2606987
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonRouter.vue
@@ -0,0 +1,28 @@
+
+
+
+ String Literal
+
+
+
+ Object Path
+
+
+
+ Named Router
+
+
+
+ With Query
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonSizing.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonSizing.vue
new file mode 100644
index 0000000..4090c72
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonSizing.vue
@@ -0,0 +1,32 @@
+
+
+
+ Extra large Button
+
+
+
+ Large Button
+
+
+
+ Normal Button
+
+
+
+ Small Button
+
+
+
+ Extra small Button
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonText.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonText.vue
new file mode 100644
index 0000000..27065d4
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonText.vue
@@ -0,0 +1,42 @@
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonTonal.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonTonal.vue
new file mode 100644
index 0000000..f1201ce
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/DemoButtonTonal.vue
@@ -0,0 +1,42 @@
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/demoCodeButton.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/demoCodeButton.ts
new file mode 100644
index 0000000..ee8a052
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/button/demoCodeButton.ts
@@ -0,0 +1,1140 @@
+export const block = {
+ ts: `
+
+
+
+ Block Button
+
+
+
+
+
+ Block Button
+
+
+
+
+`,
+ js: `
+
+
+
+ Block Button
+
+
+
+
+
+ Block Button
+
+
+
+
+`,
+}
+
+export const colors = {
+ ts: `
+
+
+ Primary
+
+
+ Secondary
+
+
+ Success
+
+
+ Info
+
+
+ Warning
+
+
+ Error
+
+
+
+`,
+ js: `
+
+
+ Primary
+
+
+ Secondary
+
+
+ Success
+
+
+ Info
+
+
+ Warning
+
+
+ Error
+
+
+
+`,
+}
+
+export const flat = {
+ ts: `
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+ js: `
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+}
+
+export const group = {
+ ts: `
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const icon = {
+ ts: `
+
+
+ Accept
+
+
+
+
+ Cancel
+
+
+
+ Upload
+
+
+
+
+
+ Back
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+ Accept
+
+
+
+
+ Cancel
+
+
+
+ Upload
+
+
+
+
+
+ Back
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const iconOnly = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const link = {
+ ts: `
+
+
+ String Literal
+
+
+
+ Open New Tab
+
+
+
+`,
+ js: `
+
+
+ String Literal
+
+
+
+ Open New Tab
+
+
+
+`,
+}
+
+export const loaders = {
+ ts: `
+
+
+
+
+ Accept Terms
+
+
+
+ Upload
+
+
+
+
+ Loader slot
+
+ Loading...
+
+
+
+
+ Icon Loader
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+ Accept Terms
+
+
+
+ Upload
+
+
+
+
+ Loader slot
+
+ Loading...
+
+
+
+
+ Icon Loader
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const outlined = {
+ ts: `
+
+
+ Primary
+
+
+ Secondary
+
+
+ Success
+
+
+ Info
+
+
+ Warning
+
+
+ Error
+
+
+
+`,
+ js: `
+
+
+ Primary
+
+
+ Secondary
+
+
+ Success
+
+
+ Info
+
+
+ Warning
+
+
+ Error
+
+
+
+`,
+}
+
+export const plain = {
+ ts: `
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+ js: `
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+}
+
+export const rounded = {
+ ts: `
+
+
+ Normal Button
+
+
+ Rounded Button
+
+
+ Tile Button
+
+
+ Pill Button
+
+
+
+`,
+ js: `
+
+
+ Normal Button
+
+
+ Rounded Button
+
+
+ Tile Button
+
+
+ Pill Button
+
+
+
+`,
+}
+
+export const router = {
+ ts: `
+
+
+ String Literal
+
+
+
+ Object Path
+
+
+
+ Named Router
+
+
+
+ With Query
+
+
+
+`,
+ js: `
+
+
+ String Literal
+
+
+
+ Object Path
+
+
+
+ Named Router
+
+
+
+ With Query
+
+
+
+`,
+}
+
+export const sizing = {
+ ts: `
+
+
+ Extra large Button
+
+
+
+ Large Button
+
+
+
+ Normal Button
+
+
+
+ Small Button
+
+
+
+ Extra small Button
+
+
+
+`,
+ js: `
+
+
+ Extra large Button
+
+
+
+ Large Button
+
+
+
+ Normal Button
+
+
+
+ Small Button
+
+
+
+ Extra small Button
+
+
+
+`,
+}
+
+export const text = {
+ ts: `
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+ js: `
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+}
+
+export const tonal = {
+ ts: `
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+ js: `
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipClosable.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipClosable.vue
new file mode 100644
index 0000000..4885325
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipClosable.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
+ Default
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipColor.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipColor.vue
new file mode 100644
index 0000000..a7e45c3
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipColor.vue
@@ -0,0 +1,31 @@
+
+
+
+ Default
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipElevated.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipElevated.vue
new file mode 100644
index 0000000..0cf167f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipElevated.vue
@@ -0,0 +1,49 @@
+
+
+
+ Default
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipExpandable.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipExpandable.vue
new file mode 100644
index 0000000..0674630
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipExpandable.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+ VueJS
+
+
+
+
+
+
+
+ VueJS
+
+ The Progressive JavaScript Framework
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipInSelects.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipInSelects.vue
new file mode 100644
index 0000000..75182a9
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipInSelects.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipOutlined.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipOutlined.vue
new file mode 100644
index 0000000..0be805c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipOutlined.vue
@@ -0,0 +1,49 @@
+
+
+
+ Default
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipRounded.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipRounded.vue
new file mode 100644
index 0000000..908d8a6
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipRounded.vue
@@ -0,0 +1,49 @@
+
+
+
+ Default
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipSizes.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipSizes.vue
new file mode 100644
index 0000000..f693d07
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipSizes.vue
@@ -0,0 +1,23 @@
+
+
+
+ x-small chip
+
+
+
+ small chip
+
+
+
+ Default
+
+
+
+ large chip
+
+
+
+ x-large chip
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipWithAvatar.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipWithAvatar.vue
new file mode 100644
index 0000000..e6eabee
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipWithAvatar.vue
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+ John Doe
+
+
+
+
+ Darcy Nooser
+
+
+
+ Felicia Risker
+
+
+
+
+ Minnie Mostly
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipWithIcon.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipWithIcon.vue
new file mode 100644
index 0000000..3514a58
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/DemoChipWithIcon.vue
@@ -0,0 +1,59 @@
+
+
+
+
+ Account
+
+
+
+
+ Premium
+
+
+
+
+ 1 Year
+
+
+
+
+ Notification
+
+
+
+
+ Message
+
+
+
+
+ Warning
+
+
+
+
+ Error
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/demoCodeChip.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/demoCodeChip.ts
new file mode 100644
index 0000000..9119c3b
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/chip/demoCodeChip.ts
@@ -0,0 +1,944 @@
+export const closable = {
+ ts: `
+
+
+
+
+ Default
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+ js: `
+
+
+
+
+ Default
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+}
+
+export const color = {
+ ts: `
+
+
+ Default
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+ js: `
+
+
+ Default
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+}
+
+export const elevated = {
+ ts: `
+
+
+ Default
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+ js: `
+
+
+ Default
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+}
+
+export const expandable = {
+ ts: `
+
+
+
+
+
+
+ VueJS
+
+
+
+
+
+
+
+ VueJS
+
+ The Progressive JavaScript Framework
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ VueJS
+
+
+
+
+
+
+
+ VueJS
+
+ The Progressive JavaScript Framework
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const inSelects = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const outlined = {
+ ts: `
+
+
+ Default
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+ js: `
+
+
+ Default
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+}
+
+export const rounded = {
+ ts: `
+
+
+ Default
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+ js: `
+
+
+ Default
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Success
+
+
+
+ Info
+
+
+
+ Warning
+
+
+
+ Error
+
+
+
+`,
+}
+
+export const sizes = {
+ ts: `
+
+
+ x-small chip
+
+
+
+ small chip
+
+
+
+ Default
+
+
+
+ large chip
+
+
+
+ x-large chip
+
+
+
+`,
+ js: `
+
+
+ x-small chip
+
+
+
+ small chip
+
+
+
+ Default
+
+
+
+ large chip
+
+
+
+ x-large chip
+
+
+
+`,
+}
+
+export const withAvatar = {
+ ts: `
+
+
+
+
+
+ John Doe
+
+
+
+
+ Darcy Nooser
+
+
+
+ Felicia Risker
+
+
+
+
+ Minnie Mostly
+
+
+
+`,
+ js: `
+
+
+
+
+
+ John Doe
+
+
+
+
+ Darcy Nooser
+
+
+
+ Felicia Risker
+
+
+
+
+ Minnie Mostly
+
+
+
+`,
+}
+
+export const withIcon = {
+ ts: `
+
+
+
+ Account
+
+
+
+
+ Premium
+
+
+
+
+ 1 Year
+
+
+
+
+ Notification
+
+
+
+
+ Message
+
+
+
+
+ Warning
+
+
+
+
+ Error
+
+
+
+`,
+ js: `
+
+
+
+ Account
+
+
+
+
+ Premium
+
+
+
+
+ 1 Year
+
+
+
+
+ Notification
+
+
+
+
+ Message
+
+
+
+
+ Warning
+
+
+
+
+ Error
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogBasic.vue
new file mode 100644
index 0000000..dc07ef7
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogBasic.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+ Click Me
+
+
+
+
+
+
+
+
+
+ Bear claw pastry cotton candy jelly toffee. Pudding chocolate cake shortbread bonbon biscuit sweet. Lemon drops cupcake muffin brownie fruitcake. Pastry pastry tootsie roll jujubes chocolate cake gummi bears muffin pudding caramels. Jujubes lollipop gummies croissant shortbread. Cupcake dessert marzipan topping gingerbread apple pie chupa chups powder. Cake croissant halvah candy canes gummies.
+
+
+
+
+ I accept
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogForm.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogForm.vue
new file mode 100644
index 0000000..31c77b5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogForm.vue
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Close
+
+
+ Save
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogFullscreen.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogFullscreen.vue
new file mode 100644
index 0000000..9f44760
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogFullscreen.vue
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+
+
+
+ Settings
+
+
+
+
+
+ Save
+
+
+
+
+
+
+
+ User Controls
+
+
+
+
+
+
+
+
+ General
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogLoader.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogLoader.vue
new file mode 100644
index 0000000..94d6175
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogLoader.vue
@@ -0,0 +1,43 @@
+
+
+
+
+
+ Start loading
+
+
+
+
+
+
+ Please stand by
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogNesting.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogNesting.vue
new file mode 100644
index 0000000..346bef5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogNesting.vue
@@ -0,0 +1,57 @@
+
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+ Biscuit fruitcake marshmallow jelly beans jujubes halvah cupcake topping. Chocolate cookie jelly-o toffee tart oat cake. Tart sugar plum gingerbread halvah muffin sweet. Cake halvah tart soufflรฉ pudding.
+
+
+
+
+ Close
+
+
+ Open Dialog 2
+
+
+
+
+
+
+
+
+
+
+
+ I'm a nested dialog.
+
+
+
+ Close
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogOverflowed.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogOverflowed.vue
new file mode 100644
index 0000000..4fe2216
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogOverflowed.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+ Bear claw pastry cotton candy jelly toffee. Pudding chocolate cake shortbread bonbon biscuit sweet. Lemon drops cupcake muffin brownie fruitcake. Pastry pastry tootsie roll jujubes chocolate cake gummi bears muffin pudding caramels. Jujubes lollipop gummies croissant shortbread. Cupcake dessert marzipan topping gingerbread apple pie chupa chups powder. Cake croissant halvah candy canes gummies. Candy tootsie roll sweet lemon drops tart cotton candy jujubes topping chupa chups. Biscuit icing pastry chocolate bar lollipop. Lemon drops oat cake chocolate cake dessert chocolate. Carrot cake ice cream bonbon tart tootsie roll cupcake dessert gingerbread. Apple pie dessert sweet candy bonbon. Sugar plum gummies powder brownie dessert candy canes candy canes candy.
+
+ Sweet liquorice danish jujubes tart marshmallow cake. Danish chocolate bar icing dessert bonbon. Chocolate liquorice candy donut shortbread bonbon jujubes tart. Marshmallow cupcake marzipan icing pie dragรฉe toffee. Cupcake soufflรฉ pastry oat cake icing sesame snaps oat cake. Lollipop cheesecake cake tiramisu chocolate cake croissant. Donut candy canes sweet roll ice cream toffee gingerbread. Jelly-o biscuit oat cake cheesecake jujubes. Pudding chocolate biscuit gummies sesame snaps. Lemon drops candy canes chupa chups pudding muffin jujubes cupcake danish. Wafer chocolate oat cake sweet chocolate muffin. Pie dragรฉe soufflรฉ oat cake toffee dragรฉe gummi bears. Jelly-o chocolate jelly fruitcake tart muffin icing sweet.
+
+ Gummies pie lollipop carrot cake gingerbread sweet. Marshmallow tiramisu chocolate cake cake marshmallow. Pudding fruitcake shortbread biscuit powder cake. Dragรฉe cookie cheesecake chupa chups toffee wafer. Wafer donut pudding chocolate shortbread cheesecake. Cupcake sweet roll lollipop chupa chups donut croissant carrot cake chocolate cake. Toffee soufflรฉ biscuit gingerbread fruitcake. Jelly beans pudding jelly-o gingerbread apple pie ice cream. Muffin halvah cookie topping muffin sugar plum. Bonbon dessert cake tiramisu marzipan apple pie. Jelly beans caramels icing cake cake tiramisu dessert dessert jelly-o. Halvah ice cream cotton candy chupa chups cheesecake pudding cheesecake cupcake gummies. Croissant cookie candy canes cake chocolate.
+
+ Pie cotton candy caramels sweet cake liquorice. Bear claw oat cake candy danish jelly-o fruitcake muffin sugar plum cupcake. Pudding cake cake lollipop chupa chups topping apple pie jelly oat cake. Pie candy canes tiramisu gummies icing cotton candy fruitcake marshmallow dragรฉe. Pudding caramels muffin cookie cookie cupcake brownie ice cream. Liquorice lemon drops lemon drops cotton candy biscuit jelly-o jujubes topping. Lemon drops sweet dragรฉe dessert sugar plum chocolate topping sugar plum oat cake. Muffin candy canes bonbon cotton candy liquorice gingerbread sesame snaps chocolate bar. Muffin gingerbread sesame snaps cake donut pie gingerbread soufflรฉ croissant. Topping tart shortbread toffee jelly-o gingerbread cheesecake cupcake cake. Pudding powder icing marshmallow bear claw sesame snaps carrot cake. Jelly beans dessert tiramisu shortbread gummi bears gummies cotton candy. Tiramisu liquorice cookie pastry caramels icing tootsie roll.
+
+ Pudding croissant tootsie roll jelly-o jelly beans gummi bears. Shortbread candy canes biscuit candy donut marshmallow candy canes. Fruitcake marshmallow chocolate bar sweet roll tart gummi bears brownie cupcake dragรฉe. Cheesecake gummies sesame snaps soufflรฉ jelly beans halvah bonbon tootsie roll. Sesame snaps marzipan cupcake candy cheesecake lollipop. Donut candy jelly-o liquorice topping gummi bears halvah. Pie sweet sweet jujubes bear claw marshmallow pudding lollipop tiramisu. Tiramisu tootsie roll topping chocolate cake tootsie roll cotton candy brownie. Jelly beans biscuit caramels cake toffee toffee lemon drops dessert. Toffee chupa chups tart bonbon brownie cake shortbread. Gummies marshmallow topping dragรฉe chocolate bar. Chupa chups donut cheesecake cookie fruitcake muffin. Jelly-o cupcake cheesecake chocolate bar cupcake wafer. Liquorice muffin marzipan cotton candy cake lemon drops cake brownie.
+
+
+
+
+ Disagree
+
+
+ Agree
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogPersistent.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogPersistent.vue
new file mode 100644
index 0000000..09df7e1
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogPersistent.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+ Let Google help apps determine location. This means sending anonymous location data to Google, even when no apps are running.
+
+
+
+
+ Disagree
+
+
+ Agree
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogScrollable.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogScrollable.vue
new file mode 100644
index 0000000..feae48e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/DemoDialogScrollable.vue
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+ Select Country
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Close
+
+
+ Save
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/demoCodeDialog.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/demoCodeDialog.ts
new file mode 100644
index 0000000..9378a6d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/dialog/demoCodeDialog.ts
@@ -0,0 +1,1200 @@
+export const basic = {
+ ts: `
+
+
+
+
+
+
+ Click Me
+
+
+
+
+
+
+
+
+
+ Bear claw pastry cotton candy jelly toffee. Pudding chocolate cake shortbread bonbon biscuit sweet. Lemon drops cupcake muffin brownie fruitcake. Pastry pastry tootsie roll jujubes chocolate cake gummi bears muffin pudding caramels. Jujubes lollipop gummies croissant shortbread. Cupcake dessert marzipan topping gingerbread apple pie chupa chups powder. Cake croissant halvah candy canes gummies.
+
+
+
+
+ I accept
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ Click Me
+
+
+
+
+
+
+
+
+
+ Bear claw pastry cotton candy jelly toffee. Pudding chocolate cake shortbread bonbon biscuit sweet. Lemon drops cupcake muffin brownie fruitcake. Pastry pastry tootsie roll jujubes chocolate cake gummi bears muffin pudding caramels. Jujubes lollipop gummies croissant shortbread. Cupcake dessert marzipan topping gingerbread apple pie chupa chups powder. Cake croissant halvah candy canes gummies.
+
+
+
+
+ I accept
+
+
+
+
+
+`,
+}
+
+export const form = {
+ ts: `
+
+
+
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Close
+
+
+ Save
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Close
+
+
+ Save
+
+
+
+
+
+`,
+}
+
+export const fullscreen = {
+ ts: `
+
+
+
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+
+
+
+ Settings
+
+
+
+
+
+ Save
+
+
+
+
+
+
+
+ User Controls
+
+
+
+
+
+
+
+
+ General
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+
+
+
+ Settings
+
+
+
+
+
+ Save
+
+
+
+
+
+
+
+ User Controls
+
+
+
+
+
+
+
+
+ General
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const loader = {
+ ts: `
+
+
+
+
+ Start loading
+
+
+
+
+
+
+ Please stand by
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+ Start loading
+
+
+
+
+
+
+ Please stand by
+
+
+
+
+
+`,
+}
+
+export const nesting = {
+ ts: `
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+ Biscuit fruitcake marshmallow jelly beans jujubes halvah cupcake topping. Chocolate cookie jelly-o toffee tart oat cake. Tart sugar plum gingerbread halvah muffin sweet. Cake halvah tart soufflรฉ pudding.
+
+
+
+
+ Close
+
+
+ Open Dialog 2
+
+
+
+
+
+
+
+
+
+
+
+ I'm a nested dialog.
+
+
+
+ Close
+
+
+
+
+
+`,
+ js: `
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+ Biscuit fruitcake marshmallow jelly beans jujubes halvah cupcake topping. Chocolate cookie jelly-o toffee tart oat cake. Tart sugar plum gingerbread halvah muffin sweet. Cake halvah tart soufflรฉ pudding.
+
+
+
+
+ Close
+
+
+ Open Dialog 2
+
+
+
+
+
+
+
+
+
+
+
+ I'm a nested dialog.
+
+
+
+ Close
+
+
+
+
+
+`,
+}
+
+export const overflowed = {
+ ts: `
+
+
+
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+ Bear claw pastry cotton candy jelly toffee. Pudding chocolate cake shortbread bonbon biscuit sweet. Lemon drops cupcake muffin brownie fruitcake. Pastry pastry tootsie roll jujubes chocolate cake gummi bears muffin pudding caramels. Jujubes lollipop gummies croissant shortbread. Cupcake dessert marzipan topping gingerbread apple pie chupa chups powder. Cake croissant halvah candy canes gummies. Candy tootsie roll sweet lemon drops tart cotton candy jujubes topping chupa chups. Biscuit icing pastry chocolate bar lollipop. Lemon drops oat cake chocolate cake dessert chocolate. Carrot cake ice cream bonbon tart tootsie roll cupcake dessert gingerbread. Apple pie dessert sweet candy bonbon. Sugar plum gummies powder brownie dessert candy canes candy canes candy.
+
+ Sweet liquorice danish jujubes tart marshmallow cake. Danish chocolate bar icing dessert bonbon. Chocolate liquorice candy donut shortbread bonbon jujubes tart. Marshmallow cupcake marzipan icing pie dragรฉe toffee. Cupcake soufflรฉ pastry oat cake icing sesame snaps oat cake. Lollipop cheesecake cake tiramisu chocolate cake croissant. Donut candy canes sweet roll ice cream toffee gingerbread. Jelly-o biscuit oat cake cheesecake jujubes. Pudding chocolate biscuit gummies sesame snaps. Lemon drops candy canes chupa chups pudding muffin jujubes cupcake danish. Wafer chocolate oat cake sweet chocolate muffin. Pie dragรฉe soufflรฉ oat cake toffee dragรฉe gummi bears. Jelly-o chocolate jelly fruitcake tart muffin icing sweet.
+
+ Gummies pie lollipop carrot cake gingerbread sweet. Marshmallow tiramisu chocolate cake cake marshmallow. Pudding fruitcake shortbread biscuit powder cake. Dragรฉe cookie cheesecake chupa chups toffee wafer. Wafer donut pudding chocolate shortbread cheesecake. Cupcake sweet roll lollipop chupa chups donut croissant carrot cake chocolate cake. Toffee soufflรฉ biscuit gingerbread fruitcake. Jelly beans pudding jelly-o gingerbread apple pie ice cream. Muffin halvah cookie topping muffin sugar plum. Bonbon dessert cake tiramisu marzipan apple pie. Jelly beans caramels icing cake cake tiramisu dessert dessert jelly-o. Halvah ice cream cotton candy chupa chups cheesecake pudding cheesecake cupcake gummies. Croissant cookie candy canes cake chocolate.
+
+ Pie cotton candy caramels sweet cake liquorice. Bear claw oat cake candy danish jelly-o fruitcake muffin sugar plum cupcake. Pudding cake cake lollipop chupa chups topping apple pie jelly oat cake. Pie candy canes tiramisu gummies icing cotton candy fruitcake marshmallow dragรฉe. Pudding caramels muffin cookie cookie cupcake brownie ice cream. Liquorice lemon drops lemon drops cotton candy biscuit jelly-o jujubes topping. Lemon drops sweet dragรฉe dessert sugar plum chocolate topping sugar plum oat cake. Muffin candy canes bonbon cotton candy liquorice gingerbread sesame snaps chocolate bar. Muffin gingerbread sesame snaps cake donut pie gingerbread soufflรฉ croissant. Topping tart shortbread toffee jelly-o gingerbread cheesecake cupcake cake. Pudding powder icing marshmallow bear claw sesame snaps carrot cake. Jelly beans dessert tiramisu shortbread gummi bears gummies cotton candy. Tiramisu liquorice cookie pastry caramels icing tootsie roll.
+
+ Pudding croissant tootsie roll jelly-o jelly beans gummi bears. Shortbread candy canes biscuit candy donut marshmallow candy canes. Fruitcake marshmallow chocolate bar sweet roll tart gummi bears brownie cupcake dragรฉe. Cheesecake gummies sesame snaps soufflรฉ jelly beans halvah bonbon tootsie roll. Sesame snaps marzipan cupcake candy cheesecake lollipop. Donut candy jelly-o liquorice topping gummi bears halvah. Pie sweet sweet jujubes bear claw marshmallow pudding lollipop tiramisu. Tiramisu tootsie roll topping chocolate cake tootsie roll cotton candy brownie. Jelly beans biscuit caramels cake toffee toffee lemon drops dessert. Toffee chupa chups tart bonbon brownie cake shortbread. Gummies marshmallow topping dragรฉe chocolate bar. Chupa chups donut cheesecake cookie fruitcake muffin. Jelly-o cupcake cheesecake chocolate bar cupcake wafer. Liquorice muffin marzipan cotton candy cake lemon drops cake brownie.
+
+
+
+
+ Disagree
+
+
+ Agree
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+ Bear claw pastry cotton candy jelly toffee. Pudding chocolate cake shortbread bonbon biscuit sweet. Lemon drops cupcake muffin brownie fruitcake. Pastry pastry tootsie roll jujubes chocolate cake gummi bears muffin pudding caramels. Jujubes lollipop gummies croissant shortbread. Cupcake dessert marzipan topping gingerbread apple pie chupa chups powder. Cake croissant halvah candy canes gummies. Candy tootsie roll sweet lemon drops tart cotton candy jujubes topping chupa chups. Biscuit icing pastry chocolate bar lollipop. Lemon drops oat cake chocolate cake dessert chocolate. Carrot cake ice cream bonbon tart tootsie roll cupcake dessert gingerbread. Apple pie dessert sweet candy bonbon. Sugar plum gummies powder brownie dessert candy canes candy canes candy.
+
+ Sweet liquorice danish jujubes tart marshmallow cake. Danish chocolate bar icing dessert bonbon. Chocolate liquorice candy donut shortbread bonbon jujubes tart. Marshmallow cupcake marzipan icing pie dragรฉe toffee. Cupcake soufflรฉ pastry oat cake icing sesame snaps oat cake. Lollipop cheesecake cake tiramisu chocolate cake croissant. Donut candy canes sweet roll ice cream toffee gingerbread. Jelly-o biscuit oat cake cheesecake jujubes. Pudding chocolate biscuit gummies sesame snaps. Lemon drops candy canes chupa chups pudding muffin jujubes cupcake danish. Wafer chocolate oat cake sweet chocolate muffin. Pie dragรฉe soufflรฉ oat cake toffee dragรฉe gummi bears. Jelly-o chocolate jelly fruitcake tart muffin icing sweet.
+
+ Gummies pie lollipop carrot cake gingerbread sweet. Marshmallow tiramisu chocolate cake cake marshmallow. Pudding fruitcake shortbread biscuit powder cake. Dragรฉe cookie cheesecake chupa chups toffee wafer. Wafer donut pudding chocolate shortbread cheesecake. Cupcake sweet roll lollipop chupa chups donut croissant carrot cake chocolate cake. Toffee soufflรฉ biscuit gingerbread fruitcake. Jelly beans pudding jelly-o gingerbread apple pie ice cream. Muffin halvah cookie topping muffin sugar plum. Bonbon dessert cake tiramisu marzipan apple pie. Jelly beans caramels icing cake cake tiramisu dessert dessert jelly-o. Halvah ice cream cotton candy chupa chups cheesecake pudding cheesecake cupcake gummies. Croissant cookie candy canes cake chocolate.
+
+ Pie cotton candy caramels sweet cake liquorice. Bear claw oat cake candy danish jelly-o fruitcake muffin sugar plum cupcake. Pudding cake cake lollipop chupa chups topping apple pie jelly oat cake. Pie candy canes tiramisu gummies icing cotton candy fruitcake marshmallow dragรฉe. Pudding caramels muffin cookie cookie cupcake brownie ice cream. Liquorice lemon drops lemon drops cotton candy biscuit jelly-o jujubes topping. Lemon drops sweet dragรฉe dessert sugar plum chocolate topping sugar plum oat cake. Muffin candy canes bonbon cotton candy liquorice gingerbread sesame snaps chocolate bar. Muffin gingerbread sesame snaps cake donut pie gingerbread soufflรฉ croissant. Topping tart shortbread toffee jelly-o gingerbread cheesecake cupcake cake. Pudding powder icing marshmallow bear claw sesame snaps carrot cake. Jelly beans dessert tiramisu shortbread gummi bears gummies cotton candy. Tiramisu liquorice cookie pastry caramels icing tootsie roll.
+
+ Pudding croissant tootsie roll jelly-o jelly beans gummi bears. Shortbread candy canes biscuit candy donut marshmallow candy canes. Fruitcake marshmallow chocolate bar sweet roll tart gummi bears brownie cupcake dragรฉe. Cheesecake gummies sesame snaps soufflรฉ jelly beans halvah bonbon tootsie roll. Sesame snaps marzipan cupcake candy cheesecake lollipop. Donut candy jelly-o liquorice topping gummi bears halvah. Pie sweet sweet jujubes bear claw marshmallow pudding lollipop tiramisu. Tiramisu tootsie roll topping chocolate cake tootsie roll cotton candy brownie. Jelly beans biscuit caramels cake toffee toffee lemon drops dessert. Toffee chupa chups tart bonbon brownie cake shortbread. Gummies marshmallow topping dragรฉe chocolate bar. Chupa chups donut cheesecake cookie fruitcake muffin. Jelly-o cupcake cheesecake chocolate bar cupcake wafer. Liquorice muffin marzipan cotton candy cake lemon drops cake brownie.
+
+
+
+
+ Disagree
+
+
+ Agree
+
+
+
+
+
+`,
+}
+
+export const persistent = {
+ ts: `
+
+
+
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+ Let Google help apps determine location. This means sending anonymous location data to Google, even when no apps are running.
+
+
+
+
+ Disagree
+
+
+ Agree
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+ Let Google help apps determine location. This means sending anonymous location data to Google, even when no apps are running.
+
+
+
+
+ Disagree
+
+
+ Agree
+
+
+
+
+
+`,
+}
+
+export const scrollable = {
+ ts: `
+
+
+
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+ Select Country
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Close
+
+
+ Save
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ Open Dialog
+
+
+
+
+
+
+
+
+
+ Select Country
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Close
+
+
+ Save
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelAccordion.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelAccordion.vue
new file mode 100644
index 0000000..10c61f5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelAccordion.vue
@@ -0,0 +1,15 @@
+
+
+
+
+ Accordion {{ item }}
+
+
+ Sweet roll ice cream chocolate bar. Ice cream croissant sugar plum I love cupcake gingerbread liquorice cake. Bonbon tart caramels marshmallow chocolate cake icing icing danish pie.
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelBasic.vue
new file mode 100644
index 0000000..97a9786
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelBasic.vue
@@ -0,0 +1,15 @@
+
+
+
+
+ Item {{ i }}
+
+
+ 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.
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelCustomIcon.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelCustomIcon.vue
new file mode 100644
index 0000000..7fbce03
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelCustomIcon.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+ Server Down
+
+
+
+
+
+ Gummies biscuit dessert macaroon liquorice carrot cake oat cake jelly beans cake. Candy wafer tiramisu sugar plum sweet. Ice cream topping gummies biscuit soufflรฉ marzipan topping brownie marshmallow. Chocolate cake cookie pudding gummies cotton candy ice cream. Pie liquorice marzipan cake carrot cake macaroon jelly toffee. Lollipop donut gummi bears caramels icing marzipan.
+
+
+
+
+
+ Sales report generated
+
+
+
+
+
+ Bear claw ice cream icing gummies gingerbread cotton candy tootsie roll cupcake macaroon. Halvah brownie soufflรฉ. Pie dragรฉe macaroon. Tart tootsie roll chocolate bar biscuit jujubes lemon drops. Pudding cotton candy tart jelly-o bear claw lollipop. Jelly-o apple pie candy bonbon chupa chups cupcake cotton candy. Sweet roll cotton candy toffee caramels. Jelly-o chocolate cake toffee pastry halvah. Muffin tiramisu ice cream danish jelly-o brownie powde
+
+
+
+
+
+ High Memory usage
+
+
+
+
+
+ Jelly beans wafer lemon drops macaroon muffin gummies muffin. Ice cream oat cake chocolate bar sesame snaps. Halvah macaroon caramels gummies. Marshmallow jelly beans danish. Cake chocolate cake tiramisu chocolate bar sugar plum biscuit jelly danish. Pudding gummi bears sesame snaps cake soufflรฉ ice cream chocolate bar. Cotton candy ice cream danish chocolate cake topping ice cream. Brownie muffin gingerbread.
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelInset.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelInset.vue
new file mode 100644
index 0000000..4d4cc16
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelInset.vue
@@ -0,0 +1,13 @@
+
+
+
+ Inset {{ item }}
+
+ Chocolate bar sweet roll chocolate cake pastry I love gummi bears pudding chocolate cake. I love brownie powder apple pie sugar plum I love cake candy canes wafer. Tiramisu I love oat cake oat cake danish icing. Dessert sugar plum sugar plum cookie donut chocolate cake oat cake I love gummi bears.
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelModel.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelModel.vue
new file mode 100644
index 0000000..e264de4
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelModel.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+ all
+
+
+
+ none
+
+
+
+ Selected: {{ openedPanels }}
+
+
+
+
+
+ Header {{ item }}
+
+ I love I love jujubes halvah cheesecake cookie macaroon sugar plum. Sugar plum I love bear claw marzipan wafer. Wafer sesame snaps danish candy cheesecake carrot cake tootsie roll.
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelPopout.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelPopout.vue
new file mode 100644
index 0000000..5ce2193
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelPopout.vue
@@ -0,0 +1,13 @@
+
+
+
+ Popout {{ item }}
+
+ Cupcake ipsum dolor sit amet. Candy canes cheesecake chocolate bar I love I love jujubes gummi bears ice cream. Cheesecake tiramisu toffee cheesecake sugar plum candy canes bonbon candy.
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelWithBorder.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelWithBorder.vue
new file mode 100644
index 0000000..20a199d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/DemoExpansionPanelWithBorder.vue
@@ -0,0 +1,23 @@
+
+
+
+
+ Accordion {{ item }}
+
+
+
+ Sweet roll ice cream chocolate bar. Ice cream croissant sugar plum I love cupcake gingerbread liquorice cake. Bonbon tart caramels marshmallow chocolate cake icing icing danish pie.
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/demoCodeExpansionPanel.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/demoCodeExpansionPanel.ts
new file mode 100644
index 0000000..755e23b
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/expansion-panel/demoCodeExpansionPanel.ts
@@ -0,0 +1,414 @@
+export const accordion = {
+ ts: `
+
+
+
+ Accordion {{ item }}
+
+
+ Sweet roll ice cream chocolate bar. Ice cream croissant sugar plum I love cupcake gingerbread liquorice cake. Bonbon tart caramels marshmallow chocolate cake icing icing danish pie.
+
+
+
+
+`,
+ js: `
+
+
+
+ Accordion {{ item }}
+
+
+ Sweet roll ice cream chocolate bar. Ice cream croissant sugar plum I love cupcake gingerbread liquorice cake. Bonbon tart caramels marshmallow chocolate cake icing icing danish pie.
+
+
+
+
+`,
+}
+
+export const basic = {
+ ts: `
+
+
+
+ Item {{ i }}
+
+
+ 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.
+
+
+
+
+`,
+ js: `
+
+
+
+ Item {{ i }}
+
+
+ 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.
+
+
+
+
+`,
+}
+
+export const customIcon = {
+ ts: `
+
+
+
+
+
+ Server Down
+
+
+
+
+
+ Gummies biscuit dessert macaroon liquorice carrot cake oat cake jelly beans cake. Candy wafer tiramisu sugar plum sweet. Ice cream topping gummies biscuit soufflรฉ marzipan topping brownie marshmallow. Chocolate cake cookie pudding gummies cotton candy ice cream. Pie liquorice marzipan cake carrot cake macaroon jelly toffee. Lollipop donut gummi bears caramels icing marzipan.
+
+
+
+
+
+ Sales report generated
+
+
+
+
+
+ Bear claw ice cream icing gummies gingerbread cotton candy tootsie roll cupcake macaroon. Halvah brownie soufflรฉ. Pie dragรฉe macaroon. Tart tootsie roll chocolate bar biscuit jujubes lemon drops. Pudding cotton candy tart jelly-o bear claw lollipop. Jelly-o apple pie candy bonbon chupa chups cupcake cotton candy. Sweet roll cotton candy toffee caramels. Jelly-o chocolate cake toffee pastry halvah. Muffin tiramisu ice cream danish jelly-o brownie powde
+
+
+
+
+
+ High Memory usage
+
+
+
+
+
+ Jelly beans wafer lemon drops macaroon muffin gummies muffin. Ice cream oat cake chocolate bar sesame snaps. Halvah macaroon caramels gummies. Marshmallow jelly beans danish. Cake chocolate cake tiramisu chocolate bar sugar plum biscuit jelly danish. Pudding gummi bears sesame snaps cake soufflรฉ ice cream chocolate bar. Cotton candy ice cream danish chocolate cake topping ice cream. Brownie muffin gingerbread.
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ Server Down
+
+
+
+
+
+ Gummies biscuit dessert macaroon liquorice carrot cake oat cake jelly beans cake. Candy wafer tiramisu sugar plum sweet. Ice cream topping gummies biscuit soufflรฉ marzipan topping brownie marshmallow. Chocolate cake cookie pudding gummies cotton candy ice cream. Pie liquorice marzipan cake carrot cake macaroon jelly toffee. Lollipop donut gummi bears caramels icing marzipan.
+
+
+
+
+
+ Sales report generated
+
+
+
+
+
+ Bear claw ice cream icing gummies gingerbread cotton candy tootsie roll cupcake macaroon. Halvah brownie soufflรฉ. Pie dragรฉe macaroon. Tart tootsie roll chocolate bar biscuit jujubes lemon drops. Pudding cotton candy tart jelly-o bear claw lollipop. Jelly-o apple pie candy bonbon chupa chups cupcake cotton candy. Sweet roll cotton candy toffee caramels. Jelly-o chocolate cake toffee pastry halvah. Muffin tiramisu ice cream danish jelly-o brownie powde
+
+
+
+
+
+ High Memory usage
+
+
+
+
+
+ Jelly beans wafer lemon drops macaroon muffin gummies muffin. Ice cream oat cake chocolate bar sesame snaps. Halvah macaroon caramels gummies. Marshmallow jelly beans danish. Cake chocolate cake tiramisu chocolate bar sugar plum biscuit jelly danish. Pudding gummi bears sesame snaps cake soufflรฉ ice cream chocolate bar. Cotton candy ice cream danish chocolate cake topping ice cream. Brownie muffin gingerbread.
+
+
+
+
+`,
+}
+
+export const inset = {
+ ts: `
+
+
+ Inset {{ item }}
+
+ Chocolate bar sweet roll chocolate cake pastry I love gummi bears pudding chocolate cake. I love brownie powder apple pie sugar plum I love cake candy canes wafer. Tiramisu I love oat cake oat cake danish icing. Dessert sugar plum sugar plum cookie donut chocolate cake oat cake I love gummi bears.
+
+
+
+
+`,
+ js: `
+
+
+ Inset {{ item }}
+
+ Chocolate bar sweet roll chocolate cake pastry I love gummi bears pudding chocolate cake. I love brownie powder apple pie sugar plum I love cake candy canes wafer. Tiramisu I love oat cake oat cake danish icing. Dessert sugar plum sugar plum cookie donut chocolate cake oat cake I love gummi bears.
+
+
+
+
+`,
+}
+
+export const model = {
+ ts: `
+
+
+
+
+
+ all
+
+
+
+ none
+
+
+
+ Selected: {{ openedPanels }}
+
+
+
+
+
+ Header {{ item }}
+
+ I love I love jujubes halvah cheesecake cookie macaroon sugar plum. Sugar plum I love bear claw marzipan wafer. Wafer sesame snaps danish candy cheesecake carrot cake tootsie roll.
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ all
+
+
+
+ none
+
+
+
+ Selected: {{ openedPanels }}
+
+
+
+
+
+ Header {{ item }}
+
+ I love I love jujubes halvah cheesecake cookie macaroon sugar plum. Sugar plum I love bear claw marzipan wafer. Wafer sesame snaps danish candy cheesecake carrot cake tootsie roll.
+
+
+
+
+
+`,
+}
+
+export const popout = {
+ ts: `
+
+
+ Popout {{ item }}
+
+ Cupcake ipsum dolor sit amet. Candy canes cheesecake chocolate bar I love I love jujubes gummi bears ice cream. Cheesecake tiramisu toffee cheesecake sugar plum candy canes bonbon candy.
+
+
+
+
+`,
+ js: `
+
+
+ Popout {{ item }}
+
+ Cupcake ipsum dolor sit amet. Candy canes cheesecake chocolate bar I love I love jujubes gummi bears ice cream. Cheesecake tiramisu toffee cheesecake sugar plum candy canes bonbon candy.
+
+
+
+
+`,
+}
+
+export const withBorder = {
+ ts: `
+
+
+
+ Accordion {{ item }}
+
+
+
+ Sweet roll ice cream chocolate bar. Ice cream croissant sugar plum I love cupcake gingerbread liquorice cake. Bonbon tart caramels marshmallow chocolate cake icing icing danish pie.
+
+
+
+
+`,
+ js: `
+
+
+
+ Accordion {{ item }}
+
+
+
+ Sweet roll ice cream chocolate bar. Ice cream croissant sugar plum I love cupcake gingerbread liquorice cake. Bonbon tart caramels marshmallow chocolate cake icing icing danish pie.
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListActionAndItemGroup.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListActionAndItemGroup.vue
new file mode 100644
index 0000000..2d97aa8
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListActionAndItemGroup.vue
@@ -0,0 +1,55 @@
+
+
+ General
+
+
+
+
+
+
+
+
+ Notifications
+ Notify me about updates to apps or games that I downloaded
+
+
+
+
+
+
+
+
+
+ Sound
+ Auto-update apps at any time. Data charges may apply
+
+
+
+
+
+
+
+
+
+ Auto-add widgets
+ Automatically add home screen widgets when downloads complete
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListBasic.vue
new file mode 100644
index 0000000..8d50317
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListBasic.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListDensity.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListDensity.vue
new file mode 100644
index 0000000..1595549
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListDensity.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListNav.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListNav.vue
new file mode 100644
index 0000000..e7b9da5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListNav.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListProgressList.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListProgressList.vue
new file mode 100644
index 0000000..eff22a2
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListProgressList.vue
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ progress.title }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListRounded.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListRounded.vue
new file mode 100644
index 0000000..84a2b67
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListRounded.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListShaped.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListShaped.vue
new file mode 100644
index 0000000..3a60608
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListShaped.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListSubGroup.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListSubGroup.vue
new file mode 100644
index 0000000..8de8fda
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListSubGroup.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListThreeLine.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListThreeLine.vue
new file mode 100644
index 0000000..a1ec2a0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListThreeLine.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListTwoLinesAndSubheader.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListTwoLinesAndSubheader.vue
new file mode 100644
index 0000000..4eceb84
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListTwoLinesAndSubheader.vue
@@ -0,0 +1,99 @@
+
+
+
+
+
+ Folders
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Files
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListUserList.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListUserList.vue
new file mode 100644
index 0000000..897e8bf
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/DemoListUserList.vue
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+ {{ user.name }}
+
+
+
+ {{ user.status }}
+
+
+ {{ user.lastVisited }}
+
+
+
+
+ Add
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/demoCodeList.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/demoCodeList.ts
new file mode 100644
index 0000000..68d2dfa
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/list/demoCodeList.ts
@@ -0,0 +1,1290 @@
+export const actionAndItemGroup = {
+ ts: `
+
+ General
+
+
+
+
+
+
+
+
+ Notifications
+ Notify me about updates to apps or games that I downloaded
+
+
+
+
+
+
+
+
+
+ Sound
+ Auto-update apps at any time. Data charges may apply
+
+
+
+
+
+
+
+
+
+ Auto-add widgets
+ Automatically add home screen widgets when downloads complete
+
+
+
+`,
+ js: `
+
+ General
+
+
+
+
+
+
+
+
+ Notifications
+ Notify me about updates to apps or games that I downloaded
+
+
+
+
+
+
+
+
+
+ Sound
+ Auto-update apps at any time. Data charges may apply
+
+
+
+
+
+
+
+
+
+ Auto-add widgets
+ Automatically add home screen widgets when downloads complete
+
+
+
+`,
+}
+
+export const basic = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const density = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const nav = {
+ ts: `
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+`,
+}
+
+export const progressList = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+ {{ progress.title }}
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+ {{ progress.title }}
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const rounded = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const shaped = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const subGroup = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const threeLine = {
+ ts: `
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const twoLinesAndSubheader = {
+ ts: `
+
+
+
+
+ Folders
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Files
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+ Folders
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Files
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const userList = {
+ ts: `
+
+
+
+
+
+
+
+
+
+ {{ user.name }}
+
+
+
+ {{ user.status }}
+
+
+ {{ user.lastVisited }}
+
+
+
+
+ Add
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+ {{ user.name }}
+
+
+
+ {{ user.status }}
+
+
+ {{ user.lastVisited }}
+
+
+
+
+ Add
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuActivatorAndTooltip.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuActivatorAndTooltip.vue
new file mode 100644
index 0000000..519ad1a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuActivatorAndTooltip.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+ Dropdown w/ Tooltip
+
+
+ I am a Tooltip
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuBasic.vue
new file mode 100644
index 0000000..c755612
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuBasic.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+ {{ menu }}
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuCustomTransitions.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuCustomTransitions.vue
new file mode 100644
index 0000000..9a04e9f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuCustomTransitions.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+ Scale Transition
+
+
+
+
+
+
+
+
+
+ Slide X Transition
+
+
+
+
+
+
+
+
+
+ Slide Y Transition
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuLocation.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuLocation.vue
new file mode 100644
index 0000000..71f6817
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuLocation.vue
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+ Top
+
+
+
+
+
+
+
+
+
+ Bottom
+
+
+
+
+
+
+
+
+
+ Start
+
+
+
+
+
+
+
+
+
+ End
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuOpenOnHover.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuOpenOnHover.vue
new file mode 100644
index 0000000..b7c9501
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuOpenOnHover.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+ On hover
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuPopover.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuPopover.vue
new file mode 100644
index 0000000..f3e3f2c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/DemoMenuPopover.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+ Menu as Popover
+
+
+
+
+
+
+
+
+
+
+
+ Gingerbread bear claw cake. Soufflรฉ candy sesame snaps chocolate ice cream cake.
+ Dessert candy canes oat cake pudding cupcake. Bear claw sweet wafer bonbon dragรฉe toffee.
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/demoCodeMenu.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/demoCodeMenu.ts
new file mode 100644
index 0000000..101a5a9
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/menu/demoCodeMenu.ts
@@ -0,0 +1,476 @@
+export const activatorAndTooltip = {
+ ts: `
+
+
+
+
+
+
+
+ Dropdown w/ Tooltip
+
+
+ I am a Tooltip
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+ Dropdown w/ Tooltip
+
+
+ I am a Tooltip
+
+
+
+
+
+
+`,
+}
+
+export const basic = {
+ ts: `
+
+
+
+
+
+
+ {{ menu }}
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ {{ menu }}
+
+
+
+
+
+
+
+`,
+}
+
+export const customTransitions = {
+ ts: `
+
+
+
+
+
+
+ Scale Transition
+
+
+
+
+
+
+
+
+
+ Slide X Transition
+
+
+
+
+
+
+
+
+
+ Slide Y Transition
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ Scale Transition
+
+
+
+
+
+
+
+
+
+ Slide X Transition
+
+
+
+
+
+
+
+
+
+ Slide Y Transition
+
+
+
+
+
+
+
+`,
+}
+
+export const location = {
+ ts: `
+
+
+
+
+
+
+ Top
+
+
+
+
+
+
+
+
+
+ Bottom
+
+
+
+
+
+
+
+
+
+ Start
+
+
+
+
+
+
+
+
+
+ End
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ Top
+
+
+
+
+
+
+
+
+
+ Bottom
+
+
+
+
+
+
+
+
+
+ Start
+
+
+
+
+
+
+
+
+
+ End
+
+
+
+
+
+
+
+`,
+}
+
+export const openOnHover = {
+ ts: `
+
+
+
+
+
+ On hover
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ On hover
+
+
+
+
+
+
+`,
+}
+
+export const popover = {
+ ts: `
+
+
+
+
+
+ Menu as Popover
+
+
+
+
+
+
+
+
+
+
+
+ Gingerbread bear claw cake. Soufflรฉ candy sesame snaps chocolate ice cream cake.
+ Dessert candy canes oat cake pudding cupcake. Bear claw sweet wafer bonbon dragรฉe toffee.
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ Menu as Popover
+
+
+
+
+
+
+
+
+
+
+
+ Gingerbread bear claw cake. Soufflรฉ candy sesame snaps chocolate ice cream cake.
+ Dessert candy canes oat cake pudding cupcake. Bear claw sweet wafer bonbon dragรฉe toffee.
+
+
+
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationBasic.vue
new file mode 100644
index 0000000..5ac5766
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationBasic.vue
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationCircle.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationCircle.vue
new file mode 100644
index 0000000..2fe237f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationCircle.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationColor.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationColor.vue
new file mode 100644
index 0000000..e3f24e7
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationColor.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationDisabled.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationDisabled.vue
new file mode 100644
index 0000000..5e44aa0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationDisabled.vue
@@ -0,0 +1,6 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationIcons.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationIcons.vue
new file mode 100644
index 0000000..e4588e4
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationIcons.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationLength.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationLength.vue
new file mode 100644
index 0000000..e83b272
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationLength.vue
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationOutline.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationOutline.vue
new file mode 100644
index 0000000..f6b6c37
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationOutline.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationOutlineCircle.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationOutlineCircle.vue
new file mode 100644
index 0000000..4482dab
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationOutlineCircle.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationSize.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationSize.vue
new file mode 100644
index 0000000..ca0edf4
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationSize.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationTotalVisible.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationTotalVisible.vue
new file mode 100644
index 0000000..3253b50
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/DemoPaginationTotalVisible.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/demoCodePagination.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/demoCodePagination.ts
new file mode 100644
index 0000000..b08b136
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/pagination/demoCodePagination.ts
@@ -0,0 +1,315 @@
+export const basic = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const circle = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const color = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const disabled = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const icons = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const length = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const outline = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const outlineCircle = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const size = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const totalVisible = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-circular/DemoProgressCircularColor.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-circular/DemoProgressCircularColor.vue
new file mode 100644
index 0000000..1a6c528
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-circular/DemoProgressCircularColor.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-circular/DemoProgressCircularIndeterminate.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-circular/DemoProgressCircularIndeterminate.vue
new file mode 100644
index 0000000..76b1dfe
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-circular/DemoProgressCircularIndeterminate.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-circular/DemoProgressCircularRotate.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-circular/DemoProgressCircularRotate.vue
new file mode 100644
index 0000000..afd298a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-circular/DemoProgressCircularRotate.vue
@@ -0,0 +1,60 @@
+
+
+
+
+
+ {{ progressValue }}
+
+
+
+ {{ progressValue }}
+
+
+
+ {{ progressValue }}
+
+
+
+ {{ progressValue }}
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-circular/DemoProgressCircularSize.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-circular/DemoProgressCircularSize.vue
new file mode 100644
index 0000000..83066ef
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-circular/DemoProgressCircularSize.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-circular/demoCodeProgressCircular.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-circular/demoCodeProgressCircular.ts
new file mode 100644
index 0000000..36b6df7
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-circular/demoCodeProgressCircular.ts
@@ -0,0 +1,326 @@
+export const color = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const indeterminate = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const rotate = {
+ ts: `
+
+
+
+
+ {{ progressValue }}
+
+
+
+ {{ progressValue }}
+
+
+
+ {{ progressValue }}
+
+
+
+ {{ progressValue }}
+
+
+
+`,
+ js: `
+
+
+
+
+ {{ progressValue }}
+
+
+
+ {{ progressValue }}
+
+
+
+ {{ progressValue }}
+
+
+
+ {{ progressValue }}
+
+
+
+`,
+}
+
+export const size = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearBuffering.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearBuffering.vue
new file mode 100644
index 0000000..10d560e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearBuffering.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearColor.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearColor.vue
new file mode 100644
index 0000000..aa148df
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearColor.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearIndeterminate.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearIndeterminate.vue
new file mode 100644
index 0000000..9abd7de
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearIndeterminate.vue
@@ -0,0 +1,6 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearReversed.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearReversed.vue
new file mode 100644
index 0000000..73fcb6a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearReversed.vue
@@ -0,0 +1,7 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearRounded.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearRounded.vue
new file mode 100644
index 0000000..a939d5c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearRounded.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearSlots.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearSlots.vue
new file mode 100644
index 0000000..3f552bf
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearSlots.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+ {{ Math.ceil(value) }}%
+
+
+
+
+ {{ Math.ceil(knowledge) }}%
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearStriped.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearStriped.vue
new file mode 100644
index 0000000..659ab71
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/DemoProgressLinearStriped.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/demoCodeProgressLinear.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/demoCodeProgressLinear.ts
new file mode 100644
index 0000000..fe9a0c7
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/progress-linear/demoCodeProgressLinear.ts
@@ -0,0 +1,326 @@
+export const buffering = {
+ ts: `
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+`,
+}
+
+export const color = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const indeterminate = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const reversed = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const rounded = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const slots = {
+ ts: `
+
+
+
+
+
+
+
+ {{ Math.ceil(value) }}%
+
+
+
+
+ {{ Math.ceil(knowledge) }}%
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+ {{ Math.ceil(value) }}%
+
+
+
+
+ {{ Math.ceil(knowledge) }}%
+
+
+
+`,
+}
+
+export const striped = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarBasic.vue
new file mode 100644
index 0000000..00fd5e4
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarBasic.vue
@@ -0,0 +1,14 @@
+
+
+
+
+ Open Snackbar
+
+
+
+
+ Hello, I'm a snackbar
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarMultiLine.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarMultiLine.vue
new file mode 100644
index 0000000..f6f4cca
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarMultiLine.vue
@@ -0,0 +1,26 @@
+
+
+
+
+ Open Snackbar
+
+
+
+
+ I am a multi-line snackbar. I can have more than one line. This is another line that is quite long.
+
+
+
+ Close
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarPosition.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarPosition.vue
new file mode 100644
index 0000000..a19f1be
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarPosition.vue
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+
+
+
+
+ I'm a top snackbar.
+
+
+
+
+
+
+
+
+ I'm a top right snackbar.
+
+
+
+
+
+
+
+
+ I'm a center end snackbar.
+
+
+
+
+
+
+
+
+ I'm a bottom end snackbar.
+
+
+
+
+
+
+
+
+ I'm a bottom snackbar.
+
+
+
+
+
+
+
+
+ I'm a bottom start snackbar.
+
+
+
+
+
+
+
+
+ I'm a center start snackbar.
+
+
+
+
+
+
+
+
+ I'm a top start snackbar.
+
+
+
+
+
+
+
+
+ I'm a center snackbar.
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarTimeout.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarTimeout.vue
new file mode 100644
index 0000000..b85cabd
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarTimeout.vue
@@ -0,0 +1,17 @@
+
+
+
+
+ Open Snackbar
+
+
+
+
+ My timeout is set to 2000.
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarTransition.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarTransition.vue
new file mode 100644
index 0000000..7398a29
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarTransition.vue
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+ fade snackbar
+
+
+
+ I'm a fade transition snackbar.
+
+
+
+
+ Scale snackbar
+
+
+
+ I'm a scale transition snackbar.
+
+
+
+
+ scroll y reverse
+
+
+
+ I'm a scroll y reverse transition snackbar.
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarVariants.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarVariants.vue
new file mode 100644
index 0000000..0b83bfb
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarVariants.vue
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+ Default
+
+
+
+
+ Jelly chocolate bar candy canes apple pie.
+
+
+
+
+ tonal
+
+
+
+
+ Ice cream cake candy canes.
+
+
+
+
+ Text
+
+
+
+
+ Pie icing biscuit soufflรฉ liquorice topping.
+
+
+
+
+ Outlined
+
+
+
+
+ Oat cake caramels sesame snaps candy.
+
+
+
+
+ Flat
+
+
+
+
+ Oat cake caramels sesame snaps candy.
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarVertical.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarVertical.vue
new file mode 100644
index 0000000..aa1e927
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarVertical.vue
@@ -0,0 +1,32 @@
+
+
+
+
+ Open Snackbar
+
+
+
+ Sugar plum chocolate bar halvah sesame snaps apple pie donut croissant marshmallow. Sweet roll donut gummies sesame snaps icing bear claw tiramisu cotton candy.
+
+
+
+ Undo
+
+
+
+ Close
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarWithAction.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarWithAction.vue
new file mode 100644
index 0000000..110c8f6
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/DemoSnackbarWithAction.vue
@@ -0,0 +1,23 @@
+
+
+
+
+ Open Snackbar
+
+
+
+
+ Hello, I'm a snackbar with actions.
+
+
+
+ Close
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/demoCodeSnackbar.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/demoCodeSnackbar.ts
new file mode 100644
index 0000000..b88025d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/snackbar/demoCodeSnackbar.ts
@@ -0,0 +1,835 @@
+export const basic = {
+ ts: `
+
+
+
+ Open Snackbar
+
+
+
+
+ Hello, I'm a snackbar
+
+
+`,
+ js: `
+
+
+
+ Open Snackbar
+
+
+
+
+ Hello, I'm a snackbar
+
+
+`,
+}
+
+export const multiLine = {
+ ts: `
+
+
+
+ Open Snackbar
+
+
+
+
+ I am a multi-line snackbar. I can have more than one line. This is another line that is quite long.
+
+
+
+ Close
+
+
+
+
+`,
+ js: `
+
+
+
+ Open Snackbar
+
+
+
+
+ I am a multi-line snackbar. I can have more than one line. This is another line that is quite long.
+
+
+
+ Close
+
+
+
+
+`,
+}
+
+export const position = {
+ ts: `
+
+
+
+
+
+
+
+
+
+ I'm a top snackbar.
+
+
+
+
+
+
+
+
+ I'm a top right snackbar.
+
+
+
+
+
+
+
+
+ I'm a center end snackbar.
+
+
+
+
+
+
+
+
+ I'm a bottom end snackbar.
+
+
+
+
+
+
+
+
+ I'm a bottom snackbar.
+
+
+
+
+
+
+
+
+ I'm a bottom start snackbar.
+
+
+
+
+
+
+
+
+ I'm a center start snackbar.
+
+
+
+
+
+
+
+
+ I'm a top start snackbar.
+
+
+
+
+
+
+
+
+ I'm a center snackbar.
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+ I'm a top snackbar.
+
+
+
+
+
+
+
+
+ I'm a top right snackbar.
+
+
+
+
+
+
+
+
+ I'm a center end snackbar.
+
+
+
+
+
+
+
+
+ I'm a bottom end snackbar.
+
+
+
+
+
+
+
+
+ I'm a bottom snackbar.
+
+
+
+
+
+
+
+
+ I'm a bottom start snackbar.
+
+
+
+
+
+
+
+
+ I'm a center start snackbar.
+
+
+
+
+
+
+
+
+ I'm a top start snackbar.
+
+
+
+
+
+
+
+
+ I'm a center snackbar.
+
+
+
+`,
+}
+
+export const timeout = {
+ ts: `
+
+
+
+ Open Snackbar
+
+
+
+
+ My timeout is set to 2000.
+
+
+`,
+ js: `
+
+
+
+ Open Snackbar
+
+
+
+
+ My timeout is set to 2000.
+
+
+`,
+}
+
+export const transition = {
+ ts: `
+
+
+
+
+
+ fade snackbar
+
+
+
+ I'm a fade transition snackbar.
+
+
+
+
+ Scale snackbar
+
+
+
+ I'm a scale transition snackbar.
+
+
+
+
+ scroll y reverse
+
+
+
+ I'm a scroll y reverse transition snackbar.
+
+
+
+`,
+ js: `
+
+
+
+
+
+ fade snackbar
+
+
+
+ I'm a fade transition snackbar.
+
+
+
+
+ Scale snackbar
+
+
+
+ I'm a scale transition snackbar.
+
+
+
+
+ scroll y reverse
+
+
+
+ I'm a scroll y reverse transition snackbar.
+
+
+
+`,
+}
+
+export const variants = {
+ ts: `
+
+
+
+
+
+ Default
+
+
+
+
+ Jelly chocolate bar candy canes apple pie.
+
+
+
+
+ tonal
+
+
+
+
+ Ice cream cake candy canes.
+
+
+
+
+ Text
+
+
+
+
+ Pie icing biscuit soufflรฉ liquorice topping.
+
+
+
+
+ Outlined
+
+
+
+
+ Oat cake caramels sesame snaps candy.
+
+
+
+
+ Flat
+
+
+
+
+ Oat cake caramels sesame snaps candy.
+
+
+
+`,
+ js: `
+
+
+
+
+
+ Default
+
+
+
+
+ Jelly chocolate bar candy canes apple pie.
+
+
+
+
+ tonal
+
+
+
+
+ Ice cream cake candy canes.
+
+
+
+
+ Text
+
+
+
+
+ Pie icing biscuit soufflรฉ liquorice topping.
+
+
+
+
+ Outlined
+
+
+
+
+ Oat cake caramels sesame snaps candy.
+
+
+
+
+ Flat
+
+
+
+
+ Oat cake caramels sesame snaps candy.
+
+
+
+`,
+}
+
+export const vertical = {
+ ts: `
+
+
+
+ Open Snackbar
+
+
+
+ Sugar plum chocolate bar halvah sesame snaps apple pie donut croissant marshmallow. Sweet roll donut gummies sesame snaps icing bear claw tiramisu cotton candy.
+
+
+
+ Undo
+
+
+
+ Close
+
+
+
+
+`,
+ js: `
+
+
+
+ Open Snackbar
+
+
+
+ Sugar plum chocolate bar halvah sesame snaps apple pie donut croissant marshmallow. Sweet roll donut gummies sesame snaps icing bear claw tiramisu cotton candy.
+
+
+
+ Undo
+
+
+
+ Close
+
+
+
+
+`,
+}
+
+export const withAction = {
+ ts: `
+
+
+
+ Open Snackbar
+
+
+
+
+ Hello, I'm a snackbar with actions.
+
+
+
+ Close
+
+
+
+
+`,
+ js: `
+
+
+
+ Open Snackbar
+
+
+
+
+ Hello, I'm a snackbar with actions.
+
+
+
+ Close
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperAutoplay.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperAutoplay.vue
new file mode 100644
index 0000000..b9d0354
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperAutoplay.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperBasic.vue
new file mode 100644
index 0000000..80d923c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperBasic.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperCenteredSlidesOption1.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperCenteredSlidesOption1.vue
new file mode 100644
index 0000000..2bf0b1a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperCenteredSlidesOption1.vue
@@ -0,0 +1,84 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ text }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperCenteredSlidesOption2.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperCenteredSlidesOption2.vue
new file mode 100644
index 0000000..90e0468
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperCenteredSlidesOption2.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+ {{ text }}
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperCoverflowEffect.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperCoverflowEffect.vue
new file mode 100644
index 0000000..2138d58
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperCoverflowEffect.vue
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperCubeEffect.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperCubeEffect.vue
new file mode 100644
index 0000000..440c68c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperCubeEffect.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperFade.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperFade.vue
new file mode 100644
index 0000000..18018a6
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperFade.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperGallery.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperGallery.vue
new file mode 100644
index 0000000..f3c2d34
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperGallery.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperGrid.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperGrid.vue
new file mode 100644
index 0000000..66f7736
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperGrid.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperLazyLoading.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperLazyLoading.vue
new file mode 100644
index 0000000..a00ad41
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperLazyLoading.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperMultipleSlidesPerView.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperMultipleSlidesPerView.vue
new file mode 100644
index 0000000..1691496
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperMultipleSlidesPerView.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperNavigation.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperNavigation.vue
new file mode 100644
index 0000000..f4e50f0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperNavigation.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperPagination.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperPagination.vue
new file mode 100644
index 0000000..43dd82b
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperPagination.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperProgress.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperProgress.vue
new file mode 100644
index 0000000..5546f88
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperProgress.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperResponsiveBreakpoints.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperResponsiveBreakpoints.vue
new file mode 100644
index 0000000..5f539aa
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperResponsiveBreakpoints.vue
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperVirtualSlides.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperVirtualSlides.vue
new file mode 100644
index 0000000..a838627
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/DemoSwiperVirtualSlides.vue
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+ Prepend 2 Slides
+
+
+ Slide 1
+
+
+ Slide 250
+
+
+ Slide 500
+
+
+ Append Slide
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/demoCodeSwiper.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/demoCodeSwiper.ts
new file mode 100644
index 0000000..7c09b56
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/swiper/demoCodeSwiper.ts
@@ -0,0 +1,1750 @@
+export const autoplay = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const basic = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const centeredSlidesOption1 = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+ {{ text }}
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+ {{ text }}
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const centeredSlidesOption2 = {
+ ts: `
+
+
+
+
+
+
+
+
+ {{ text }}
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+ {{ text }}
+
+
+
+
+
+
+
+
+`,
+}
+
+export const coverflowEffect = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const cubeEffect = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const fade = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const gallery = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const grid = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const lazyLoading = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const multipleSlidesPerView = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const navigation = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const pagination = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const progress = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const responsiveBreakpoints = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const virtualSlides = {
+ ts: `
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+ Prepend 2 Slides
+
+
+ Slide 1
+
+
+ Slide 250
+
+
+ Slide 500
+
+
+ Append Slide
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+ Prepend 2 Slides
+
+
+ Slide 1
+
+
+ Slide 250
+
+
+ Slide 500
+
+
+ Append Slide
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsAlignment.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsAlignment.vue
new file mode 100644
index 0000000..665fd3c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsAlignment.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ Home
+ Service
+ Account
+
+
+
+
+
+
+ Home
+ Service
+ Account
+
+
+
+
+
+
+ Home
+ Service
+ Account
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsBasic.vue
new file mode 100644
index 0000000..72fc99f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsBasic.vue
@@ -0,0 +1,25 @@
+
+
+
+
+
+ Tab One
+ Tab Two
+ Tab Three
+
+
+
+
+
+ {{ tabItemContent }}
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsBasicPill.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsBasicPill.vue
new file mode 100644
index 0000000..60e7174
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsBasicPill.vue
@@ -0,0 +1,28 @@
+
+
+
+
+ Tab One
+ Tab Two
+ Tab Three
+
+
+
+
+
+
+ {{ tabItemContent }}
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsCustomIcons.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsCustomIcons.vue
new file mode 100644
index 0000000..9e46c57
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsCustomIcons.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+ Item {{ i }}
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsDynamic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsDynamic.vue
new file mode 100644
index 0000000..e196759
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsDynamic.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ Tab {{ n }}
+
+
+
+
+
+
+ Remove Tab
+
+
+
+ Add Tab
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsFixed.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsFixed.vue
new file mode 100644
index 0000000..0a19eae
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsFixed.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsGrow.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsGrow.vue
new file mode 100644
index 0000000..253654f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsGrow.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsPagination.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsPagination.vue
new file mode 100644
index 0000000..c29b377
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsPagination.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ Item {{ i }}
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsProgrammaticNavigation.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsProgrammaticNavigation.vue
new file mode 100644
index 0000000..01eef57
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsProgrammaticNavigation.vue
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+ {{ items[item - 1] }}
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsStacked.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsStacked.vue
new file mode 100644
index 0000000..fac9784
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsStacked.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+ Recent
+
+
+
+
+ Favorites
+
+
+
+
+ Nearby
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsVertical.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsVertical.vue
new file mode 100644
index 0000000..b2c1d04
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsVertical.vue
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+ Option 1
+
+
+
+
+ Option 2
+
+
+
+
+ Option 3
+
+
+
+
+
+
+
+
+ fsdfSed aliquam ultrices mauris. Donec posuere vulputate arcu. Morbi ac felis. Etiam feugiat lorem non metus. Sed a libero.
+
+
+
+ Phasellus dolor. Fusce neque. Fusce fermentum odio nec arcu. Pellentesque libero tortor, tincidunt et, tincidunt eget.
+
+
+
+
+
+ Morbi nec metus. Suspendisse faucibus, nunc et pellentesque egestas, lacus ante convallis tellus, vitae iaculis lacus elit id tortor. Sed mollis, eros et ultrices tempus, mauris ipsum aliquam libero.
+
+
+
+
+
+ Fusce a quam. Phasellus nec sem in justo pellentesque facilisis. Nam eget dui. Proin viverra, ligula sit amet ultrices semper.
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsVerticalPill.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsVerticalPill.vue
new file mode 100644
index 0000000..384b1f2
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/DemoTabsVerticalPill.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+ Option 1
+
+
+
+
+ Option 2
+
+
+
+
+ Option 3
+
+
+
+
+
+
+
+
+
+ Sed aliquam ultrices mauris. Donec posuere vulputate arcu. Morbi ac felis. Etiam feugiat lorem non metus. Sed a libero.
+
+
+
+ Phasellus dolor. Fusce neque. Fusce fermentum odio nec arcu. Pellentesque libero tortor, tincidunt et, tincidunt eget, semper nec, quam. Phasellus blandit leo ut odio.
+
+
+
+
+
+ Morbi nec metus. Suspendisse faucibus, nunc et pellentesque egestas, lacus ante convallis tellus, vitae iaculis lacus elit id tortor. Sed mollis, eros et ultrices tempus, mauris ipsum aliquam libero, non adipiscing dolor urna a orci. Curabitur ligula sapien, tincidunt non, euismod vitae, posuere imperdiet, leo. Nunc sed turpis.
+
+
+
+
+
+ Fusce a quam. Phasellus nec sem in justo pellentesque facilisis. Nam eget dui. Proin viverra, ligula sit amet ultrices semper, ligula arcu tristique sapien, a accumsan nisi mauris ac eros. In dui magna, posuere eget, vestibulum et, tempor auctor, justo.
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/demoCodeTabs.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/demoCodeTabs.ts
new file mode 100644
index 0000000..3469c13
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tabs/demoCodeTabs.ts
@@ -0,0 +1,1072 @@
+export const alignment = {
+ ts: `
+
+
+
+
+
+ Home
+ Service
+ Account
+
+
+
+
+
+
+ Home
+ Service
+ Account
+
+
+
+
+
+
+ Home
+ Service
+ Account
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ Home
+ Service
+ Account
+
+
+
+
+
+
+ Home
+ Service
+ Account
+
+
+
+
+
+
+ Home
+ Service
+ Account
+
+
+
+
+
+`,
+}
+
+export const basic = {
+ ts: `
+
+
+
+
+ Tab One
+ Tab Two
+ Tab Three
+
+
+
+
+
+ {{ tabItemContent }}
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+ Tab One
+ Tab Two
+ Tab Three
+
+
+
+
+
+ {{ tabItemContent }}
+
+
+
+
+
+`,
+}
+
+export const basicPill = {
+ ts: `
+
+
+
+ Tab One
+ Tab Two
+ Tab Three
+
+
+
+
+
+
+ {{ tabItemContent }}
+
+
+
+
+
+`,
+ js: `
+
+
+
+ Tab One
+ Tab Two
+ Tab Three
+
+
+
+
+
+
+ {{ tabItemContent }}
+
+
+
+
+
+`,
+}
+
+export const customIcons = {
+ ts: `
+
+
+
+
+
+ Item {{ i }}
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ Item {{ i }}
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
+`,
+}
+
+export const dynamic = {
+ ts: `
+
+
+
+
+
+ Tab {{ n }}
+
+
+
+
+
+
+ Remove Tab
+
+
+
+ Add Tab
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ Tab {{ n }}
+
+
+
+
+
+
+ Remove Tab
+
+
+
+ Add Tab
+
+
+
+
+`,
+}
+
+export const fixed = {
+ ts: `
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
+`,
+}
+
+export const grow = {
+ ts: `
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
+`,
+}
+
+export const pagination = {
+ ts: `
+
+
+
+
+
+ Item {{ i }}
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ Item {{ i }}
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
+`,
+}
+
+export const programmaticNavigation = {
+ ts: `
+
+
+
+
+
+ {{ items[item - 1] }}
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ {{ items[item - 1] }}
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+`,
+}
+
+export const stacked = {
+ ts: `
+
+
+
+
+
+
+ Recent
+
+
+
+
+ Favorites
+
+
+
+
+ Nearby
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ Recent
+
+
+
+
+ Favorites
+
+
+
+
+ Nearby
+
+
+
+
+
+
+ {{ tabItemText }}
+
+
+
+
+
+`,
+}
+
+export const vertical = {
+ ts: `
+
+
+
+
+
+
+
+
+ Option 1
+
+
+
+
+ Option 2
+
+
+
+
+ Option 3
+
+
+
+
+
+
+
+
+ fsdfSed aliquam ultrices mauris. Donec posuere vulputate arcu. Morbi ac felis. Etiam feugiat lorem non metus. Sed a libero.
+
+
+
+ Phasellus dolor. Fusce neque. Fusce fermentum odio nec arcu. Pellentesque libero tortor, tincidunt et, tincidunt eget.
+
+
+
+
+
+ Morbi nec metus. Suspendisse faucibus, nunc et pellentesque egestas, lacus ante convallis tellus, vitae iaculis lacus elit id tortor. Sed mollis, eros et ultrices tempus, mauris ipsum aliquam libero.
+
+
+
+
+
+ Fusce a quam. Phasellus nec sem in justo pellentesque facilisis. Nam eget dui. Proin viverra, ligula sit amet ultrices semper.
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+ Option 1
+
+
+
+
+ Option 2
+
+
+
+
+ Option 3
+
+
+
+
+
+
+
+
+ fsdfSed aliquam ultrices mauris. Donec posuere vulputate arcu. Morbi ac felis. Etiam feugiat lorem non metus. Sed a libero.
+
+
+
+ Phasellus dolor. Fusce neque. Fusce fermentum odio nec arcu. Pellentesque libero tortor, tincidunt et, tincidunt eget.
+
+
+
+
+
+ Morbi nec metus. Suspendisse faucibus, nunc et pellentesque egestas, lacus ante convallis tellus, vitae iaculis lacus elit id tortor. Sed mollis, eros et ultrices tempus, mauris ipsum aliquam libero.
+
+
+
+
+
+ Fusce a quam. Phasellus nec sem in justo pellentesque facilisis. Nam eget dui. Proin viverra, ligula sit amet ultrices semper.
+
+
+
+
+
+
+
+`,
+}
+
+export const verticalPill = {
+ ts: `
+
+
+
+
+
+
+
+ Option 1
+
+
+
+
+ Option 2
+
+
+
+
+ Option 3
+
+
+
+
+
+
+
+
+
+ Sed aliquam ultrices mauris. Donec posuere vulputate arcu. Morbi ac felis. Etiam feugiat lorem non metus. Sed a libero.
+
+
+
+ Phasellus dolor. Fusce neque. Fusce fermentum odio nec arcu. Pellentesque libero tortor, tincidunt et, tincidunt eget, semper nec, quam. Phasellus blandit leo ut odio.
+
+
+
+
+
+ Morbi nec metus. Suspendisse faucibus, nunc et pellentesque egestas, lacus ante convallis tellus, vitae iaculis lacus elit id tortor. Sed mollis, eros et ultrices tempus, mauris ipsum aliquam libero, non adipiscing dolor urna a orci. Curabitur ligula sapien, tincidunt non, euismod vitae, posuere imperdiet, leo. Nunc sed turpis.
+
+
+
+
+
+ Fusce a quam. Phasellus nec sem in justo pellentesque facilisis. Nam eget dui. Proin viverra, ligula sit amet ultrices semper, ligula arcu tristique sapien, a accumsan nisi mauris ac eros. In dui magna, posuere eget, vestibulum et, tempor auctor, justo.
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+ Option 1
+
+
+
+
+ Option 2
+
+
+
+
+ Option 3
+
+
+
+
+
+
+
+
+
+ Sed aliquam ultrices mauris. Donec posuere vulputate arcu. Morbi ac felis. Etiam feugiat lorem non metus. Sed a libero.
+
+
+
+ Phasellus dolor. Fusce neque. Fusce fermentum odio nec arcu. Pellentesque libero tortor, tincidunt et, tincidunt eget, semper nec, quam. Phasellus blandit leo ut odio.
+
+
+
+
+
+ Morbi nec metus. Suspendisse faucibus, nunc et pellentesque egestas, lacus ante convallis tellus, vitae iaculis lacus elit id tortor. Sed mollis, eros et ultrices tempus, mauris ipsum aliquam libero, non adipiscing dolor urna a orci. Curabitur ligula sapien, tincidunt non, euismod vitae, posuere imperdiet, leo. Nunc sed turpis.
+
+
+
+
+
+ Fusce a quam. Phasellus nec sem in justo pellentesque facilisis. Nam eget dui. Proin viverra, ligula sit amet ultrices semper, ligula arcu tristique sapien, a accumsan nisi mauris ac eros. In dui magna, posuere eget, vestibulum et, tempor auctor, justo.
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/timeline/TimelineBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/timeline/TimelineBasic.vue
new file mode 100644
index 0000000..72d38f8
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/timeline/TimelineBasic.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
+
+ 12 Invoices have been paid
+
+ 12 min ago
+
+
+
+
+ Invoices have been paid to the company
+
+
+
+
+
+ invoice.pdf
+
+
+
+
+
+
+
+
+
+
+ Client Meeting
+
+
45 min ago
+
+
+
+ Project meeting with john @10:15am
+
+
+
+
+
+
+
+
+
+ Lester McCarthy (Client)
+
+
CEO of Pixinvent
+
+
+
+
+
+
+
+
+
+
+
+ Create a new project for client
+
+ 2 Day Ago
+
+
+
+
+ 6 team members in a project
+
+
+
+
+
+
+ John Doe
+
+
+
+
+
+
+ Jennie Obrien
+
+
+
+
+
+
+ Peter Harper
+
+
+
+
+ +3
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/timeline/TimelineOutlined.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/timeline/TimelineOutlined.vue
new file mode 100644
index 0000000..4568fc5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/timeline/TimelineOutlined.vue
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 12 Invoices have been paid
+
+ 12 min ago
+
+
+
+
+ Invoices have been paid to the company
+
+
+
+
+
+ invoice.pdf
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Client Meeting
+
+
45 min ago
+
+
+
+ Project meeting with john @10:15am
+
+
+
+
+
+
+
+
+
+ Lester McCarthy (Client)
+
+
CEO of Pixinvent
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create a new project for client
+
+ 2 Day Ago
+
+
+
+
+ 6 team members in a project
+
+
+
+
+
+
+ John Doe
+
+
+
+
+
+
+ Jennie Obrien
+
+
+
+
+
+
+ Peter Harper
+
+
+
+
+ +3
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/timeline/TimelineWithIcons.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/timeline/TimelineWithIcons.vue
new file mode 100644
index 0000000..7be4e59
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/timeline/TimelineWithIcons.vue
@@ -0,0 +1,395 @@
+
+
+
+
+
+
+ Timeline with icons
+
+
+
+
+
+
+
+ 2 month's ago
+
+
+
+
+
+
+
+
+
+
+
+
+ You've uploaded doc pdf to the Pixinvent project
+
+
+
+
+ he process of recording the key project details and producing the documents that are required to implement it successfully. Simply put, it's an umbrella term which includes all the documents created over the course of the project.
+
+
+
+
+ documentation.pdf
+
+
+
+
+
+
+
+
+
+
+ 24 day's ago
+
+
+
+
+
+
+
+
+
+
+
+ Heather added 4 images to the Team album
+
+
+
+ In the Select Image for Project dialog box, choose one of the following: Under the Upload New Image section
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6 day's ago
+
+
+
+
+
+
+
+
+
+
+
+
+ Loretta write a review on Pixinvent
+
+
+
+
+
+
+
+
+ Loretta Moore
+
+
+ CTO of Airbnb
+
+
+
+
+
+
+
+
+
+ VERIFIED BUYER
+
+
+
+ I wish I could select more than one main reason for rating this. I love how they constantly work on to make the template better. I am so thankful for this. Also, in the past, they had responded well to my tickets. Thank you for this great theme, for such an amazing support, for the better updates. I wish I could rate this for so many times. I highly recommend this template!
+
+
+
+
+
+
+
+
+
+
+ 2 day's ago
+
+
+
+
+
+
+
+
+
+
+
+ Julia stiles shared an earnings report
+
+
+
+
+
+ $24,895
+
+
+
+ 10%
+
+
+
+ Compared to $84,325 last year
+
+
+
+
+
+
+
+
+
+ {{ earning.title }}
+
+
+
+
+ {{ earning.subtitle }}
+
+
+
+
+
+ {{ earning.amount }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2 day's ago
+
+
+
+
+ josh johnson shared Nuxt js project progress report
+
+
+
+ The structure and process are defined in the project organization considering the attainment of the corporate objectives and therefore also project objectives. The components of the project process are
+
+
+
+
+ progress-report.xls
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipDelayOnHover.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipDelayOnHover.vue
new file mode 100644
index 0000000..db8c541
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipDelayOnHover.vue
@@ -0,0 +1,12 @@
+
+
+
+ Open Delay On Hover
+ Open Delay On Hover
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipEvents.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipEvents.vue
new file mode 100644
index 0000000..08eec64
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipEvents.vue
@@ -0,0 +1,43 @@
+
+
+
+
+ Open On Hover
+
+ Open On Hover
+
+
+
+
+
+ Open On click
+
+
+ Open On click
+
+
+
+
+
+ Open On Hover + Focus
+
+ Open On Hover + Focus
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipLocation.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipLocation.vue
new file mode 100644
index 0000000..53e9a3f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipLocation.vue
@@ -0,0 +1,43 @@
+
+
+
+ Tooltip on End
+
+ End Tooltip
+
+
+
+
+ Tooltip on Start
+
+ Start Tooltip
+
+
+
+
+ Tooltip on Top
+
+ Top Tooltip
+
+
+
+
+ Tooltip on Bottom
+
+ Bottom Tooltip
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipTooltipOnVariousElements.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipTooltipOnVariousElements.vue
new file mode 100644
index 0000000..5557a76
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipTooltipOnVariousElements.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+ Button
+
+ Tooltip
+
+
+
+
+
+
+ Tooltip on Avatar
+
+
+
+
+
+
+
+ Tooltip on Icon
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipTransition.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipTransition.vue
new file mode 100644
index 0000000..49a732a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipTransition.vue
@@ -0,0 +1,39 @@
+
+
+
+
+ scale transition
+
+ Scale Transition
+
+
+
+
+
+ scroll X transition
+
+ Scroll X Transition
+
+
+
+
+
+ scroll y transition
+
+ Scroll Y Transition
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipVModelSupport.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipVModelSupport.vue
new file mode 100644
index 0000000..32a5ffa
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/DemoTooltipVModelSupport.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+ toggle tooltip
+
+
+
+
+
+
+ Programmatic tooltip
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/demoCodeTooltip.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/demoCodeTooltip.ts
new file mode 100644
index 0000000..e72bcb1
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/components/tooltip/demoCodeTooltip.ts
@@ -0,0 +1,427 @@
+export const delayOnHover = {
+ ts: `
+
+
+ Open Delay On Hover
+ Open Delay On Hover
+
+
+
+`,
+ js: `
+
+
+ Open Delay On Hover
+ Open Delay On Hover
+
+
+
+`,
+}
+
+export const events = {
+ ts: `
+
+
+
+ Open On Hover
+
+ Open On Hover
+
+
+
+
+
+ Open On click
+
+
+ Open On click
+
+
+
+
+
+ Open On Hover + Focus
+
+ Open On Hover + Focus
+
+
+
+
+`,
+ js: `
+
+
+
+ Open On Hover
+
+ Open On Hover
+
+
+
+
+
+ Open On click
+
+
+ Open On click
+
+
+
+
+
+ Open On Hover + Focus
+
+ Open On Hover + Focus
+
+
+
+
+`,
+}
+
+export const location = {
+ ts: `
+
+
+ Tooltip on End
+
+ End Tooltip
+
+
+
+
+ Tooltip on Start
+
+ Start Tooltip
+
+
+
+
+ Tooltip on Top
+
+ Top Tooltip
+
+
+
+
+ Tooltip on Bottom
+
+ Bottom Tooltip
+
+
+
+
+`,
+ js: `
+
+
+ Tooltip on End
+
+ End Tooltip
+
+
+
+
+ Tooltip on Start
+
+ Start Tooltip
+
+
+
+
+ Tooltip on Top
+
+ Top Tooltip
+
+
+
+
+ Tooltip on Bottom
+
+ Bottom Tooltip
+
+
+
+
+`,
+}
+
+export const tooltipOnVariousElements = {
+ ts: `
+
+
+
+
+ Button
+
+ Tooltip
+
+
+
+
+
+
+ Tooltip on Avatar
+
+
+
+
+
+
+
+ Tooltip on Icon
+
+
+
+`,
+ js: `
+
+
+
+
+ Button
+
+ Tooltip
+
+
+
+
+
+
+ Tooltip on Avatar
+
+
+
+
+
+
+
+ Tooltip on Icon
+
+
+
+`,
+}
+
+export const transition = {
+ ts: `
+
+
+
+ scale transition
+
+ Scale Transition
+
+
+
+
+
+ scroll X transition
+
+ Scroll X Transition
+
+
+
+
+
+ scroll y transition
+
+ Scroll Y Transition
+
+
+
+
+`,
+ js: `
+
+
+
+ scale transition
+
+ Scale Transition
+
+
+
+
+
+ scroll X transition
+
+ Scroll X Transition
+
+
+
+
+
+ scroll y transition
+
+ Scroll Y Transition
+
+
+
+
+`,
+}
+
+export const vModelSupport = {
+ ts: `
+
+
+
+
+ toggle tooltip
+
+
+
+
+
+
+ Programmatic tooltip
+
+
+
+`,
+ js: `
+
+
+
+
+ toggle tooltip
+
+
+
+
+
+
+ Programmatic tooltip
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteAsyncItems.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteAsyncItems.vue
new file mode 100644
index 0000000..bfe014a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteAsyncItems.vue
@@ -0,0 +1,96 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteBasic.vue
new file mode 100644
index 0000000..68e6cb3
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteBasic.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteChips.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteChips.vue
new file mode 100644
index 0000000..a9046be
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteChips.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteClearable.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteClearable.vue
new file mode 100644
index 0000000..a0f41c8
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteClearable.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteCustomFilter.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteCustomFilter.vue
new file mode 100644
index 0000000..75fc5db
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteCustomFilter.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteDensity.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteDensity.vue
new file mode 100644
index 0000000..7566e8f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteDensity.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteMultiple.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteMultiple.vue
new file mode 100644
index 0000000..d939e5e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteMultiple.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteSlots.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteSlots.vue
new file mode 100644
index 0000000..07244a4
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteSlots.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteStateSelector.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteStateSelector.vue
new file mode 100644
index 0000000..4a025ac
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteStateSelector.vue
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteValidation.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteValidation.vue
new file mode 100644
index 0000000..370bd04
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteValidation.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteVariant.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteVariant.vue
new file mode 100644
index 0000000..20f72b9
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/DemoAutocompleteVariant.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/demoCodeAutocomplete.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/demoCodeAutocomplete.ts
new file mode 100644
index 0000000..c64ad23
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/autocomplete/demoCodeAutocomplete.ts
@@ -0,0 +1,1000 @@
+export const asyncItems = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const basic = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const chips = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const clearable = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const customFilter = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const density = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const multiple = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const slots = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const stateSelector = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const validation = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const variant = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxBasic.vue
new file mode 100644
index 0000000..fcaa9f5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxBasic.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxCheckboxValue.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxCheckboxValue.vue
new file mode 100644
index 0000000..f301114
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxCheckboxValue.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxColors.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxColors.vue
new file mode 100644
index 0000000..1c72603
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxColors.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxDensity.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxDensity.vue
new file mode 100644
index 0000000..774882d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxDensity.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxIcon.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxIcon.vue
new file mode 100644
index 0000000..b4e8f1d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxIcon.vue
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxInlineTextField.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxInlineTextField.vue
new file mode 100644
index 0000000..9aaf890
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxInlineTextField.vue
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxLabelSlot.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxLabelSlot.vue
new file mode 100644
index 0000000..bbf2add
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxLabelSlot.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+ I agree that
+
+
+
+ Vuetify
+
+
+ Opens in new window
+
+ is awesome
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxModelAsArray.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxModelAsArray.vue
new file mode 100644
index 0000000..0f17f16
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxModelAsArray.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ selected }}
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxStates.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxStates.vue
new file mode 100644
index 0000000..b22feb0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/DemoCheckboxStates.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/demoCodeCheckbox.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/demoCodeCheckbox.ts
new file mode 100644
index 0000000..9fd4408
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/checkbox/demoCodeCheckbox.ts
@@ -0,0 +1,601 @@
+export const basic = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const checkboxValue = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const colors = {
+ ts: `
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+`,
+}
+
+export const density = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const icon = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const inlineTextField = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const labelSlot = {
+ ts: `
+
+
+
+
+
+ I agree that
+
+
+
+ Vuetify
+
+
+ Opens in new window
+
+ is awesome
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ I agree that
+
+
+
+ Vuetify
+
+
+ Opens in new window
+
+ is awesome
+
+
+
+
+`,
+}
+
+export const modelAsArray = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+ {{ selected }}
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+ {{ selected }}
+
+
+`,
+}
+
+export const states = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxBasic.vue
new file mode 100644
index 0000000..75558d3
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxBasic.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxClearable.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxClearable.vue
new file mode 100644
index 0000000..fb3adfe
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxClearable.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxDensity.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxDensity.vue
new file mode 100644
index 0000000..e0f2d4e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxDensity.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxMultiple.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxMultiple.vue
new file mode 100644
index 0000000..3b552fc
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxMultiple.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ String(item.title).charAt(0).toUpperCase() }}
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxNoDataWithChips.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxNoDataWithChips.vue
new file mode 100644
index 0000000..4451288
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxNoDataWithChips.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+ No results matching "{{ search }} ". Press enter to create a new one
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxVariant.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxVariant.vue
new file mode 100644
index 0000000..2a79b35
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/DemoComboboxVariant.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/demoCodeCombobox.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/demoCodeCombobox.ts
new file mode 100644
index 0000000..4b0b2a0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/combobox/demoCodeCombobox.ts
@@ -0,0 +1,474 @@
+export const basic = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const clearable = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const density = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const multiple = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ String(item.title).charAt(0).toUpperCase() }}
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ String(item.title).charAt(0).toUpperCase() }}
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+`,
+}
+
+export const noDataWithChips = {
+ ts: `
+
+
+
+
+
+
+ No results matching "{{ search }} ". Press enter to create a new one
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ No results matching "{{ search }} ". Press enter to create a new one
+
+
+
+
+
+`,
+}
+
+export const variant = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomCheckboxes.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomCheckboxes.vue
new file mode 100644
index 0000000..ff0cee6
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomCheckboxes.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomCheckboxesWithIcon.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomCheckboxesWithIcon.vue
new file mode 100644
index 0000000..8f9d4bc
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomCheckboxesWithIcon.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomCheckboxesWithImage.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomCheckboxesWithImage.vue
new file mode 100644
index 0000000..3629a0a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomCheckboxesWithImage.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomRadios.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomRadios.vue
new file mode 100644
index 0000000..d0551ca
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomRadios.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomRadiosWithIcon.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomRadiosWithIcon.vue
new file mode 100644
index 0000000..49836e5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomRadiosWithIcon.vue
@@ -0,0 +1,34 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomRadiosWithImage.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomRadiosWithImage.vue
new file mode 100644
index 0000000..3eeb0fe
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/DemoCustomInputCustomRadiosWithImage.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/demoCodeCustomInput.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/demoCodeCustomInput.ts
new file mode 100644
index 0000000..72170b6
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/custom-input/demoCodeCustomInput.ts
@@ -0,0 +1,407 @@
+export const customCheckboxes = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const customCheckboxesWithIcon = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const customCheckboxesWithImage = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const customRadios = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const customRadiosWithIcon = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const customRadiosWithImage = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerBasic.vue
new file mode 100644
index 0000000..0b5063a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerBasic.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerDateAndTime.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerDateAndTime.vue
new file mode 100644
index 0000000..844b100
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerDateAndTime.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerDisabledRange.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerDisabledRange.vue
new file mode 100644
index 0000000..146c3b4
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerDisabledRange.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerHumanFriendly.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerHumanFriendly.vue
new file mode 100644
index 0000000..3bbff91
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerHumanFriendly.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerInline.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerInline.vue
new file mode 100644
index 0000000..aab5359
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerInline.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerMultipleDates.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerMultipleDates.vue
new file mode 100644
index 0000000..b8877b4
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerMultipleDates.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerRange.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerRange.vue
new file mode 100644
index 0000000..efb86f2
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerRange.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerTimePicker.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerTimePicker.vue
new file mode 100644
index 0000000..b06bf23
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/DemoDateTimePickerTimePicker.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/demoCodeDateTimePicker.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/demoCodeDateTimePicker.ts
new file mode 100644
index 0000000..f1d093b
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/date-time-picker/demoCodeDateTimePicker.ts
@@ -0,0 +1,235 @@
+export const basic = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const dateAndTime = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const disabledRange = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const humanFriendly = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const inline = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const multipleDates = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const range = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const timePicker = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/editor/DemoEditorBasicEditor.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/editor/DemoEditorBasicEditor.vue
new file mode 100644
index 0000000..fac6022
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/editor/DemoEditorBasicEditor.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/editor/DemoEditorCustomEditor.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/editor/DemoEditorCustomEditor.vue
new file mode 100644
index 0000000..a5e581d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/editor/DemoEditorCustomEditor.vue
@@ -0,0 +1,269 @@
+
+
+
+
+
+
+ bold
+
+
+
+ italic
+
+
+
+ strike
+
+
+
+ code
+
+
+
+ clear marks
+
+
+
+ clear nodes
+
+
+
+ paragraph
+
+
+
+ h1
+
+
+
+ h2
+
+
+
+ h3
+
+
+
+ h4
+
+
+
+ h5
+
+
+
+ h6
+
+
+
+ bullet list
+
+
+
+ ordered list
+
+
+
+ code block
+
+
+
+ blockquote
+
+
+
+ horizontal rule
+
+
+
+ hard break
+
+
+
+ undo
+
+
+
+ redo
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/editor/demoCodeEditor.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/editor/demoCodeEditor.ts
new file mode 100644
index 0000000..6285ec6
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/editor/demoCodeEditor.ts
@@ -0,0 +1,611 @@
+export const basicEditor = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const customEditor = {
+ ts: `
+
+
+
+
+
+ bold
+
+
+
+ italic
+
+
+
+ strike
+
+
+
+ code
+
+
+
+ clear marks
+
+
+
+ clear nodes
+
+
+
+ paragraph
+
+
+
+ h1
+
+
+
+ h2
+
+
+
+ h3
+
+
+
+ h4
+
+
+
+ h5
+
+
+
+ h6
+
+
+
+ bullet list
+
+
+
+ ordered list
+
+
+
+ code block
+
+
+
+ blockquote
+
+
+
+ horizontal rule
+
+
+
+ hard break
+
+
+
+ undo
+
+
+
+ redo
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ bold
+
+
+
+ italic
+
+
+
+ strike
+
+
+
+ code
+
+
+
+ clear marks
+
+
+
+ clear nodes
+
+
+
+ paragraph
+
+
+
+ h1
+
+
+
+ h2
+
+
+
+ h3
+
+
+
+ h4
+
+
+
+ h5
+
+
+
+ h6
+
+
+
+ bullet list
+
+
+
+ ordered list
+
+
+
+ code block
+
+
+
+ blockquote
+
+
+
+ horizontal rule
+
+
+
+ hard break
+
+
+
+ undo
+
+
+
+ redo
+
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputAccept.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputAccept.vue
new file mode 100644
index 0000000..6860eda
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputAccept.vue
@@ -0,0 +1,6 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputBasic.vue
new file mode 100644
index 0000000..987c56c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputBasic.vue
@@ -0,0 +1,3 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputChips.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputChips.vue
new file mode 100644
index 0000000..20d0014
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputChips.vue
@@ -0,0 +1,6 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputCounter.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputCounter.vue
new file mode 100644
index 0000000..c065c52
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputCounter.vue
@@ -0,0 +1,8 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputDensity.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputDensity.vue
new file mode 100644
index 0000000..6b9d1dc
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputDensity.vue
@@ -0,0 +1,6 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputLoading.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputLoading.vue
new file mode 100644
index 0000000..25ff8fc
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputLoading.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputMultiple.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputMultiple.vue
new file mode 100644
index 0000000..7fc2a9a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputMultiple.vue
@@ -0,0 +1,6 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputPrependIcon.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputPrependIcon.vue
new file mode 100644
index 0000000..24e2931
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputPrependIcon.vue
@@ -0,0 +1,6 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputSelectionSlot.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputSelectionSlot.vue
new file mode 100644
index 0000000..b0e7370
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputSelectionSlot.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+ {{ fileName }}
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputShowSize.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputShowSize.vue
new file mode 100644
index 0000000..30038e1
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputShowSize.vue
@@ -0,0 +1,6 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputValidation.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputValidation.vue
new file mode 100644
index 0000000..3e1c974
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputValidation.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputVariant.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputVariant.vue
new file mode 100644
index 0000000..23da8e0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/DemoFileInputVariant.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/demoCodeFileInput.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/demoCodeFileInput.ts
new file mode 100644
index 0000000..f389b9a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/file-input/demoCodeFileInput.ts
@@ -0,0 +1,375 @@
+export const accept = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const basic = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const chips = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const counter = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const density = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const loading = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const multiple = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const prependIcon = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const selectionSlot = {
+ ts: `
+
+
+
+
+
+
+ {{ fileName }}
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ {{ fileName }}
+
+
+
+
+
+`,
+}
+
+export const showSize = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const validation = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const variant = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/otp-input/DemoOtpInputBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/otp-input/DemoOtpInputBasic.vue
new file mode 100644
index 0000000..5cc1644
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/otp-input/DemoOtpInputBasic.vue
@@ -0,0 +1,3 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/otp-input/DemoOtpInputFinish.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/otp-input/DemoOtpInputFinish.vue
new file mode 100644
index 0000000..cbcf14e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/otp-input/DemoOtpInputFinish.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+ Expected value: {{ expectedOtp }}
+
+
+
+ {{ text }}
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/otp-input/DemoOtpInputHidden.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/otp-input/DemoOtpInputHidden.vue
new file mode 100644
index 0000000..20db36d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/otp-input/DemoOtpInputHidden.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/otp-input/demoCodeOtpInput.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/otp-input/demoCodeOtpInput.ts
new file mode 100644
index 0000000..166ec99
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/otp-input/demoCodeOtpInput.ts
@@ -0,0 +1,127 @@
+export const basic = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const finish = {
+ ts: `
+
+
+
+
+
+
+ Expected value: {{ expectedOtp }}
+
+
+
+ {{ text }}
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ Expected value: {{ expectedOtp }}
+
+
+
+ {{ text }}
+
+
+
+`,
+}
+
+export const hidden = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioBasic.vue
new file mode 100644
index 0000000..0086229
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioBasic.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioColors.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioColors.vue
new file mode 100644
index 0000000..f7bebe2
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioColors.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioDensity.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioDensity.vue
new file mode 100644
index 0000000..ebc22ee
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioDensity.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioIcon.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioIcon.vue
new file mode 100644
index 0000000..a8f66fc
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioIcon.vue
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioInline.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioInline.vue
new file mode 100644
index 0000000..bf09fed
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioInline.vue
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioLabelSlot.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioLabelSlot.vue
new file mode 100644
index 0000000..00d5424
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioLabelSlot.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+ Your favorite search engine
+
+
+
+
+
+ Of course it's
+ Google
+
+
+
+
+
+
+
+
+ Definitely
+ DuckDuckGo
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioValidation.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioValidation.vue
new file mode 100644
index 0000000..60cbe26
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/DemoRadioValidation.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/demoCodeRadio.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/demoCodeRadio.ts
new file mode 100644
index 0000000..c83b16e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/radio/demoCodeRadio.ts
@@ -0,0 +1,394 @@
+export const basic = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const colors = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const density = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const icon = {
+ ts: `
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+`,
+}
+
+export const inline = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const labelSlot = {
+ ts: `
+
+
+
+
+ Your favorite search engine
+
+
+
+
+
+ Of course it's
+ Google
+
+
+
+
+
+
+
+
+ Definitely
+ DuckDuckGo
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+ Your favorite search engine
+
+
+
+
+
+ Of course it's
+ Google
+
+
+
+
+
+
+
+
+ Definitely
+ DuckDuckGo
+
+
+
+
+
+
+`,
+}
+
+export const validation = {
+ ts: `
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderBasic.vue
new file mode 100644
index 0000000..654aec5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderBasic.vue
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderColor.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderColor.vue
new file mode 100644
index 0000000..70cf0a0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderColor.vue
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderDisabled.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderDisabled.vue
new file mode 100644
index 0000000..7831161
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderDisabled.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderStep.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderStep.vue
new file mode 100644
index 0000000..a869efb
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderStep.vue
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderThumbLabel.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderThumbLabel.vue
new file mode 100644
index 0000000..c9aea02
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderThumbLabel.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderVertical.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderVertical.vue
new file mode 100644
index 0000000..72da8a5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/DemoRangeSliderVertical.vue
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/demoCodeRangeSlider.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/demoCodeRangeSlider.ts
new file mode 100644
index 0000000..2144c54
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/range-slider/demoCodeRangeSlider.ts
@@ -0,0 +1,199 @@
+export const basic = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const color = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const disabled = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const step = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const thumbLabel = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const vertical = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingBasic.vue
new file mode 100644
index 0000000..a750746
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingBasic.vue
@@ -0,0 +1,3 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingClearable.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingClearable.vue
new file mode 100644
index 0000000..c158876
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingClearable.vue
@@ -0,0 +1,3 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingColors.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingColors.vue
new file mode 100644
index 0000000..75dee5b
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingColors.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingDensity.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingDensity.vue
new file mode 100644
index 0000000..aea18b9
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingDensity.vue
@@ -0,0 +1,3 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingHover.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingHover.vue
new file mode 100644
index 0000000..a5fbea0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingHover.vue
@@ -0,0 +1,3 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingIncremented.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingIncremented.vue
new file mode 100644
index 0000000..ecb1013
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingIncremented.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingItemSlot.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingItemSlot.vue
new file mode 100644
index 0000000..92f77fa
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingItemSlot.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingLength.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingLength.vue
new file mode 100644
index 0000000..f5f257d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingLength.vue
@@ -0,0 +1,24 @@
+
+
+
+
+ Custom length
+
+
+
+
+
+
+ Model: {{ rating }}
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingReadonly.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingReadonly.vue
new file mode 100644
index 0000000..dc1eaa1
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingReadonly.vue
@@ -0,0 +1,6 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingSize.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingSize.vue
new file mode 100644
index 0000000..bad8138
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/DemoRatingSize.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/demoCodeRating.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/demoCodeRating.ts
new file mode 100644
index 0000000..3715697
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/rating/demoCodeRating.ts
@@ -0,0 +1,271 @@
+export const basic = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const clearable = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const colors = {
+ ts: `
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+`,
+}
+
+export const density = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const hover = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const incremented = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const itemSlot = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const length = {
+ ts: `
+
+
+
+ Custom length
+
+
+
+
+
+
+ Model: {{ rating }}
+
+
+`,
+ js: `
+
+
+
+ Custom length
+
+
+
+
+
+
+ Model: {{ rating }}
+
+
+`,
+}
+
+export const readonly = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const size = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectBasic.vue
new file mode 100644
index 0000000..8693ab6
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectBasic.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectChips.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectChips.vue
new file mode 100644
index 0000000..719684f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectChips.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectCustomTextAndValue.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectCustomTextAndValue.vue
new file mode 100644
index 0000000..ffd4497
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectCustomTextAndValue.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectDensity.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectDensity.vue
new file mode 100644
index 0000000..fcf5d2e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectDensity.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectIcons.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectIcons.vue
new file mode 100644
index 0000000..ab0fbdf
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectIcons.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectMenuProps.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectMenuProps.vue
new file mode 100644
index 0000000..abd3e3f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectMenuProps.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectMultiple.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectMultiple.vue
new file mode 100644
index 0000000..dfef2e8
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectMultiple.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectSelectionSlot.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectSelectionSlot.vue
new file mode 100644
index 0000000..18761cc
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectSelectionSlot.vue
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectVariant.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectVariant.vue
new file mode 100644
index 0000000..3439305
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/DemoSelectVariant.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/demoCodeSelect.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/demoCodeSelect.ts
new file mode 100644
index 0000000..e173a82
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/select/demoCodeSelect.ts
@@ -0,0 +1,642 @@
+export const basic = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const chips = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const customTextAndValue = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const density = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const icons = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const menuProps = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const multiple = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const selectionSlot = {
+ ts: `
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+`,
+}
+
+export const variant = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderAppendAndPrepend.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderAppendAndPrepend.vue
new file mode 100644
index 0000000..1bd0a42
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderAppendAndPrepend.vue
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+ BPM
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderAppendTextField.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderAppendTextField.vue
new file mode 100644
index 0000000..9f7c4c9
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderAppendTextField.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderBasic.vue
new file mode 100644
index 0000000..62d6742
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderBasic.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderColors.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderColors.vue
new file mode 100644
index 0000000..dd7010f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderColors.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+ color
+
+
+
+
+
+
+ track-color
+
+
+
+
+
+
+ thumb-color
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderDisabledAndReadonly.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderDisabledAndReadonly.vue
new file mode 100644
index 0000000..941a769
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderDisabledAndReadonly.vue
@@ -0,0 +1,25 @@
+
+
+
+
+ Disabled
+
+
+
+
+
+
+ Readonly
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderIcons.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderIcons.vue
new file mode 100644
index 0000000..80e67bd
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderIcons.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderMinAndMax.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderMinAndMax.vue
new file mode 100644
index 0000000..04f7741
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderMinAndMax.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderSize.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderSize.vue
new file mode 100644
index 0000000..c33710c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderSize.vue
@@ -0,0 +1,9 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderStep.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderStep.vue
new file mode 100644
index 0000000..995e955
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderStep.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderThumb.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderThumb.vue
new file mode 100644
index 0000000..862a2e5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderThumb.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+ Show thumb when using slider
+
+
+
+
+
+
+ Always show thumb label
+
+
+
+
+
+
+ Custom thumb size
+
+
+
+
+
+
+ Custom thumb label
+
+
+
+ {{ satisfactionEmojis[Math.min(Math.floor(modelValue / 10), 9)] }}
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderTicks.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderTicks.vue
new file mode 100644
index 0000000..8ab89ac
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderTicks.vue
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ Show ticks when using slider
+
+
+
+
+
+
+ Always show ticks
+
+
+
+
+
+
+ Tick size
+
+
+
+
+
+
+ Tick labels
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderValidation.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderValidation.vue
new file mode 100644
index 0000000..552f326
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderValidation.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderVertical.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderVertical.vue
new file mode 100644
index 0000000..70691e4
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/DemoSliderVertical.vue
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/demoCodeSlider.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/demoCodeSlider.ts
new file mode 100644
index 0000000..cd62cee
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/slider/demoCodeSlider.ts
@@ -0,0 +1,1046 @@
+export const appendAndPrepend = {
+ ts: `
+
+
+
+
+
+ BPM
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ BPM
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const appendTextField = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const basic = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const colors = {
+ ts: `
+
+
+
+
+
+ color
+
+
+
+
+
+
+ track-color
+
+
+
+
+
+
+ thumb-color
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ color
+
+
+
+
+
+
+ track-color
+
+
+
+
+
+
+ thumb-color
+
+
+
+
+
+`,
+}
+
+export const disabledAndReadonly = {
+ ts: `
+
+
+
+ Disabled
+
+
+
+
+
+
+ Readonly
+
+
+
+
+
+`,
+ js: `
+
+
+
+ Disabled
+
+
+
+
+
+
+ Readonly
+
+
+
+
+
+`,
+}
+
+export const icons = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const minAndMax = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const size = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const step = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const thumb = {
+ ts: `
+
+
+
+
+
+ Show thumb when using slider
+
+
+
+
+
+
+ Always show thumb label
+
+
+
+
+
+
+ Custom thumb size
+
+
+
+
+
+
+ Custom thumb label
+
+
+
+ {{ satisfactionEmojis[Math.min(Math.floor(modelValue / 10), 9)] }}
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ Show thumb when using slider
+
+
+
+
+
+
+ Always show thumb label
+
+
+
+
+
+
+ Custom thumb size
+
+
+
+
+
+
+ Custom thumb label
+
+
+
+ {{ satisfactionEmojis[Math.min(Math.floor(modelValue / 10), 9)] }}
+
+
+
+
+
+`,
+}
+
+export const ticks = {
+ ts: `
+
+
+
+
+
+ Show ticks when using slider
+
+
+
+
+
+
+ Always show ticks
+
+
+
+
+
+
+ Tick size
+
+
+
+
+
+
+ Tick labels
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ Show ticks when using slider
+
+
+
+
+
+
+ Always show ticks
+
+
+
+
+
+
+ Tick size
+
+
+
+
+
+
+ Tick labels
+
+
+
+
+
+`,
+}
+
+export const validation = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const vertical = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchBasic.vue
new file mode 100644
index 0000000..036fdda
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchBasic.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchColors.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchColors.vue
new file mode 100644
index 0000000..9b1721b
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchColors.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchInset.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchInset.vue
new file mode 100644
index 0000000..cdb99af
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchInset.vue
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchLabelSlot.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchLabelSlot.vue
new file mode 100644
index 0000000..cdcccb5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchLabelSlot.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+ Turn on the progress:
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchModelAsArray.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchModelAsArray.vue
new file mode 100644
index 0000000..6e4910b
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchModelAsArray.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+ {{ people }}
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchStates.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchStates.vue
new file mode 100644
index 0000000..d46ac9c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchStates.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchTrueAndFalseValue.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchTrueAndFalseValue.vue
new file mode 100644
index 0000000..d2d1c57
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/DemoSwitchTrueAndFalseValue.vue
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/demoCodeSwitch.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/demoCodeSwitch.ts
new file mode 100644
index 0000000..fffbab9
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/switch/demoCodeSwitch.ts
@@ -0,0 +1,353 @@
+export const basic = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
+
+export const colors = {
+ ts: `
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+`,
+}
+
+export const inset = {
+ ts: `
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+`,
+}
+
+export const labelSlot = {
+ ts: `
+
+
+
+
+ Turn on the progress:
+
+
+
+`,
+ js: `
+
+
+
+
+ Turn on the progress:
+
+
+
+`,
+}
+
+export const modelAsArray = {
+ ts: `
+
+
+
+
+
+
+
+
+
+ {{ people }}
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+ {{ people }}
+
+
+`,
+}
+
+export const states = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const trueAndFalseValue = {
+ ts: `
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaAutoGrow.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaAutoGrow.vue
new file mode 100644
index 0000000..c08d12c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaAutoGrow.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaBasic.vue
new file mode 100644
index 0000000..6b499ad
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaBasic.vue
@@ -0,0 +1,6 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaBrowserAutocomplete.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaBrowserAutocomplete.vue
new file mode 100644
index 0000000..d1742d9
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaBrowserAutocomplete.vue
@@ -0,0 +1,7 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaClearable.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaClearable.vue
new file mode 100644
index 0000000..23b2d30
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaClearable.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaCounter.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaCounter.vue
new file mode 100644
index 0000000..aefa03f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaCounter.vue
@@ -0,0 +1,12 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaIcons.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaIcons.vue
new file mode 100644
index 0000000..7cab369
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaIcons.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaNoResize.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaNoResize.vue
new file mode 100644
index 0000000..684291b
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaNoResize.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaRows.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaRows.vue
new file mode 100644
index 0000000..696b3af
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaRows.vue
@@ -0,0 +1,55 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaStates.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaStates.vue
new file mode 100644
index 0000000..6086b81
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaStates.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaValidation.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaValidation.vue
new file mode 100644
index 0000000..5b8de57
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaValidation.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaVariant.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaVariant.vue
new file mode 100644
index 0000000..3d0239a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/DemoTextareaVariant.vue
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/demoCodeTextarea.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/demoCodeTextarea.ts
new file mode 100644
index 0000000..ea9f865
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textarea/demoCodeTextarea.ts
@@ -0,0 +1,590 @@
+export const autoGrow = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const basic = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const browserAutocomplete = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const clearable = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const counter = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const icons = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const noResize = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const rows = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const states = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const validation = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const variant = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldBasic.vue
new file mode 100644
index 0000000..a93e146
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldBasic.vue
@@ -0,0 +1,6 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldClearable.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldClearable.vue
new file mode 100644
index 0000000..37f75c6
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldClearable.vue
@@ -0,0 +1,7 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldCounter.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldCounter.vue
new file mode 100644
index 0000000..6b40d49
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldCounter.vue
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldCustomColors.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldCustomColors.vue
new file mode 100644
index 0000000..8f391ef
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldCustomColors.vue
@@ -0,0 +1,7 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldDensity.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldDensity.vue
new file mode 100644
index 0000000..ac850df
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldDensity.vue
@@ -0,0 +1,7 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldIconEvents.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldIconEvents.vue
new file mode 100644
index 0000000..c14355f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldIconEvents.vue
@@ -0,0 +1,39 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldIconSlots.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldIconSlots.vue
new file mode 100644
index 0000000..5d3660a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldIconSlots.vue
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+ I'm a tooltip
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Click me
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldIcons.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldIcons.vue
new file mode 100644
index 0000000..f1323ee
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldIcons.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldLabelSlot.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldLabelSlot.vue
new file mode 100644
index 0000000..4dc25de
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldLabelSlot.vue
@@ -0,0 +1,8 @@
+
+
+
+ What about icon here?
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldPasswordInput.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldPasswordInput.vue
new file mode 100644
index 0000000..fcef1e9
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldPasswordInput.vue
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldPrefixesAndSuffixes.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldPrefixesAndSuffixes.vue
new file mode 100644
index 0000000..7333eba
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldPrefixesAndSuffixes.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldSingleLine.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldSingleLine.vue
new file mode 100644
index 0000000..a4fbc5f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldSingleLine.vue
@@ -0,0 +1,7 @@
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldState.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldState.vue
new file mode 100644
index 0000000..43bda18
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldState.vue
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldValidation.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldValidation.vue
new file mode 100644
index 0000000..a47613b
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldValidation.vue
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldVariant.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldVariant.vue
new file mode 100644
index 0000000..430f541
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/DemoTextfieldVariant.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/demoCodeTextfield.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/demoCodeTextfield.ts
new file mode 100644
index 0000000..2a154d7
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-elements/textfield/demoCodeTextfield.ts
@@ -0,0 +1,947 @@
+export const basic = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const clearable = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const counter = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const customColors = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const density = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const iconEvents = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const iconSlots = {
+ ts: `
+
+
+
+
+
+
+
+
+
+ I'm a tooltip
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Click me
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+ I'm a tooltip
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Click me
+
+
+
+
+
+
+`,
+}
+
+export const icons = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const labelSlot = {
+ ts: `
+
+
+ What about icon here?
+
+
+
+
+`,
+ js: `
+
+
+ What about icon here?
+
+
+
+
+`,
+}
+
+export const passwordInput = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const prefixesAndSuffixes = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const singleLine = {
+ ts: `
+
+
+`,
+ js: `
+
+
+`,
+}
+
+export const state = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const validation = {
+ ts: `
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+`,
+}
+
+export const variant = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutCollapsible.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutCollapsible.vue
new file mode 100644
index 0000000..3944e59
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutCollapsible.vue
@@ -0,0 +1,355 @@
+
+
+
+
+
+
+ Delivery Address
+
+
+ {}"
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Delivery Options
+
+
+
+
+
+
+
+
+
+ Standard 3-5 Days
+
+
+ Free
+
+
+
Friday, 15 Nov - Monday, 18 Nov
+
+
+
+
+
+
+
+ Express
+
+
+ $5.00
+
+
+
Friday, 15 Nov - Sunday, 17 Nov
+
+
+
+
+
+
+
+ Overnight
+
+
+ $10.00
+
+
+
Friday, 15 Nov - Saturday, 16 Nov
+
+
+
+
+
+
+
+
+
+ Payment Method
+
+
+
+
+
+
+
+
+
+
+
+ {{ payment.radioLabel }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cash on Delivery is a type of payment method where the recipient make payment for the order at the time of delivery rather than in advance.
+
+
+
+
+
+
+
+
+
+
+
+ Place Order
+
+ Cancel
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutFormHint.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutFormHint.vue
new file mode 100644
index 0000000..0990241
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutFormHint.vue
@@ -0,0 +1,84 @@
+
+
+
+ {}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+ Reset
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutFormSticky.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutFormSticky.vue
new file mode 100644
index 0000000..fabc703
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutFormSticky.vue
@@ -0,0 +1,379 @@
+
+
+
+
+
+
+
+
+
+
+
+ 1. Delivery Address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address Type
+
+
+
+
+
+
+
+
+
+
+
+ 2. Delivery Type
+
+
+
+
+
+
+
+ 3. Apply Promo code
+
+
+
+
+ Apply
+
+
+
+
+ OR
+
+
+
+
+
+
+
+ Apply
+
+
+
+
+
+
+
+
+ 4. Payment Method
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cash on delivery is a mode of payment where you make the payment after the goods/services are received.
+
+
You can pay cash or make the payment via debit/credit card directly to the delivery person.
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutFormValidation.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutFormValidation.vue
new file mode 100644
index 0000000..bd04df3
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutFormValidation.vue
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Validate
+
+
+
+ Reset Form
+
+
+
+ Reset Validation
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutFormWithTabs.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutFormWithTabs.vue
new file mode 100644
index 0000000..8b38268
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutFormWithTabs.vue
@@ -0,0 +1,260 @@
+
+
+
+
+
+ Personal Info
+
+
+ Account Details
+
+
+ Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+ Cancel
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutHorizontalForm.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutHorizontalForm.vue
new file mode 100644
index 0000000..d4e99a8
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutHorizontalForm.vue
@@ -0,0 +1,175 @@
+
+
+
+ {}">
+
+
+
+
+
+ First Name
+
+
+
+
+
+
+
+
+
+
+
+
+ Email
+
+
+
+
+
+
+
+
+
+
+
+
+ Mobile
+
+
+
+
+
+
+
+
+
+
+
+
+ Password
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+ Reset
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutHorizontalFormWithIcons.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutHorizontalFormWithIcons.vue
new file mode 100644
index 0000000..62fa696
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutHorizontalFormWithIcons.vue
@@ -0,0 +1,179 @@
+
+
+
+ {}">
+
+
+
+
+
+ First Name
+
+
+
+
+
+
+
+
+
+
+
+
+ Email
+
+
+
+
+
+
+
+
+
+
+
+
+ Mobile
+
+
+
+
+
+
+
+
+
+
+
+
+ Password
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+ Reset
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutMultipleColumn.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutMultipleColumn.vue
new file mode 100644
index 0000000..236a301
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutMultipleColumn.vue
@@ -0,0 +1,112 @@
+
+
+
+ {}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+ Reset
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutSticky.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutSticky.vue
new file mode 100644
index 0000000..fbd16cb
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutSticky.vue
@@ -0,0 +1,383 @@
+
+
+
+
+
+
+
+
+
+
+
+ 1. Delivery Address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address Type
+
+
+
+
+
+
+
+
+
+
+
+ 2. Delivery Type
+
+
+
+
+
+
+
+ 3. Apply Promo code
+
+
+
+
+
+
+ OR
+
+
+
+
+
+
+
+ Apply
+
+
+
+
+
+
+
+
+ 4. Payment Method
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cash on delivery is a mode of payment where you make the payment after the goods/services are received.
+
+
You can pay cash or make the payment via debit/credit card directly to the delivery person.
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutVerticalForm.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutVerticalForm.vue
new file mode 100644
index 0000000..6e0fb18
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutVerticalForm.vue
@@ -0,0 +1,73 @@
+
+
+
+ {}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+ Reset
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutVerticalFormWithIcons.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutVerticalFormWithIcons.vue
new file mode 100644
index 0000000..b92d60d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/DemoFormLayoutVerticalFormWithIcons.vue
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+ Reset
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/demoCodeFormLayout.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/demoCodeFormLayout.ts
new file mode 100644
index 0000000..8f731cb
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-layout/demoCodeFormLayout.ts
@@ -0,0 +1,4417 @@
+export const collapsible = {
+ ts: `
+
+
+
+
+
+ Delivery Address
+
+
+ {}"
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Delivery Options
+
+
+
+
+
+
+
+
+
+ Standard 3-5 Days
+
+
+ Free
+
+
+
Friday, 15 Nov - Monday, 18 Nov
+
+
+
+
+
+
+
+ Express
+
+
+ $5.00
+
+
+
Friday, 15 Nov - Sunday, 17 Nov
+
+
+
+
+
+
+
+ Overnight
+
+
+ $10.00
+
+
+
Friday, 15 Nov - Saturday, 16 Nov
+
+
+
+
+
+
+
+
+
+ Payment Method
+
+
+
+
+
+
+
+
+
+
+
+ {{ payment.radioLabel }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cash on Delivery is a type of payment method where the recipient make payment for the order at the time of delivery rather than in advance.
+
+
+
+
+
+
+
+
+
+
+
+ Place Order
+
+ Cancel
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+ Delivery Address
+
+
+ {}"
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Delivery Options
+
+
+
+
+
+
+
+
+
+ Standard 3-5 Days
+
+
+ Free
+
+
+
Friday, 15 Nov - Monday, 18 Nov
+
+
+
+
+
+
+
+ Express
+
+
+ $5.00
+
+
+
Friday, 15 Nov - Sunday, 17 Nov
+
+
+
+
+
+
+
+ Overnight
+
+
+ $10.00
+
+
+
Friday, 15 Nov - Saturday, 16 Nov
+
+
+
+
+
+
+
+
+
+ Payment Method
+
+
+
+
+
+
+
+
+
+
+
+ {{ payment.radioLabel }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cash on Delivery is a type of payment method where the recipient make payment for the order at the time of delivery rather than in advance.
+
+
+
+
+
+
+
+
+
+
+
+ Place Order
+
+ Cancel
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const formHint = {
+ ts: `
+
+
+ {}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+ Reset
+
+
+
+
+
+`,
+ js: `
+
+
+ {}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+ Reset
+
+
+
+
+
+`,
+}
+
+export const formSticky = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+ 1. Delivery Address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address Type
+
+
+
+
+
+
+
+
+
+
+
+ 2. Delivery Type
+
+
+
+
+
+
+
+ 3. Apply Promo code
+
+
+
+
+ Apply
+
+
+
+
+ OR
+
+
+
+
+
+
+
+ Apply
+
+
+
+
+
+
+
+
+ 4. Payment Method
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cash on delivery is a mode of payment where you make the payment after the goods/services are received.
+
+
You can pay cash or make the payment via debit/credit card directly to the delivery person.
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+ 1. Delivery Address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address Type
+
+
+
+
+
+
+
+
+
+
+
+ 2. Delivery Type
+
+
+
+
+
+
+
+ 3. Apply Promo code
+
+
+
+
+ Apply
+
+
+
+
+ OR
+
+
+
+
+
+
+
+ Apply
+
+
+
+
+
+
+
+
+ 4. Payment Method
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cash on delivery is a mode of payment where you make the payment after the goods/services are received.
+
+
You can pay cash or make the payment via debit/credit card directly to the delivery person.
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const formValidation = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Validate
+
+
+
+ Reset Form
+
+
+
+ Reset Validation
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Validate
+
+
+
+ Reset Form
+
+
+
+ Reset Validation
+
+
+
+
+
+`,
+}
+
+export const formWithTabs = {
+ ts: `
+
+
+
+
+ Personal Info
+
+
+ Account Details
+
+
+ Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+ Cancel
+
+
+
+
+`,
+ js: `
+
+
+
+
+ Personal Info
+
+
+ Account Details
+
+
+ Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+ Cancel
+
+
+
+
+`,
+}
+
+export const horizontalForm = {
+ ts: `
+
+
+ {}">
+
+
+
+
+
+ First Name
+
+
+
+
+
+
+
+
+
+
+
+
+ Email
+
+
+
+
+
+
+
+
+
+
+
+
+ Mobile
+
+
+
+
+
+
+
+
+
+
+
+
+ Password
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+ Reset
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+ {}">
+
+
+
+
+
+ First Name
+
+
+
+
+
+
+
+
+
+
+
+
+ Email
+
+
+
+
+
+
+
+
+
+
+
+
+ Mobile
+
+
+
+
+
+
+
+
+
+
+
+
+ Password
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+ Reset
+
+
+
+
+
+
+
+`,
+}
+
+export const horizontalFormWithIcons = {
+ ts: `
+
+
+ {}">
+
+
+
+
+
+ First Name
+
+
+
+
+
+
+
+
+
+
+
+
+ Email
+
+
+
+
+
+
+
+
+
+
+
+
+ Mobile
+
+
+
+
+
+
+
+
+
+
+
+
+ Password
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+ Reset
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+ {}">
+
+
+
+
+
+ First Name
+
+
+
+
+
+
+
+
+
+
+
+
+ Email
+
+
+
+
+
+
+
+
+
+
+
+
+ Mobile
+
+
+
+
+
+
+
+
+
+
+
+
+ Password
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+ Reset
+
+
+
+
+
+
+
+`,
+}
+
+export const multipleColumn = {
+ ts: `
+
+
+ {}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+ Reset
+
+
+
+
+
+`,
+ js: `
+
+
+ {}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+ Reset
+
+
+
+
+
+`,
+}
+
+export const sticky = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+ 1. Delivery Address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address Type
+
+
+
+
+
+
+
+
+
+
+
+ 2. Delivery Type
+
+
+
+
+
+
+
+ 3. Apply Promo code
+
+
+
+
+
+
+ OR
+
+
+
+
+
+
+
+ Apply
+
+
+
+
+
+
+
+
+ 4. Payment Method
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cash on delivery is a mode of payment where you make the payment after the goods/services are received.
+
+
You can pay cash or make the payment via debit/credit card directly to the delivery person.
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+ 1. Delivery Address
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address Type
+
+
+
+
+
+
+
+
+
+
+
+ 2. Delivery Type
+
+
+
+
+
+
+
+ 3. Apply Promo code
+
+
+
+
+
+
+ OR
+
+
+
+
+
+
+
+ Apply
+
+
+
+
+
+
+
+
+ 4. Payment Method
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cash on delivery is a mode of payment where you make the payment after the goods/services are received.
+
+
You can pay cash or make the payment via debit/credit card directly to the delivery person.
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const verticalForm = {
+ ts: `
+
+
+ {}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+ Reset
+
+
+
+
+
+`,
+ js: `
+
+
+ {}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+ Reset
+
+
+
+
+
+`,
+}
+
+export const verticalFormWithIcons = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+ Reset
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+ Reset
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-validation/DemoFormValidationSimpleFormValidation.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-validation/DemoFormValidationSimpleFormValidation.vue
new file mode 100644
index 0000000..d5e87a4
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-validation/DemoFormValidationSimpleFormValidation.vue
@@ -0,0 +1,50 @@
+
+
+
+ {}"
+ >
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-validation/DemoFormValidationValidatingMultipleRules.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-validation/DemoFormValidationValidatingMultipleRules.vue
new file mode 100644
index 0000000..a2f80f1
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-validation/DemoFormValidationValidatingMultipleRules.vue
@@ -0,0 +1,85 @@
+
+
+
+ {}"
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-validation/DemoFormValidationValidationTypes.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-validation/DemoFormValidationValidationTypes.vue
new file mode 100644
index 0000000..96dd444
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-validation/DemoFormValidationValidationTypes.vue
@@ -0,0 +1,183 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-validation/demoCodeFormValidation.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-validation/demoCodeFormValidation.ts
new file mode 100644
index 0000000..6d3c44c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-validation/demoCodeFormValidation.ts
@@ -0,0 +1,649 @@
+export const simpleFormValidation = {
+ ts: `
+
+
+ {}"
+ >
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+
+
+`,
+ js: `
+
+
+ {}"
+ >
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+
+
+`,
+}
+
+export const validatingMultipleRules = {
+ ts: `
+
+
+ {}"
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+
+
+`,
+ js: `
+
+
+ {}"
+ >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+
+
+`,
+}
+
+export const validationTypes = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Submit
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/DemoFormWizardIconsBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/DemoFormWizardIconsBasic.vue
new file mode 100644
index 0000000..a139dab
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/DemoFormWizardIconsBasic.vue
@@ -0,0 +1,430 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address
+
+
+ Enter Your Address.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account
+
+
+
+ {{ formData.username }}
+
+
+ {{ formData.email }}
+
+
+
+
+
+ Personal Info
+
+
+
+ {{ formData.firstName }}
+
+
+ {{ formData.lastName }}
+
+
+ {{ formData.country }}
+
+
+ {{ formData.language }}
+
+
+
+
+
+ Address
+
+
+
+ {{ formData.address }}
+
+
+ {{ formData.landmark }}
+
+
+ {{ formData.pincode }}
+
+
+ {{ formData.city }}
+
+
+
+
+
+ Social Links
+
+
+
+ {{ formData.twitter }}
+
+
+ {{ formData.facebook }}
+
+
+ {{ formData.googlePlus }}
+
+
+ {{ formData.linkedIn }}
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+ Next
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/DemoFormWizardIconsModernBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/DemoFormWizardIconsModernBasic.vue
new file mode 100644
index 0000000..bb3eaa7
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/DemoFormWizardIconsModernBasic.vue
@@ -0,0 +1,425 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address
+
+
+ Enter Your Address.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account
+
+
+
+ {{ formData.username }}
+
+
+ {{ formData.email }}
+
+
+
+
+
+ Personal Info
+
+
+
+ {{ formData.firstName }}
+
+
+ {{ formData.lastName }}
+
+
+ {{ formData.country }}
+
+
+ {{ formData.language }}
+
+
+
+
+
+ Address
+
+
+
+ {{ formData.address }}
+
+
+ {{ formData.landmark }}
+
+
+ {{ formData.pincode }}
+
+
+ {{ formData.city }}
+
+
+
+
+
+ Social Links
+
+
+
+ {{ formData.twitter }}
+
+
+ {{ formData.facebook }}
+
+
+ {{ formData.googlePlus }}
+
+
+ {{ formData.linkedIn }}
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+ Next
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/DemoFormWizardIconsModernVertical.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/DemoFormWizardIconsModernVertical.vue
new file mode 100644
index 0000000..fb7b457
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/DemoFormWizardIconsModernVertical.vue
@@ -0,0 +1,278 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+ submit
+
+
+ Next
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/DemoFormWizardIconsValidation.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/DemoFormWizardIconsValidation.vue
new file mode 100644
index 0000000..981c915
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/DemoFormWizardIconsValidation.vue
@@ -0,0 +1,608 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address
+
+
+ Enter Your Address.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+ Account
+
+
+
+ {{ accountForm.username }}
+
+
+ {{ accountForm.email }}
+
+
+
+
+
+ Personal Info
+
+
+
+ {{ personalForm.firstName }}
+
+
+ {{ personalForm.lastName }}
+
+
+ {{ personalForm.country }}
+
+
+ {{ personalForm.language }}
+
+
+
+
+
+ Address
+
+
+
+ {{ addressForm.address }}
+
+
+ {{ addressForm.landmark }}
+
+
+ {{ addressForm.pincode }}
+
+
+ {{ addressForm.city }}
+
+
+
+
+
+ Social Links
+
+
+
+ {{ socialForm.twitter }}
+
+
+ {{ socialForm.facebook }}
+
+
+ {{ socialForm.googlePlus }}
+
+
+ {{ socialForm.linkedIn }}
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/DemoFormWizardIconsVertical.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/DemoFormWizardIconsVertical.vue
new file mode 100644
index 0000000..0e43527
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/DemoFormWizardIconsVertical.vue
@@ -0,0 +1,299 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/demoCodeFormWizardIcons.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/demoCodeFormWizardIcons.ts
new file mode 100644
index 0000000..f2ab879
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-icons/demoCodeFormWizardIcons.ts
@@ -0,0 +1,4105 @@
+export const basic = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address
+
+
+ Enter Your Address.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account
+
+
+
+ {{ formData.username }}
+
+
+ {{ formData.email }}
+
+
+
+
+
+ Personal Info
+
+
+
+ {{ formData.firstName }}
+
+
+ {{ formData.lastName }}
+
+
+ {{ formData.country }}
+
+
+ {{ formData.language }}
+
+
+
+
+
+ Address
+
+
+
+ {{ formData.address }}
+
+
+ {{ formData.landmark }}
+
+
+ {{ formData.pincode }}
+
+
+ {{ formData.city }}
+
+
+
+
+
+ Social Links
+
+
+
+ {{ formData.twitter }}
+
+
+ {{ formData.facebook }}
+
+
+ {{ formData.googlePlus }}
+
+
+ {{ formData.LinkedIn }}
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+ Next
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address
+
+
+ Enter Your Address.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account
+
+
+
+ {{ formData.username }}
+
+
+ {{ formData.email }}
+
+
+
+
+
+ Personal Info
+
+
+
+ {{ formData.firstName }}
+
+
+ {{ formData.lastName }}
+
+
+ {{ formData.country }}
+
+
+ {{ formData.language }}
+
+
+
+
+
+ Address
+
+
+
+ {{ formData.address }}
+
+
+ {{ formData.landmark }}
+
+
+ {{ formData.pincode }}
+
+
+ {{ formData.city }}
+
+
+
+
+
+ Social Links
+
+
+
+ {{ formData.twitter }}
+
+
+ {{ formData.facebook }}
+
+
+ {{ formData.googlePlus }}
+
+
+ {{ formData.LinkedIn }}
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+ Next
+
+
+
+
+
+
+
+
+`,
+}
+
+export const modernBasic = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address
+
+
+ Enter Your Address.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account
+
+
+
+ {{ formData.username }}
+
+
+ {{ formData.email }}
+
+
+
+
+
+ Personal Info
+
+
+
+ {{ formData.firstName }}
+
+
+ {{ formData.lastName }}
+
+
+ {{ formData.country }}
+
+
+ {{ formData.language }}
+
+
+
+
+
+ Address
+
+
+
+ {{ formData.address }}
+
+
+ {{ formData.landmark }}
+
+
+ {{ formData.pincode }}
+
+
+ {{ formData.city }}
+
+
+
+
+
+ Social Links
+
+
+
+ {{ formData.twitter }}
+
+
+ {{ formData.facebook }}
+
+
+ {{ formData.googlePlus }}
+
+
+ {{ formData.LinkedIn }}
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+ Next
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address
+
+
+ Enter Your Address.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account
+
+
+
+ {{ formData.username }}
+
+
+ {{ formData.email }}
+
+
+
+
+
+ Personal Info
+
+
+
+ {{ formData.firstName }}
+
+
+ {{ formData.lastName }}
+
+
+ {{ formData.country }}
+
+
+ {{ formData.language }}
+
+
+
+
+
+ Address
+
+
+
+ {{ formData.address }}
+
+
+ {{ formData.landmark }}
+
+
+ {{ formData.pincode }}
+
+
+ {{ formData.city }}
+
+
+
+
+
+ Social Links
+
+
+
+ {{ formData.twitter }}
+
+
+ {{ formData.facebook }}
+
+
+ {{ formData.googlePlus }}
+
+
+ {{ formData.LinkedIn }}
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+ Next
+
+
+
+
+
+
+
+
+`,
+}
+
+export const modernVertical = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+ submit
+
+
+ Next
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+ submit
+
+
+ Next
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const validation = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address
+
+
+ Enter Your Address.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+ Account
+
+
+
+ {{ accountForm.username }}
+
+
+ {{ accountForm.email }}
+
+
+
+
+
+ Personal Info
+
+
+
+ {{ personalForm.firstName }}
+
+
+ {{ personalForm.lastName }}
+
+
+ {{ personalForm.country }}
+
+
+ {{ personalForm.language }}
+
+
+
+
+
+ Address
+
+
+
+ {{ addressForm.address }}
+
+
+ {{ addressForm.landmark }}
+
+
+ {{ addressForm.pincode }}
+
+
+ {{ addressForm.city }}
+
+
+
+
+
+ Social Links
+
+
+
+ {{ socialForm.twitter }}
+
+
+ {{ socialForm.facebook }}
+
+
+ {{ socialForm.googlePlus }}
+
+
+ {{ socialForm.LinkedIn }}
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Address
+
+
+ Enter Your Address.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+ Account
+
+
+
+ {{ accountForm.username }}
+
+
+ {{ accountForm.email }}
+
+
+
+
+
+ Personal Info
+
+
+
+ {{ personalForm.firstName }}
+
+
+ {{ personalForm.lastName }}
+
+
+ {{ personalForm.country }}
+
+
+ {{ personalForm.language }}
+
+
+
+
+
+ Address
+
+
+
+ {{ addressForm.address }}
+
+
+ {{ addressForm.landmark }}
+
+
+ {{ addressForm.pincode }}
+
+
+ {{ addressForm.city }}
+
+
+
+
+
+ Social Links
+
+
+
+ {{ socialForm.twitter }}
+
+
+ {{ socialForm.facebook }}
+
+
+ {{ socialForm.googlePlus }}
+
+
+ {{ socialForm.LinkedIn }}
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+
+
+
+
+
+`,
+}
+
+export const vertical = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/DemoFormWizardNumberedBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/DemoFormWizardNumberedBasic.vue
new file mode 100644
index 0000000..40725df
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/DemoFormWizardNumberedBasic.vue
@@ -0,0 +1,283 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+ Next
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/DemoFormWizardNumberedModernBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/DemoFormWizardNumberedModernBasic.vue
new file mode 100644
index 0000000..4a39e71
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/DemoFormWizardNumberedModernBasic.vue
@@ -0,0 +1,261 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+ submit
+
+
+ Next
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/DemoFormWizardNumberedModernVertical.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/DemoFormWizardNumberedModernVertical.vue
new file mode 100644
index 0000000..cc915b3
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/DemoFormWizardNumberedModernVertical.vue
@@ -0,0 +1,270 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+ submit
+
+
+ Next
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/DemoFormWizardNumberedValidation.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/DemoFormWizardNumberedValidation.vue
new file mode 100644
index 0000000..445bccf
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/DemoFormWizardNumberedValidation.vue
@@ -0,0 +1,391 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/DemoFormWizardNumberedVertical.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/DemoFormWizardNumberedVertical.vue
new file mode 100644
index 0000000..b24cb32
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/DemoFormWizardNumberedVertical.vue
@@ -0,0 +1,293 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/demoCodeFormWizardNumbered.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/demoCodeFormWizardNumbered.ts
new file mode 100644
index 0000000..8825b27
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/form-wizard/form-wizard-numbered/demoCodeFormWizardNumbered.ts
@@ -0,0 +1,3017 @@
+export const basic = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+ Next
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+ Next
+
+
+
+
+
+
+
+
+`,
+}
+
+export const modernBasic = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+ submit
+
+
+ Next
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+ submit
+
+
+ Next
+
+
+
+
+
+
+
+`,
+}
+
+export const modernVertical = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+ submit
+
+
+ Next
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+ submit
+
+
+ Next
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const validation = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const vertical = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Account Details
+
+
+ Enter your Account Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Personal Info
+
+
+ Setup Information
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Social Links
+
+
+ Add Social Links
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Previous
+
+
+
+ submit
+
+
+
+ Next
+
+
+
+
+
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableBasic.vue
new file mode 100644
index 0000000..9a89324
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableBasic.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableCellSlot.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableCellSlot.vue
new file mode 100644
index 0000000..b0e2bda
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableCellSlot.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableDense.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableDense.vue
new file mode 100644
index 0000000..6b3f278
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableDense.vue
@@ -0,0 +1,21 @@
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableExpandableRows.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableExpandableRows.vue
new file mode 100644
index 0000000..4cdf142
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableExpandableRows.vue
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+ City: {{ slotProps.item.city }}
+
+
+ Experience: {{ slotProps.item.experience }}
+
+ Post: {{ slotProps.item.post }}
+
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableExternalPagination.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableExternalPagination.vue
new file mode 100644
index 0000000..6e641a6
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableExternalPagination.vue
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableFixedHeader.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableFixedHeader.vue
new file mode 100644
index 0000000..d900fde
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableFixedHeader.vue
@@ -0,0 +1,68 @@
+
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableGroupingRows.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableGroupingRows.vue
new file mode 100644
index 0000000..7e798df
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableGroupingRows.vue
@@ -0,0 +1,377 @@
+
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+ {{ item.status }}
+
+
+
+
+
+
+
+
+
+ {{ item.value }}
+ ({{ count }})
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableKitchenSink.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableKitchenSink.vue
new file mode 100644
index 0000000..3f802db
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableKitchenSink.vue
@@ -0,0 +1,195 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.product.name }}
+ {{ item.product.brand }}
+
+
+
+
+
+
+
+
+
+ {{ category.icon }}
+
+
+ {{ item.product.category }}
+
+
+
+
+
+
+
+
+ {{ item.buyer.name.slice(0, 2).toUpperCase() }}
+
+ {{ item.buyer.name }}
+
+
+
+
+
+
+
+ ${{ item.payment.paidAmount }}
+ /{{ item.payment.total }}
+
+
{{ item.payment.receivedPaymentStatus }}
+
+
+
+
+
+
+ {{ item.payment.status }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableRowEditingViaDialog.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableRowEditingViaDialog.vue
new file mode 100644
index 0000000..4328250
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableRowEditingViaDialog.vue
@@ -0,0 +1,291 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name: {{ editedItem?.fullName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cancel
+
+
+ Save
+
+
+
+
+
+
+
+
+
+
+
+
+ Cancel
+
+
+ OK
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableRowSelection.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableRowSelection.vue
new file mode 100644
index 0000000..527b991
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/DemoDataTableRowSelection.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/datatable.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/datatable.ts
new file mode 100644
index 0000000..cb05757
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/datatable.ts
@@ -0,0 +1,1415 @@
+import type { Data } from '@db/pages/datatable/types'
+import avatar1 from '@images/avatars/avatar-1.png'
+import avatar2 from '@images/avatars/avatar-2.png'
+import avatar3 from '@images/avatars/avatar-3.png'
+import avatar4 from '@images/avatars/avatar-4.png'
+import avatar5 from '@images/avatars/avatar-5.png'
+import avatar6 from '@images/avatars/avatar-6.png'
+import avatar7 from '@images/avatars/avatar-7.png'
+import avatar8 from '@images/avatars/avatar-8.png'
+
+const data: Data[] = [
+ {
+ responsiveId: '',
+ id: 95,
+ avatar: avatar2,
+ fullName: 'Edwina Ebsworth',
+ post: 'Human Resources Assistant',
+ email: 'eebsworth2m@sbwire.com',
+ city: 'Puzi',
+ startDate: '09/27/2018',
+ salary: 19586.23,
+ age: '27',
+ experience: '2 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 1,
+ avatar: avatar8,
+ fullName: 'Korrie O\'Crevy',
+ post: 'Nuclear Power Engineer',
+ email: 'kocrevy0@thetimes.co.uk',
+ city: 'Krasnosilka',
+ startDate: '09/23/2016',
+ salary: 23896.35,
+ age: '61',
+ experience: '1 Year',
+ status: 2,
+ },
+ {
+ responsiveId: '',
+ id: 7,
+ avatar: '',
+ fullName: 'Eileen Diehn',
+ post: 'Environmental Specialist',
+ email: 'ediehn6@163.com',
+ city: 'Lampuyang',
+ startDate: '10/15/2017',
+ salary: 18991.67,
+ age: '59',
+ experience: '9 Years',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 11,
+ avatar: '',
+ fullName: 'De Falloon',
+ post: 'Sales Representative',
+ email: 'dfalloona@ifeng.com',
+ city: 'Colima',
+ startDate: '06/12/2018',
+ salary: 19252.12,
+ age: '30',
+ experience: '0 Year',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 3,
+ avatar: avatar7,
+ fullName: 'Stella Ganderton',
+ post: 'Operator',
+ email: 'sganderton2@tuttocitta.it',
+ city: 'Golcowa',
+ startDate: '03/24/2018',
+ salary: 13076.28,
+ age: '66',
+ experience: '6 Years',
+ status: 5,
+ },
+ {
+ responsiveId: '',
+ id: 5,
+ avatar: '',
+ fullName: 'Harmonia Nisius',
+ post: 'Senior Cost Accountant',
+ email: 'hnisius4@gnu.org',
+ city: 'Lucan',
+ startDate: '08/25/2017',
+ salary: 10909.52,
+ age: '33',
+ experience: '3 Years',
+ status: 2,
+ },
+ {
+ responsiveId: '',
+ id: 6,
+ avatar: '',
+ fullName: 'Genevra Honeywood',
+ post: 'Geologist',
+ email: 'ghoneywood5@narod.ru',
+ city: 'Maofan',
+ startDate: '06/01/2017',
+ salary: 17803.8,
+ age: '61',
+ experience: '1 Year',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 4,
+ avatar: avatar8,
+ fullName: 'Dorolice Crossman',
+ post: 'Cost Accountant',
+ email: 'dcrossman3@google.co.jp',
+ city: 'Paquera',
+ startDate: '12/03/2017',
+ salary: 12336.17,
+ age: '22',
+ experience: '2 Years',
+ status: 2,
+ },
+ {
+ responsiveId: '',
+ id: 8,
+ avatar: avatar7,
+ fullName: 'Richardo Aldren',
+ post: 'Senior Sales Associate',
+ email: 'raldren7@mtv.com',
+ city: 'Skoghall',
+ startDate: '11/05/2016',
+ salary: 19230.13,
+ age: '55',
+ experience: '5 Years',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 9,
+ avatar: avatar2,
+ fullName: 'Allyson Moakler',
+ post: 'Safety Technician',
+ email: 'amoakler8@shareasale.com',
+ city: 'Mogilany',
+ startDate: '12/29/2018',
+ salary: 11677.32,
+ age: '39',
+ experience: '9 Years',
+ status: 5,
+ },
+ {
+ responsiveId: '',
+ id: 10,
+ avatar: avatar7,
+ fullName: 'Merline Penhalewick',
+ post: 'Junior Executive',
+ email: 'mpenhalewick9@php.net',
+ city: 'Kanuma',
+ startDate: '04/19/2019',
+ salary: 15939.52,
+ age: '23',
+ experience: '3 Years',
+ status: 2,
+ },
+
+ {
+ responsiveId: '',
+ id: 12,
+ avatar: '',
+ fullName: 'Cyrus Gornal',
+ post: 'Senior Sales Associate',
+ email: 'cgornalb@fda.gov',
+ city: 'Boro Utara',
+ startDate: '12/09/2017',
+ salary: 16745.47,
+ age: '22',
+ experience: '2 Years',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 13,
+ avatar: '',
+ fullName: 'Tallou Balf',
+ post: 'Staff Accountant',
+ email: 'tbalfc@sina.com.cn',
+ city: 'Siliana',
+ startDate: '01/21/2016',
+ salary: 15488.53,
+ age: '36',
+ experience: '6 Years',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 14,
+ avatar: '',
+ fullName: 'Othilia Extill',
+ post: 'Associate Professor',
+ email: 'oextilld@theatlantic.com',
+ city: 'Brzyska',
+ startDate: '02/01/2016',
+ salary: 18442.34,
+ age: '43',
+ experience: '3 Years',
+ status: 2,
+ },
+ {
+ responsiveId: '',
+ id: 15,
+ avatar: '',
+ fullName: 'Wilmar Bourton',
+ post: 'Administrative Assistant',
+ email: 'wbourtone@sakura.ne.jp',
+ city: 'Bรญch ฤแปng',
+ startDate: '04/25/2018',
+ salary: 13304.45,
+ age: '19',
+ experience: '9 Years',
+ status: 5,
+ },
+ {
+ responsiveId: '',
+ id: 16,
+ avatar: avatar4,
+ fullName: 'Robinson Brazenor',
+ post: 'General Manager',
+ email: 'rbrazenorf@symantec.com',
+ city: 'Gendiwu',
+ startDate: '12/23/2017',
+ salary: 11953.08,
+ age: '66',
+ experience: '6 Years',
+ status: 5,
+ },
+ {
+ responsiveId: '',
+ id: 17,
+ avatar: '',
+ fullName: 'Nadia Bettenson',
+ post: 'Environmental Tech',
+ email: 'nbettensong@joomla.org',
+ city: 'Chabaลovice',
+ startDate: '07/11/2018',
+ salary: 20484.44,
+ age: '64',
+ experience: '4 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 18,
+ avatar: '',
+ fullName: 'Titus Hayne',
+ post: 'Web Designer',
+ email: 'thayneh@kickstarter.com',
+ city: 'Yangon',
+ startDate: '05/25/2019',
+ salary: 16871.48,
+ age: '59',
+ experience: '9 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 19,
+ avatar: avatar4,
+ fullName: 'Roxie Huck',
+ post: 'Administrative Assistant',
+ email: 'rhucki@ed.gov',
+ city: 'Polรฝkastro',
+ startDate: '04/04/2019',
+ salary: 19653.56,
+ age: '41',
+ experience: '1 Year',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 20,
+ avatar: avatar7,
+ fullName: 'Latashia Lewtey',
+ post: 'Actuary',
+ email: 'llewteyj@sun.com',
+ city: 'Hougong',
+ startDate: '08/03/2017',
+ salary: 18303.87,
+ age: '35',
+ experience: '5 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 21,
+ avatar: '',
+ fullName: 'Natalina Tyne',
+ post: 'Software Engineer',
+ email: 'ntynek@merriam-webster.com',
+ city: 'Yanguan',
+ startDate: '03/16/2019',
+ salary: 15256.4,
+ age: '30',
+ experience: '0 Year',
+ status: 2,
+ },
+ {
+ responsiveId: '',
+ id: 22,
+ avatar: '',
+ fullName: 'Faun Josefsen',
+ post: 'Analog Circuit Design manager',
+ email: 'fjosefsenl@samsung.com',
+ city: 'Wengyang',
+ startDate: '07/08/2017',
+ salary: 11209.16,
+ age: '40',
+ experience: '0 Year',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 23,
+ avatar: avatar7,
+ fullName: 'Rosmunda Steed',
+ post: 'Assistant Media Planner',
+ email: 'rsteedm@xing.com',
+ city: 'Manzanares',
+ startDate: '12/23/2017',
+ salary: 13778.34,
+ age: '21',
+ experience: '1 Year',
+ status: 5,
+ },
+ {
+ responsiveId: '',
+ id: 24,
+ avatar: '',
+ fullName: 'Scott Jiran',
+ post: 'Graphic Designer',
+ email: 'sjirann@simplemachines.org',
+ city: 'Pinglin',
+ startDate: '05/26/2016',
+ salary: 23081.71,
+ age: '23',
+ experience: '3 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 25,
+ avatar: '',
+ fullName: 'Carmita Medling',
+ post: 'Accountant',
+ email: 'cmedlingo@hp.com',
+ city: 'Bourges',
+ startDate: '07/31/2019',
+ salary: 13602.24,
+ age: '47',
+ experience: '7 Years',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 26,
+ avatar: avatar2,
+ fullName: 'Morgen Benes',
+ post: 'Senior Sales Associate',
+ email: 'mbenesp@ted.com',
+ city: 'Cร Mau',
+ startDate: '04/10/2016',
+ salary: 16969.63,
+ age: '42',
+ experience: '2 Years',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 27,
+ avatar: '',
+ fullName: 'Onfroi Doughton',
+ post: 'Civil Engineer',
+ email: 'odoughtonq@aboutads.info',
+ city: 'Utrecht (stad)',
+ startDate: '09/29/2018',
+ salary: 23796.62,
+ age: '28',
+ experience: '8 Years',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 28,
+ avatar: '',
+ fullName: 'Kliment McGinney',
+ post: 'Chief Design Engineer',
+ email: 'kmcginneyr@paginegialle.it',
+ city: 'Xiaocheng',
+ startDate: '07/09/2018',
+ salary: 24027.81,
+ age: '28',
+ experience: '8 Years',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 29,
+ avatar: '',
+ fullName: 'Devin Bridgland',
+ post: 'Tax Accountant',
+ email: 'dbridglands@odnoklassniki.ru',
+ city: 'Baoli',
+ startDate: '07/17/2016',
+ salary: 13508.15,
+ age: '48',
+ experience: '8 Years',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 30,
+ avatar: avatar6,
+ fullName: 'Gilbert McFade',
+ post: 'Biostatistician',
+ email: 'gmcfadet@irs.gov',
+ city: 'Deje',
+ startDate: '08/28/2018',
+ salary: 21632.3,
+ age: '20',
+ experience: '0 Year',
+ status: 2,
+ },
+ {
+ responsiveId: '',
+ id: 31,
+ avatar: '',
+ fullName: 'Teressa Bleakman',
+ post: 'Senior Editor',
+ email: 'tbleakmanu@phpbb.com',
+ city: 'ลฝebrรกk',
+ startDate: '09/03/2016',
+ salary: 24875.41,
+ age: '37',
+ experience: '7 Years',
+ status: 5,
+ },
+ {
+ responsiveId: '',
+ id: 32,
+ avatar: '',
+ fullName: 'Marcelia Alleburton',
+ post: 'Safety Technician',
+ email: 'malleburtonv@amazon.com',
+ city: 'Basail',
+ startDate: '06/02/2016',
+ salary: 23888.98,
+ age: '53',
+ experience: '3 Years',
+ status: 2,
+ },
+ {
+ responsiveId: '',
+ id: 33,
+ avatar: avatar7,
+ fullName: 'Aili De Coursey',
+ post: 'Environmental Specialist',
+ email: 'adew@etsy.com',
+ city: 'ลazy',
+ startDate: '09/30/2016',
+ salary: 14082.44,
+ age: '27',
+ experience: '7 Years',
+ status: 5,
+ },
+ {
+ responsiveId: '',
+ id: 34,
+ avatar: avatar6,
+ fullName: 'Charlton Chatres',
+ post: 'Analyst Programmer',
+ email: 'cchatresx@goo.gl',
+ city: 'Reguengos de Monsaraz',
+ startDate: '04/07/2016',
+ salary: 21386.52,
+ age: '22',
+ experience: '2 Years',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 35,
+ avatar: avatar1,
+ fullName: 'Nat Hugonnet',
+ post: 'Financial Advisor',
+ email: 'nhugonnety@wufoo.com',
+ city: 'Pimentel',
+ startDate: '09/11/2019',
+ salary: 13835.97,
+ age: '46',
+ experience: '6 Years',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 36,
+ avatar: '',
+ fullName: 'Lorine Hearsum',
+ post: 'Payment Adjustment Coordinator',
+ email: 'lhearsumz@google.co.uk',
+ city: 'Shuiying',
+ startDate: '03/05/2019',
+ salary: 22093.91,
+ age: '47',
+ experience: '7 Years',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 37,
+ avatar: avatar5,
+ fullName: 'Sheila-kathryn Haborn',
+ post: 'Environmental Specialist',
+ email: 'shaborn10@about.com',
+ city: 'Lewolang',
+ startDate: '11/10/2018',
+ salary: 24624.23,
+ age: '51',
+ experience: '1 Year',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 38,
+ avatar: avatar3,
+ fullName: 'Alma Harvatt',
+ post: 'Administrative Assistant',
+ email: 'aharvatt11@addtoany.com',
+ city: 'Ulundi',
+ startDate: '11/04/2016',
+ salary: 21782.82,
+ age: '41',
+ experience: '1 Year',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 39,
+ avatar: avatar2,
+ fullName: 'Beatrix Longland',
+ post: 'VP Quality Control',
+ email: 'blongland12@gizmodo.com',
+ city: 'Damu',
+ startDate: '07/18/2016',
+ salary: 22794.6,
+ age: '62',
+ experience: '2 Years',
+ status: 2,
+ },
+ {
+ responsiveId: '',
+ id: 40,
+ avatar: avatar4,
+ fullName: 'Hammad Condell',
+ post: 'Project Manager',
+ email: 'hcondell13@tiny.cc',
+ city: 'Bulung\'ur',
+ startDate: '11/04/2018',
+ salary: 10872.83,
+ age: '37',
+ experience: '7 Years',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 41,
+ avatar: '',
+ fullName: 'Parker Bice',
+ post: 'Technical Writer',
+ email: 'pbice14@ameblo.jp',
+ city: 'Shanlian',
+ startDate: '03/02/2016',
+ salary: 17471.92,
+ age: '65',
+ experience: '5 Years',
+ status: 5,
+ },
+ {
+ responsiveId: '',
+ id: 42,
+ avatar: '',
+ fullName: 'Lowrance Orsi',
+ post: 'Biostatistician',
+ email: 'lorsi15@wp.com',
+ city: 'Dengteke',
+ startDate: '12/10/2018',
+ salary: 24719.51,
+ age: '64',
+ experience: '4 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 43,
+ avatar: avatar8,
+ fullName: 'Ddene Chaplyn',
+ post: 'Environmental Tech',
+ email: 'dchaplyn16@nymag.com',
+ city: 'Lattes',
+ startDate: '01/23/2019',
+ salary: 11958.33,
+ age: '38',
+ experience: '8 Years',
+ status: 2,
+ },
+ {
+ responsiveId: '',
+ id: 44,
+ avatar: '',
+ fullName: 'Washington Bygraves',
+ post: 'Human Resources Manager',
+ email: 'wbygraves17@howstuffworks.com',
+ city: 'Zlatรฉ Hory',
+ startDate: '09/07/2016',
+ salary: 10552.43,
+ age: '37',
+ experience: '7 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 45,
+ avatar: avatar7,
+ fullName: 'Meghann Bodechon',
+ post: 'Operator',
+ email: 'mbodechon18@1und1.de',
+ city: 'Itล',
+ startDate: '07/23/2018',
+ salary: 23024.28,
+ age: '61',
+ experience: '1 Year',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 46,
+ avatar: avatar1,
+ fullName: 'Moshe De Ambrosis',
+ post: 'Recruiting Manager',
+ email: 'mde19@purevolume.com',
+ city: 'San Diego',
+ startDate: '02/10/2018',
+ salary: 10409.9,
+ age: '47',
+ experience: '7 Years',
+ status: 5,
+ },
+ {
+ responsiveId: '',
+ id: 47,
+ avatar: avatar4,
+ fullName: 'Had Chatelot',
+ post: 'Cost Accountant',
+ email: 'hchatelot1a@usatoday.com',
+ city: 'Mercedes',
+ startDate: '11/23/2016',
+ salary: 11446.3,
+ age: '64',
+ experience: '4 Years',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 48,
+ avatar: '',
+ fullName: 'Georgia McCrum',
+ post: 'Registered Nurse',
+ email: 'gmccrum1b@icio.us',
+ city: 'Nggalak',
+ startDate: '04/19/2018',
+ salary: 14002.31,
+ age: '63',
+ experience: '3 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 49,
+ avatar: avatar5,
+ fullName: 'Krishnah Stilldale',
+ post: 'VP Accounting',
+ email: 'kstilldale1c@chronoengine.com',
+ city: 'Slavs\'ke',
+ startDate: '03/18/2017',
+ salary: 10704.29,
+ age: '56',
+ experience: '6 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 50,
+ avatar: avatar4,
+ fullName: 'Mario Umbert',
+ post: 'Research Assistant',
+ email: 'mumbert1d@digg.com',
+ city: 'Chorotis',
+ startDate: '05/13/2019',
+ salary: 21813.54,
+ age: '43',
+ experience: '3 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 51,
+ avatar: '',
+ fullName: 'Edvard Dixsee',
+ post: 'Graphic Designer',
+ email: 'edixsee1e@unblog.fr',
+ city: 'Rancharia',
+ startDate: '04/23/2019',
+ salary: 18053.11,
+ age: '46',
+ experience: '6 Years',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 52,
+ avatar: avatar7,
+ fullName: 'Tammie Davydoch',
+ post: 'VP Quality Control',
+ email: 'tdavydoch1f@examiner.com',
+ city: 'Mamedkala',
+ startDate: '04/19/2016',
+ salary: 17617.08,
+ age: '47',
+ experience: '7 Years',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 53,
+ avatar: '',
+ fullName: 'Benito Rodolico',
+ post: 'Safety Technician',
+ email: 'brodolico1g@sciencedirect.com',
+ city: 'Wonosobo',
+ startDate: '10/06/2018',
+ salary: 18866.55,
+ age: '21',
+ experience: '1 Year',
+ status: 5,
+ },
+ {
+ responsiveId: '',
+ id: 54,
+ avatar: '',
+ fullName: 'Marco Pennings',
+ post: 'Compensation Analyst',
+ email: 'mpennings1h@bizjournals.com',
+ city: 'Umag',
+ startDate: '06/15/2017',
+ salary: 13722.18,
+ age: '30',
+ experience: '0 Year',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 55,
+ avatar: '',
+ fullName: 'Tommie O\'Corr',
+ post: 'Quality Engineer',
+ email: 'tocorr1i@nyu.edu',
+ city: 'Olhos de รgua',
+ startDate: '09/26/2018',
+ salary: 15228.8,
+ age: '51',
+ experience: '1 Year',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 56,
+ avatar: avatar1,
+ fullName: 'Cybill Poyle',
+ post: 'Cost Accountant',
+ email: 'cpoyle1j@amazon.com',
+ city: 'Hamm',
+ startDate: '01/03/2016',
+ salary: 13951.96,
+ age: '29',
+ experience: '9 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 57,
+ avatar: avatar6,
+ fullName: 'Norry Stoller',
+ post: 'Human Resources Manager',
+ email: 'nstoller1k@noaa.gov',
+ city: 'Ruukki',
+ startDate: '02/04/2018',
+ salary: 15100.0,
+ age: '27',
+ experience: '7 Years',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 58,
+ avatar: '',
+ fullName: 'Wendi Somerlie',
+ post: 'Systems Administrator',
+ email: 'wsomerlie1l@accuweather.com',
+ city: 'Meicheng',
+ startDate: '04/22/2016',
+ salary: 20023.52,
+ age: '28',
+ experience: '9 Years',
+ status: 5,
+ },
+ {
+ responsiveId: '',
+ id: 59,
+ avatar: '',
+ fullName: 'Ferdie Georgeon',
+ post: 'Geologist',
+ email: 'fgeorgeon1m@nhs.uk',
+ city: 'Tanahbeureum',
+ startDate: '04/08/2019',
+ salary: 12630.26,
+ age: '28',
+ experience: '1 Year',
+ status: 2,
+ },
+ {
+ responsiveId: '',
+ id: 60,
+ avatar: '',
+ fullName: 'Jules Auten',
+ post: 'Desktop Support Technician',
+ email: 'jauten1n@foxnews.com',
+ city: 'Mojo',
+ startDate: '08/13/2019',
+ salary: 13870.62,
+ age: '48',
+ experience: '5 Years',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 61,
+ avatar: avatar3,
+ fullName: 'Nichole Dacres',
+ post: 'Mechanical Systems Engineer',
+ email: 'ndacres1o@apache.org',
+ city: 'Kimanuit',
+ startDate: '11/06/2017',
+ salary: 18220.51,
+ age: '20',
+ experience: '0 Year',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 62,
+ avatar: avatar1,
+ fullName: 'Holly Edgworth',
+ post: 'Junior Executive',
+ email: 'hedgworth1p@craigslist.org',
+ city: 'Pedreira',
+ startDate: '08/05/2017',
+ salary: 13999.88,
+ age: '37',
+ experience: '0 Year',
+ status: 5,
+ },
+ {
+ responsiveId: '',
+ id: 63,
+ avatar: avatar7,
+ fullName: 'Henriette Croft',
+ post: 'Food Chemist',
+ email: 'hcroft1q@desdev.cn',
+ city: 'Taizhou',
+ startDate: '09/12/2019',
+ salary: 11049.79,
+ age: '53',
+ experience: '1 Year',
+ status: 5,
+ },
+ {
+ responsiveId: '',
+ id: 64,
+ avatar: '',
+ fullName: 'Annetta Glozman',
+ post: 'Staff Accountant',
+ email: 'aglozman1r@storify.com',
+ city: 'Pendawanbaru',
+ startDate: '08/25/2017',
+ salary: 10745.32,
+ age: '27',
+ experience: '3 Years',
+ status: 5,
+ },
+ {
+ responsiveId: '',
+ id: 65,
+ avatar: '',
+ fullName: 'Cletis Cervantes',
+ post: 'Health Coach',
+ email: 'ccervantes1s@de.vu',
+ city: 'Solnechnyy',
+ startDate: '05/24/2018',
+ salary: 24769.08,
+ age: '22',
+ experience: '7 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 66,
+ avatar: avatar7,
+ fullName: 'Christos Kiley',
+ post: 'Geologist',
+ email: 'ckiley1t@buzzfeed.com',
+ city: 'El Bolsรณn',
+ startDate: '02/27/2019',
+ salary: 16053.15,
+ age: '46',
+ experience: '2 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 67,
+ avatar: avatar7,
+ fullName: 'Silvain Siebert',
+ post: 'VP Sales',
+ email: 'ssiebert1u@domainmarket.com',
+ city: 'Cadiz',
+ startDate: '09/23/2017',
+ salary: 23347.17,
+ age: '47',
+ experience: '8 Years',
+ status: 5,
+ },
+ {
+ responsiveId: '',
+ id: 68,
+ avatar: '',
+ fullName: 'Sharla Ibberson',
+ post: 'Payment Adjustment Coordinator',
+ email: 'sibberson1v@virginia.edu',
+ city: 'Lamam',
+ startDate: '11/01/2016',
+ salary: 15658.4,
+ age: '51',
+ experience: '8 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 69,
+ avatar: avatar7,
+ fullName: 'Ripley Rentcome',
+ post: 'Physical Therapy Assistant',
+ email: 'rrentcome1w@youtu.be',
+ city: 'Dashkawka',
+ startDate: '07/15/2018',
+ salary: 15396.66,
+ age: '41',
+ experience: '8 Years',
+ status: 2,
+ },
+ {
+ responsiveId: '',
+ id: 70,
+ avatar: '',
+ fullName: 'Chrisse Birrane',
+ post: 'Chemical Engineer',
+ email: 'cbirrane1x@google.com.br',
+ city: 'Las Toscas',
+ startDate: '05/22/2016',
+ salary: 15823.4,
+ age: '62',
+ experience: '0 Year',
+ status: 5,
+ },
+ {
+ responsiveId: '',
+ id: 71,
+ avatar: '',
+ fullName: 'Georges Tesyro',
+ post: 'Human Resources Manager',
+ email: 'gtesyro1y@last.fm',
+ city: 'Gabao',
+ startDate: '01/27/2019',
+ salary: 19051.25,
+ age: '37',
+ experience: '7 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 72,
+ avatar: '',
+ fullName: 'Bondon Hazard',
+ post: 'Geological Engineer',
+ email: 'bhazard1z@over-blog.com',
+ city: 'Llano de Piedra',
+ startDate: '01/17/2019',
+ salary: 11632.84,
+ age: '65',
+ experience: '3 Years',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 73,
+ avatar: avatar4,
+ fullName: 'Aliza MacElholm',
+ post: 'VP Sales',
+ email: 'amacelholm20@printfriendly.com',
+ city: 'Sosnovyy Bor',
+ startDate: '11/17/2017',
+ salary: 16741.31,
+ age: '64',
+ experience: '7 Years',
+ status: 2,
+ },
+ {
+ responsiveId: '',
+ id: 74,
+ avatar: avatar2,
+ fullName: 'Lucas Witherdon',
+ post: 'Senior Quality Engineer',
+ email: 'lwitherdon21@storify.com',
+ city: 'Starรฉ Kลeฤany',
+ startDate: '09/26/2016',
+ salary: 19387.76,
+ age: '38',
+ experience: '2 Years',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 75,
+ avatar: '',
+ fullName: 'Pegeen Peasegod',
+ post: 'Web Designer',
+ email: 'ppeasegod22@slideshare.net',
+ city: 'Keda',
+ startDate: '05/21/2016',
+ salary: 24014.04,
+ age: '59',
+ experience: '6 Years',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 76,
+ avatar: '',
+ fullName: 'Elyn Watkinson',
+ post: 'Structural Analysis Engineer',
+ email: 'ewatkinson23@blogspot.com',
+ city: 'Osan',
+ startDate: '09/30/2016',
+ salary: 14493.51,
+ age: '55',
+ experience: '7 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 77,
+ avatar: avatar8,
+ fullName: 'Babb Skirving',
+ post: 'Analyst Programmer',
+ email: 'bskirving24@cbsnews.com',
+ city: 'Balky',
+ startDate: '09/27/2016',
+ salary: 24733.28,
+ age: '39',
+ experience: '1 Year',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 78,
+ avatar: '',
+ fullName: 'Shelli Ondracek',
+ post: 'Financial Advisor',
+ email: 'sondracek25@plala.or.jp',
+ city: 'Aoluguya Ewenke Minzu',
+ startDate: '03/28/2016',
+ salary: 21922.17,
+ age: '23',
+ experience: '1 Year',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 79,
+ avatar: avatar7,
+ fullName: 'Stanislaw Melloy',
+ post: 'Sales Associate',
+ email: 'smelloy26@fastcompany.com',
+ city: 'Funafuti',
+ startDate: '04/13/2017',
+ salary: 16944.42,
+ age: '30',
+ experience: '2 Years',
+ status: 2,
+ },
+ {
+ responsiveId: '',
+ id: 80,
+ avatar: '',
+ fullName: 'Seamus Eisikovitsh',
+ post: 'Legal Assistant',
+ email: 'seisikovitsh27@usgs.gov',
+ city: 'Cangkringan',
+ startDate: '05/28/2018',
+ salary: 21963.69,
+ age: '22',
+ experience: '7 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 81,
+ avatar: avatar2,
+ fullName: 'Tammie Wattins',
+ post: 'Web Designer',
+ email: 'twattins28@statcounter.com',
+ city: 'Xilin',
+ startDate: '08/07/2018',
+ salary: 16049.93,
+ age: '36',
+ experience: '5 Years',
+ status: 2,
+ },
+ {
+ responsiveId: '',
+ id: 82,
+ avatar: avatar5,
+ fullName: 'Aila Quailadis',
+ post: 'Technical Writer',
+ email: 'aquail29@prlog.org',
+ city: 'Shuangchahe',
+ startDate: '02/11/2018',
+ salary: 24137.29,
+ age: '43',
+ experience: '4 Years',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 83,
+ avatar: '',
+ fullName: 'Myrvyn Gilogly',
+ post: 'Research Associate',
+ email: 'mgilogly2a@elpais.com',
+ city: 'Prince Rupert',
+ startDate: '05/13/2018',
+ salary: 10089.96,
+ age: '19',
+ experience: '8 Years',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 84,
+ avatar: avatar4,
+ fullName: 'Hanna Langthorne',
+ post: 'Analyst Programmer',
+ email: 'hlangthorne2b@stumbleupon.com',
+ city: 'Guaynabo',
+ startDate: '11/11/2018',
+ salary: 14227.1,
+ age: '21',
+ experience: '7 Years',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 85,
+ avatar: '',
+ fullName: 'Ruby Gimblet',
+ post: 'Registered Nurse',
+ email: 'rgimblet2c@1688.com',
+ city: 'Nanyulinxi',
+ startDate: '03/28/2016',
+ salary: 19562.59,
+ age: '30',
+ experience: '1 Year',
+ status: 2,
+ },
+ {
+ responsiveId: '',
+ id: 86,
+ avatar: avatar4,
+ fullName: 'Louis Paszak',
+ post: 'Programmer',
+ email: 'lpaszak2d@behance.net',
+ city: 'Chiscas',
+ startDate: '04/25/2016',
+ salary: 17178.86,
+ age: '51',
+ experience: '7 Years',
+ status: 5,
+ },
+ {
+ responsiveId: '',
+ id: 87,
+ avatar: '',
+ fullName: 'Glennie Riolfi',
+ post: 'Computer Systems Analyst',
+ email: 'griolfi2e@drupal.org',
+ city: 'Taung',
+ startDate: '06/18/2018',
+ salary: 15089.83,
+ age: '29',
+ experience: '4 Years',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 88,
+ avatar: '',
+ fullName: 'Jemimah Morgan',
+ post: 'Staff Accountant',
+ email: 'jmorgan2f@nifty.com',
+ city: 'La Esperanza',
+ startDate: '01/17/2016',
+ salary: 18330.72,
+ age: '27',
+ experience: '3 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 89,
+ avatar: avatar8,
+ fullName: 'Talya Brandon',
+ post: 'Food Chemist',
+ email: 'tbrandon2g@ucoz.com',
+ city: 'Zajeฤar',
+ startDate: '10/08/2018',
+ salary: 16284.64,
+ age: '28',
+ experience: '6 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 90,
+ avatar: avatar6,
+ fullName: 'Renate Shay',
+ post: 'Recruiter',
+ email: 'rshay2h@tumblr.com',
+ city: 'Pueblo Viejo',
+ startDate: '03/15/2017',
+ salary: 18523.75,
+ age: '28',
+ experience: '3 Years',
+ status: 1,
+ },
+ {
+ responsiveId: '',
+ id: 91,
+ avatar: '',
+ fullName: 'Julianne Bartosik',
+ post: 'Senior Cost Accountant',
+ email: 'jbartosik2i@state.gov',
+ city: 'Botlhapatlou',
+ startDate: '02/06/2017',
+ salary: 17607.66,
+ age: '48',
+ experience: '6 Years',
+ status: 3,
+ },
+ {
+ responsiveId: '',
+ id: 92,
+ avatar: avatar3,
+ fullName: 'Yvonne Emberton',
+ post: 'Recruiter',
+ email: 'yemberton2j@blog.com',
+ city: 'Nagcarlan',
+ startDate: '02/13/2017',
+ salary: 17550.18,
+ age: '20',
+ experience: '1 Year',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 93,
+ avatar: avatar5,
+ fullName: 'Danya Faichnie',
+ post: 'Social Worker',
+ email: 'dfaichnie2k@weather.com',
+ city: 'Taling',
+ startDate: '07/29/2019',
+ salary: 18469.35,
+ age: '37',
+ experience: '3 Years',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 94,
+ avatar: '',
+ fullName: 'Ronica Hasted',
+ post: 'Software Consultant',
+ email: 'rhasted2l@hexun.com',
+ city: 'Gangkou',
+ startDate: '07/04/2019',
+ salary: 24866.66,
+ age: '53',
+ experience: '7 Years',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 96,
+ avatar: '',
+ fullName: 'Alaric Beslier',
+ post: 'Tax Accountant',
+ email: 'abeslier2n@zimbio.com',
+ city: 'Ocucaje',
+ startDate: '04/16/2017',
+ salary: 19366.53,
+ age: '22',
+ experience: '8 Years',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 2,
+ avatar: avatar1,
+ fullName: 'Bailie Coulman',
+ post: 'VP Quality Control',
+ email: 'bcoulman1@yolasite.com',
+ city: 'Hinigaran',
+ startDate: '05/20/2018',
+ salary: 13633.69,
+ age: '63',
+ experience: '3 Years',
+ status: 2,
+ },
+ {
+ responsiveId: '',
+ id: 97,
+ avatar: '',
+ fullName: 'Reina Peckett',
+ post: 'Quality Control Specialist',
+ email: 'rpeckett2o@timesonline.co.uk',
+ city: 'Anyang',
+ startDate: '05/20/2018',
+ salary: 16619.4,
+ age: '46',
+ experience: '8 Years',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 98,
+ avatar: avatar7,
+ fullName: 'Olivette Gudgin',
+ post: 'Paralegal',
+ email: 'ogudgin2p@gizmodo.com',
+ city: 'Fujinomiya',
+ startDate: '04/09/2019',
+ salary: 15211.6,
+ age: '47',
+ experience: '8 Years',
+ status: 2,
+ },
+ {
+ responsiveId: '',
+ id: 99,
+ avatar: avatar8,
+ fullName: 'Evangelina Carnock',
+ post: 'Cost Accountant',
+ email: 'ecarnock2q@washington.edu',
+ city: 'Doushaguan',
+ startDate: '01/26/2017',
+ salary: 23704.82,
+ age: '51',
+ experience: '0 Year',
+ status: 4,
+ },
+ {
+ responsiveId: '',
+ id: 100,
+ avatar: '',
+ fullName: 'Glyn Giacoppo',
+ post: 'Software Test Engineer',
+ email: 'ggiacoppo2r@apache.org',
+ city: 'Butha-Buthe',
+ startDate: '04/15/2017',
+ salary: 24973.48,
+ age: '41',
+ experience: '7 Years',
+ status: 2,
+ },
+]
+
+export default data
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/demoCodeDataTable.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/demoCodeDataTable.ts
new file mode 100644
index 0000000..a1aa08e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/data-table/demoCodeDataTable.ts
@@ -0,0 +1,3005 @@
+export const basic = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const cellSlot = {
+ ts: `
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
+`,
+}
+
+export const dense = {
+ ts: `
+
+
+
+
+`,
+ js: `
+
+
+
+
+`,
+}
+
+export const expandableRows = {
+ ts: `
+
+
+
+
+
+
+
+
+ City: {{ slotProps.item.city }}
+
+
+ Experience: {{ slotProps.item.experience }}
+
+ Post: {{ slotProps.item.post }}
+
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+ City: {{ slotProps.item.city }}
+
+
+ Experience: {{ slotProps.item.experience }}
+
+ Post: {{ slotProps.item.post }}
+
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
+`,
+}
+
+export const externalPagination = {
+ ts: `
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const fixedHeader = {
+ ts: `
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
+`,
+}
+
+export const groupingRows = {
+ ts: `
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+ {{ item.status }}
+
+
+
+
+
+
+
+
+
+ {{ item.value }}
+ ({{ count }})
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+ {{ item.status }}
+
+
+
+
+
+
+
+
+
+ {{ item.value }}
+ ({{ count }})
+
+
+
+
+`,
+}
+
+export const kitchenSink = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.product.name }}
+ {{ item.product.brand }}
+
+
+
+
+
+
+
+
+
+ {{ category.icon }}
+
+
+ {{ item.product.category }}
+
+
+
+
+
+
+
+
+ {{ item.buyer.name.slice(0, 2).toUpperCase() }}
+
+ {{ item.buyer.name }}
+
+
+
+
+
+
+
+ \${{ item.payment.paidAmount }}
+ /{{ item.payment.total }}
+
+
{{ item.payment.receivedPaymentStatus }}
+
+
+
+
+
+
+ {{ item.payment.status }}
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.product.name }}
+ {{ item.product.brand }}
+
+
+
+
+
+
+
+
+
+ {{ category.icon }}
+
+
+ {{ item.product.category }}
+
+
+
+
+
+
+
+
+ {{ item.buyer.name.slice(0, 2).toUpperCase() }}
+
+ {{ item.buyer.name }}
+
+
+
+
+
+
+
+ \${{ item.payment.paidAmount }}
+ /{{ item.payment.total }}
+
+
{{ item.payment.receivedPaymentStatus }}
+
+
+
+
+
+
+ {{ item.payment.status }}
+
+
+
+
+
+
+
+
+
+
+
+
+`,
+}
+
+export const rowEditingViaDialog = {
+ ts: `
+
+
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name: {{ editedItem?.fullName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cancel
+
+
+ Save
+
+
+
+
+
+
+
+
+
+
+
+
+ Cancel
+
+
+ OK
+
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Name: {{ editedItem?.fullName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Cancel
+
+
+ Save
+
+
+
+
+
+
+
+
+
+
+
+
+ Cancel
+
+
+ OK
+
+
+
+
+
+
+`,
+}
+
+export const rowSelection = {
+ ts: `
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+
+
+ {{ avatarText(item.fullName) }}
+
+
+ {{ item.fullName }}
+ {{ item.post }}
+
+
+
+
+
+
+
+ {{ resolveStatusVariant(item.status).text }}
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/DemoSimpleTableBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/DemoSimpleTableBasic.vue
new file mode 100644
index 0000000..c670e46
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/DemoSimpleTableBasic.vue
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+ Desserts(100g Servings)
+
+
+ calories
+
+
+ Fat(g)
+
+
+ Carbs(g)
+
+
+ protein(g)
+
+
+
+
+
+
+
+ {{ item.dessert }}
+
+
+ {{ item.calories }}
+
+
+ {{ item.fat }}
+
+
+ {{ item.carbs }}
+
+
+ {{ item.protein }}
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/DemoSimpleTableDensity.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/DemoSimpleTableDensity.vue
new file mode 100644
index 0000000..d92147c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/DemoSimpleTableDensity.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+ Desserts(100g Servings)
+
+
+ calories
+
+
+ Fat(g)
+
+
+ Carbs(g)
+
+
+ protein(g)
+
+
+
+
+
+
+
+ {{ item.dessert }}
+
+
+ {{ item.calories }}
+
+
+ {{ item.fat }}
+
+
+ {{ item.carbs }}
+
+
+ {{ item.protein }}
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/DemoSimpleTableFixedHeader.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/DemoSimpleTableFixedHeader.vue
new file mode 100644
index 0000000..e27911a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/DemoSimpleTableFixedHeader.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+ Desserts(100g Servings)
+
+
+ calories
+
+
+ Fat(g)
+
+
+ Carbs(g)
+
+
+ protein(g)
+
+
+
+
+
+
+
+ {{ item.dessert }}
+
+
+ {{ item.calories }}
+
+
+ {{ item.fat }}
+
+
+ {{ item.carbs }}
+
+
+ {{ item.protein }}
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/DemoSimpleTableHeight.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/DemoSimpleTableHeight.vue
new file mode 100644
index 0000000..b2b8315
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/DemoSimpleTableHeight.vue
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+ Desserts(100g Servings)
+
+
+ calories
+
+
+ Fat(g)
+
+
+ Carbs(g)
+
+
+ protein(g)
+
+
+
+
+
+
+
+ {{ item.dessert }}
+
+
+ {{ item.calories }}
+
+
+ {{ item.fat }}
+
+
+ {{ item.carbs }}
+
+
+ {{ item.protein }}
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/DemoSimpleTableTheme.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/DemoSimpleTableTheme.vue
new file mode 100644
index 0000000..5da3943
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/DemoSimpleTableTheme.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+
+ Desserts(100g Servings)
+
+
+ calories
+
+
+ Fat(g)
+
+
+ Carbs(g)
+
+
+ protein(g)
+
+
+
+
+
+
+
+ {{ item.dessert }}
+
+
+ {{ item.calories }}
+
+
+ {{ item.fat }}
+
+
+ {{ item.carbs }}
+
+
+ {{ item.protein }}
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/demoCodeSimpleTable.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/demoCodeSimpleTable.ts
new file mode 100644
index 0000000..a92d0b1
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/demos/forms/tables/simple-table/demoCodeSimpleTable.ts
@@ -0,0 +1,912 @@
+export const basic = {
+ ts: `
+
+
+
+
+
+
+ Desserts(100g Servings)
+
+
+ calories
+
+
+ Fat(g)
+
+
+ Carbs(g)
+
+
+ protein(g)
+
+
+
+
+
+
+
+ {{ item.dessert }}
+
+
+ {{ item.calories }}
+
+
+ {{ item.fat }}
+
+
+ {{ item.carbs }}
+
+
+ {{ item.protein }}
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ Desserts(100g Servings)
+
+
+ calories
+
+
+ Fat(g)
+
+
+ Carbs(g)
+
+
+ protein(g)
+
+
+
+
+
+
+
+ {{ item.dessert }}
+
+
+ {{ item.calories }}
+
+
+ {{ item.fat }}
+
+
+ {{ item.carbs }}
+
+
+ {{ item.protein }}
+
+
+
+
+
+`,
+}
+
+export const density = {
+ ts: `
+
+
+
+
+
+
+ Desserts(100g Servings)
+
+
+ calories
+
+
+ Fat(g)
+
+
+ Carbs(g)
+
+
+ protein(g)
+
+
+
+
+
+
+
+ {{ item.dessert }}
+
+
+ {{ item.calories }}
+
+
+ {{ item.fat }}
+
+
+ {{ item.carbs }}
+
+
+ {{ item.protein }}
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ Desserts(100g Servings)
+
+
+ calories
+
+
+ Fat(g)
+
+
+ Carbs(g)
+
+
+ protein(g)
+
+
+
+
+
+
+
+ {{ item.dessert }}
+
+
+ {{ item.calories }}
+
+
+ {{ item.fat }}
+
+
+ {{ item.carbs }}
+
+
+ {{ item.protein }}
+
+
+
+
+
+`,
+}
+
+export const fixedHeader = {
+ ts: `
+
+
+
+
+
+
+ Desserts(100g Servings)
+
+
+ calories
+
+
+ Fat(g)
+
+
+ Carbs(g)
+
+
+ protein(g)
+
+
+
+
+
+
+
+ {{ item.dessert }}
+
+
+ {{ item.calories }}
+
+
+ {{ item.fat }}
+
+
+ {{ item.carbs }}
+
+
+ {{ item.protein }}
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ Desserts(100g Servings)
+
+
+ calories
+
+
+ Fat(g)
+
+
+ Carbs(g)
+
+
+ protein(g)
+
+
+
+
+
+
+
+ {{ item.dessert }}
+
+
+ {{ item.calories }}
+
+
+ {{ item.fat }}
+
+
+ {{ item.carbs }}
+
+
+ {{ item.protein }}
+
+
+
+
+
+`,
+}
+
+export const height = {
+ ts: `
+
+
+
+
+
+
+ Desserts(100g Servings)
+
+
+ calories
+
+
+ Fat(g)
+
+
+ Carbs(g)
+
+
+ protein(g)
+
+
+
+
+
+
+
+ {{ item.dessert }}
+
+
+ {{ item.calories }}
+
+
+ {{ item.fat }}
+
+
+ {{ item.carbs }}
+
+
+ {{ item.protein }}
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ Desserts(100g Servings)
+
+
+ calories
+
+
+ Fat(g)
+
+
+ Carbs(g)
+
+
+ protein(g)
+
+
+
+
+
+
+
+ {{ item.dessert }}
+
+
+ {{ item.calories }}
+
+
+ {{ item.fat }}
+
+
+ {{ item.carbs }}
+
+
+ {{ item.protein }}
+
+
+
+
+
+`,
+}
+
+export const theme = {
+ ts: `
+
+
+
+
+
+
+ Desserts(100g Servings)
+
+
+ calories
+
+
+ Fat(g)
+
+
+ Carbs(g)
+
+
+ protein(g)
+
+
+
+
+
+
+
+ {{ item.dessert }}
+
+
+ {{ item.calories }}
+
+
+ {{ item.fat }}
+
+
+ {{ item.carbs }}
+
+
+ {{ item.protein }}
+
+
+
+
+
+`,
+ js: `
+
+
+
+
+
+
+ Desserts(100g Servings)
+
+
+ calories
+
+
+ Fat(g)
+
+
+ Carbs(g)
+
+
+ protein(g)
+
+
+
+
+
+
+
+ {{ item.dessert }}
+
+
+ {{ item.calories }}
+
+
+ {{ item.fat }}
+
+
+ {{ item.carbs }}
+
+
+ {{ item.protein }}
+
+
+
+
+
+`,
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/front-page-footer.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/front-page-footer.vue
new file mode 100644
index 0000000..4b91e0f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/front-page-footer.vue
@@ -0,0 +1,301 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/front-page-navbar.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/front-page-navbar.vue
new file mode 100644
index 0000000..07047df
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/front-page-navbar.vue
@@ -0,0 +1,510 @@
+
+
+
+
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+ Pages
+
+
+
+
+
+
+
+ {{ item.listTitle }}
+
+
+
+
+
+
+
+
+ Admin
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ themeConfig.app.title }}
+
+
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+ Pages
+
+
+
+
+
+
+
+
+
+
+
+ Admin
+
+
+
+
+
+
+
+
+
+
+ Purchase Now
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/banner.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/banner.vue
new file mode 100644
index 0000000..e62c9c6
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/banner.vue
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+ Ready to Get Started?
+
+
+ Start your project with a 14-day free trial
+
+
+ Get Started
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/contact-us.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/contact-us.vue
new file mode 100644
index 0000000..a0c154c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/contact-us.vue
@@ -0,0 +1,194 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/customers-review.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/customers-review.vue
new file mode 100644
index 0000000..b3a4405
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/customers-review.vue
@@ -0,0 +1,388 @@
+
+
+
+
+
+
+
+
+
+
+
+ Real Customers Reviews
+
+
+
+ See what our customers have to say about their experience.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.desc }}
+
+
+
+
+
+
+
+ {{ data.name }}
+
+
+
+ {{ data.position }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/faq-section.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/faq-section.vue
new file mode 100644
index 0000000..cb74905
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/faq-section.vue
@@ -0,0 +1,124 @@
+
+
+
+
+
+
+
+
+
+ FAQ
+
+
+ Frequently Asked
+
+
+
+ Browse through these FAQs to find answers to commonly asked questions.
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ faq.question }}
+
+
+ {{ faq.answer }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/features.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/features.vue
new file mode 100644
index 0000000..b9334db
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/features.vue
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+ Useful Features
+
+
+
+
+ Everything you need
+
+
+ to start your next project
+
+
+ Not just a set of tools, the package includes ready-to-deploy conceptual application.
+
+
+
+
+
+
+
+
+ {{ data.title }}
+
+
+ {{ data.desc }}
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/hero-section.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/hero-section.vue
new file mode 100644
index 0000000..4e986f4
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/hero-section.vue
@@ -0,0 +1,304 @@
+
+
+
+
+
+
+
+
+
+ One dashboard to manage all your business
+
+
+ Production-ready & easy to use Admin Template
+ for Reliability and Customizability.
+
+
+
+ Join Community
+
+
+
+
+ Get early Access
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/our-team.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/our-team.vue
new file mode 100644
index 0000000..bfca09b
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/our-team.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+ Our Great Team
+
+
+
+
+ by Real People
+
+
+
+ Who is behind these great-looking interfaces?
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.name }}
+
+
+ {{ data.position }}
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/pricing-plans.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/pricing-plans.vue
new file mode 100644
index 0000000..18bf011
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/pricing-plans.vue
@@ -0,0 +1,263 @@
+
+
+
+
+
+
+
+
+
+ Pricing Plans
+
+
+
+
+ Tailored design plans
+
+
+ designed for you
+
+
+
+ All plans include 40+ advanced tools and features to boost your product.
+
+
+ Choose the best plan to fit your needs.
+
+
+
+
+
+
+ Pay Monthly
+
+
+
+
+
+ Pay Annually
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ plan.title }}
+
+
+
+
+ ${{ annualMonthlyPlanPriceToggler ? Math.floor(plan.yearlyPrice) / 12 : plan.monthlyPrice }}
+
+
/mo
+
+
+
+
+ {{ plan.yearlyPrice === 0 ? 'free' : `USD ${plan.yearlyPrice}/Year` }}
+
+
+
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+ Get Started
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/product-stats.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/product-stats.vue
new file mode 100644
index 0000000..0a0a1b2
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/front-pages/landing-page/product-stats.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ product.value }}
+
+
+ {{ product.title }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/AccountSettingsAccount.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/AccountSettingsAccount.vue
new file mode 100644
index 0000000..c23428b
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/AccountSettingsAccount.vue
@@ -0,0 +1,379 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Save changes
+
+
+ Cancel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Deactivate Account
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/AccountSettingsBillingAndPlans.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/AccountSettingsBillingAndPlans.vue
new file mode 100644
index 0000000..8830df0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/AccountSettingsBillingAndPlans.vue
@@ -0,0 +1,516 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Your Current Plan is Basic
+
+
+ A simple start for everyone
+
+
+
+
+
+ Active until Dec 09, 2021
+
+
+ We will send you a notification upon Subscription expiration
+
+
+
+
+
+ $199 Per Month
+
+ Popular
+
+
+
+ Standard plan for small to medium businesses
+
+
+
+
+
+
+
+
+ We need your attention!
+
+
+ Your plan requires update
+
+
+
+
+ Days
+
+ 12 of 30 Days
+
+
+
+
+
+ 18 days remaining until your plan requires update
+
+
+
+
+
+
+ upgrade plan
+
+
+
+ Cancel Subscription
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Save changes
+
+
+ Cancel
+
+
+
+
+
+
+
+
+ My Cards
+
+
+
+
+
+
+
+
+
+ {{ card.name }}
+
+
+ Primary
+
+
+
+ **** **** **** {{ card.number.substring(card.number.length - 4) }}
+
+
+
+
+
+
+
+
+ Edit
+
+
+ Delete
+
+
+
Card expires at {{ card.expiry }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Save changes
+
+
+ Discard
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/AccountSettingsConnections.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/AccountSettingsConnections.vue
new file mode 100644
index 0000000..4f454c9
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/AccountSettingsConnections.vue
@@ -0,0 +1,200 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+ {{ item.subtitle }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+ {{ item.links?.username }}
+
+
+ Not Connected
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/AccountSettingsNotification.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/AccountSettingsNotification.vue
new file mode 100644
index 0000000..fcc8a27
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/AccountSettingsNotification.vue
@@ -0,0 +1,120 @@
+
+
+
+
+
+ Recent Devices
+
+ We need permission from your browser to show notifications. Request Permission
+
+
+
+
+
+
+
+
+
+ Type
+
+
+ EMAIL
+
+
+ BROWSER
+
+
+ App
+
+
+
+
+
+
+ {{ device.type }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {}">
+
+ When should we send you notifications?
+
+
+
+
+
+
+
+
+
+
+ Save Changes
+
+
+ Discard
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/AccountSettingsSecurity.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/AccountSettingsSecurity.vue
new file mode 100644
index 0000000..1dce431
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/AccountSettingsSecurity.vue
@@ -0,0 +1,384 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Password Requirements:
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Save changes
+
+
+ Reset
+
+
+
+
+
+
+
+
+
+
+
+
+ Two factor authentication is not enabled yet.
+
+
+ Two-factor authentication adds an additional layer of security to your account by
+ requiring more than just a password to log in.
+ Learn more.
+
+
+
+ Enable two-factor authentication
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { }">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Create Key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ API Key List & Access
+
+
+ An API key is a simple encrypted string that identifies an application without any principal. They are useful
+ for accessing public data anonymously, and are used to associate API requests with your project for quota and
+ billing.
+
+
+
+
+
+
+
+
+ {{ serverKey.name }}
+
+
+ {{ serverKey.permission }}
+
+
+
+
+ {{ serverKey.key }}
+
+
+
+
+
+
+ Created on {{ serverKey.createdOn }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.browser }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/BillingHistoryTable.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/BillingHistoryTable.vue
new file mode 100644
index 0000000..b54f46c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/account-settings/BillingHistoryTable.vue
@@ -0,0 +1,280 @@
+
+
+
+
+
+
+
+
+
+
+ Create invoice
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ #{{ item.id }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.invoiceStatus }}
+
+
+ Balance: {{ item.balance }}
+
+
+ Due date: {{ item.dueDate }}
+
+
+
+
+
+
+
+
+
+ {{ avatarText(item.client.name) }}
+
+
+
+ {{ item.client.name }}
+
+ {{ item.client.companyEmail }}
+
+
+
+
+
+
+ ${{ item.total }}
+
+
+
+
+ {{ item.issuedDate }}
+
+
+
+
+
+ {{ (resolveInvoiceBalanceVariant(item.balance, item.total)).status }}
+
+
+ {{ Number((resolveInvoiceBalanceVariant(item.balance, item.total)).status) > 0 ? `$${(resolveInvoiceBalanceVariant(item.balance, item.total)).status}` : `-$${Math.abs(Number((resolveInvoiceBalanceVariant(item.balance, item.total)).status))}` }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/authentication/AuthProvider.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/authentication/AuthProvider.vue
new file mode 100644
index 0000000..fe6111b
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/authentication/AuthProvider.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceActiveProject.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceActiveProject.vue
new file mode 100644
index 0000000..528c552
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceActiveProject.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+ Active Projects
+
+ Average 72% completed
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ project.title }}
+
+
+ {{ project.subtitle }}
+
+
+
+
+
+
+
+
{{ project.stats }}%
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceActivityTimeline.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceActivityTimeline.vue
new file mode 100644
index 0000000..8e43d41
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceActivityTimeline.vue
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+ Activity Timeline
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 12 Invoices have been paid
+
+ 12 min ago
+
+
+
+
+ Invoices have been paid to the company
+
+
+
+
+
+ invoice.pdf
+
+
+
+
+
+
+
+
+
+
+ Client Meeting
+
+
45 min ago
+
+
+
+ Project meeting with john @10:15am
+
+
+
+
+
+
+
+
+
+ Lester McCarthy (Client)
+
+
CEO of Pixinvent
+
+
+
+
+
+
+
+
+
+
+
+ Create a new project for client
+
+ 2 Day Ago
+
+
+
+
+ 6 team members in a project
+
+
+
+
+
+
+ John Doe
+
+
+
+
+
+
+ Jennie Obrien
+
+
+
+
+
+
+ Peter Harper
+
+
+
+
+ +3
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceAssignmentProgress.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceAssignmentProgress.vue
new file mode 100644
index 0000000..1b40a67
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceAssignmentProgress.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ assignment.progress }}%
+
+
+
+
+ {{ assignment.title }}
+
+
+
+ {{ assignment.tasks }} Tasks
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceBrowserStates.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceBrowserStates.vue
new file mode 100644
index 0000000..bfd753d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceBrowserStates.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ state.title }}
+
+
+
+
+ {{ state.stats }}%
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceCongratulationsJohn.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceCongratulationsJohn.vue
new file mode 100644
index 0000000..9a5767b
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceCongratulationsJohn.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+ Congratulations John! ๐
+
+
+ Best seller of the month
+
+
+ $48.9k
+
+ View Sales
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceDeliveryPerformance.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceDeliveryPerformance.vue
new file mode 100644
index 0000000..3518566
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceDeliveryPerformance.vue
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+ 12% increase in this month
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.title }}
+
+
+
+
+ {{ data.change }}%
+
+
+
+
+
+
+ {{ data.value }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceEarningReports.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceEarningReports.vue
new file mode 100644
index 0000000..7021133
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceEarningReports.vue
@@ -0,0 +1,188 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ report.title }}
+
+
+ {{ report.subtitle }}
+
+
+
+
+ {{ report.earnings }}
+
+ {{ report.percentage }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceLastTransaction.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceLastTransaction.vue
new file mode 100644
index 0000000..c9cf1f2
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceLastTransaction.vue
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CARD
+ DATE
+ STATUS
+ TREND
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ transition.lastDigit }}
+
+
+ {{ transition.cardType }}
+
+
+
+
+
+
+ Sent
+
+ {{ transition.sentDate }}
+
+
+
+ {{ transition.status }}
+
+
+
+
+ {{ transition.trend }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceMonthlyCampaignState.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceMonthlyCampaignState.vue
new file mode 100644
index 0000000..a6052d5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceMonthlyCampaignState.vue
@@ -0,0 +1,119 @@
+
+
+
+
+
+ Monthly Campaign State
+
+ 8.52k Social Visitors
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ state.title }}
+
+
+
+
+
+ {{ state.count }}
+
+
+ {{ state.stats }}
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceOrder.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceOrder.vue
new file mode 100644
index 0000000..e7429fc
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceOrder.vue
@@ -0,0 +1,351 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ tab }}
+
+
+
+
+
+
+
+
+
+
+ Sender
+
+
+ Myrtle Ullrich
+
+
+ 101 Boulder, California(CA), 95959
+
+
+
+
+ Receiver
+
+
+ Barry Schowalter
+
+
+ 939 Orange, California(CA), 92118
+
+
+
+
+
+
+
+ Sender
+
+
+ Veronica Herman
+
+
+ 162 Windsor, California(CA), 95492
+
+
+
+
+
+ Receiver
+
+
+ Helen Jacobs
+
+
+ 487 Sunset, California(CA), 94043
+
+
+
+
+
+
+
+
+
+
+
+ Sender
+
+
+ Myrtle Ullrich
+
+
+ 101 Boulder, California(CA), 95959
+
+
+
+
+ Receiver
+
+
+ Barry Schowalter
+
+
+ 939 Orange, California(CA), 92118
+
+
+
+
+
+
+
+ Sender
+
+
+ Veronica Herman
+
+
+ 162 Windsor, California(CA), 95492
+
+
+
+
+
+ Receiver
+
+
+ Helen Jacobs
+
+
+ 487 Sunset, California(CA), 94043
+
+
+
+
+
+
+
+
+
+
+
+ Sender
+
+
+ Myrtle Ullrich
+
+
+ 101 Boulder, California(CA), 95959
+
+
+
+
+ Receiver
+
+
+ Barry Schowalter
+
+
+ 939 Orange, California(CA), 92118
+
+
+
+
+
+
+
+ Sender
+
+
+ Veronica Herman
+
+
+ 162 Windsor, California(CA), 95492
+
+
+
+
+
+ Receiver
+
+
+ Helen Jacobs
+
+
+ 487 Sunset, California(CA), 94043
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvancePopularInstructor.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvancePopularInstructor.vue
new file mode 100644
index 0000000..0eca9fc
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvancePopularInstructor.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ instructors
+
+
+ Courses
+
+
+
+
+
+
+
+
+
+
+ {{ instructor.name }}
+
+
+ {{ instructor.profession }}
+
+
+
+
+ {{ instructor.totalCourses }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvancePopularProducts.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvancePopularProducts.vue
new file mode 100644
index 0000000..e13330d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvancePopularProducts.vue
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ product.title }}
+
+
+ {{ product.subtitle }}
+
+
+
+
+ {{ product.stats }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceSalesByCountries.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceSalesByCountries.vue
new file mode 100644
index 0000000..1f33ac6
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceSalesByCountries.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ country.stats }}
+
+
+ {{ country.subtitle }}
+
+
+
+
+
+
+ {{ Math.abs(country.profitLoss) }}%
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceSourceVisits.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceSourceVisits.vue
new file mode 100644
index 0000000..9a7210e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceSourceVisits.vue
@@ -0,0 +1,121 @@
+
+
+
+
+
+ Source Visits
+
+ 38.4k Visitors
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ visit.title }}
+
+
+ {{ visit.subtitle }}
+
+
+
+
+
+ {{ visit.stats }}
+
+
+ {{ visit.profitLoss > 0 ? '+' : '' }}
+ {{ visit.profitLoss }}%
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceTopCourses.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceTopCourses.vue
new file mode 100644
index 0000000..a61a58e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceTopCourses.vue
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ course.title }}
+
+
+
+ {{ course.views }} Views
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceTransactions.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceTransactions.vue
new file mode 100644
index 0000000..89bc5b8
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceTransactions.vue
@@ -0,0 +1,122 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ transition.title }}
+
+
+ {{ transition.subtitle }}
+
+
+
+
+ {{ transition.stats }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceUpcomingWebinar.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceUpcomingWebinar.vue
new file mode 100644
index 0000000..7463d76
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceUpcomingWebinar.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+ Upcoming Webinar
+
+
+ Next Generation Frontend Architecture Using Layout Engine And Vue.
+
+
+
+
+
+
+
+
+ {{ title }}
+
+
+ {{ value }}
+
+
+
+
+
+ Join the event
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceVehicleCondition.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceVehicleCondition.vue
new file mode 100644
index 0000000..ffd3c94
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceVehicleCondition.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ assignment.progress }}%
+
+
+
+
+ {{ assignment.title }}
+
+
+
+ {{ assignment.subtitle }}
+
+
+
+ {{ assignment.badgeValue }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceWebsiteAnalytics.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceWebsiteAnalytics.vue
new file mode 100644
index 0000000..d72be40
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-advance/CardAdvanceWebsiteAnalytics.vue
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
+ Website Analytics
+
+
+ Total 28.5% Conversion Rate
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+
+
+ {{ d.number }}
+
+ {{ d.text }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-basic/CardBasic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-basic/CardBasic.vue
new file mode 100644
index 0000000..b06ad03
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-basic/CardBasic.vue
@@ -0,0 +1,482 @@
+
+
+
+
+
+
+
+
+
+
+ Influencing The Influencer
+
+
+
+ Cancun is back, better than ever! Over a hundred Mexico resorts have reopened and the state tourism minister predicts Cancun will draw as many visitors in 2006 as it did two years ago.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Robert Meyer
+
+
+ London, UK
+
+
+
send request
+
+
+
+
+
18 mutual friends
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Popular Uses Of The Internet
+
+
+
+ Although cards can support multiple actions, UI controls, and an overflow menu.
+
+
+
+
+ Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+ I'm a thing. But, like most politicians, he promised more than he could deliver. You won't have time for sleeping, soldier, not with all the bed making you'll be doing. Then we'll go with that data file! Hey, you add a one and two zeros to that or we walk! You're going to do his laundry? I've got to find a way to escape.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Apple iPhone 11 Pro
+
+
+
+ Apple iPhone 11 Pro smartphone. Announced Sep 2019. Features 5.8โณ display Apple A13 Bionic
+
+
+
+ Price : $899
+
+
+
+
+
+ Add to cart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Stumptown Roasters
+
+
+
+
+ 5 Star | 98 reviews
+
+
+
+ Before there was a United States of America, there were coffee houses, because how are you supposed to build.
+
+
+
+ Location
+ Reviews
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Apple Watch
+
+
+
+
+ $249.40
+
+
+
+ 3.1GHz 6-core 10th-generation Intel Core i5 processor, Turbo Boost up to 4.5GHz
+
+
+
+
+ Add to cart
+
+
+
+
+
+
+
+
+
+
+ Lifetime Membership
+
+
+
+ Here, I focus on a range of items and features that we use in life without giving them a second thought such as Coca Cola, body muscles and holding ones own breath. Though, most of these notes are not fundamentally necessary, they are such that you can use them for a good laugh, at a drinks party or for picking up women or men.
+
+
+
+
+
+
+
+
+
+
+ Full Access
+
+
+
+
+ 15 Members
+
+
+
+
+
+
+
+
+ Access all Features
+
+
+
+
+ Lifetime Free Update
+
+
+
+
+
+
+
+
+ $
+ 899
+ USD
+
+
+
+ 5 Tips For Offshore Software Development
+
+
+
+ Contact Now
+
+
+
+
+
+
+
+
+
+
+
+ Computers have become ubiquitous in almost every facet of our lives. At work, desk jockeys spend hours in front of their desktops, while delivery people scan bar codes with handhelds and workers in the field stay in touch.
+
+
+
+ If you're in the market for new desktops, notebooks, or PDAs, there are a myriad of choices.
+
+
+
+ Read More
+
+
+
+
+
+
+
+
+
+ 5 Star | 98 reviews
+
+
+
+ If you are looking for a new way to promote your business that won't cost you more money, maybe printing is one of the options you won't resist.
+
+
+
+ become fast, easy and simple. If you want your promotional material to be an eye-catching
+
+
+
+ Location
+ Reviews
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Support
+
+
+
+
+
+ According to us blisters are a very common thing and we come across them very often in our daily lives. It is a very common occurrence like cold or fever depending upon your lifestyle.
+
+
+
+
+
+ Contact Now
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-basic/CardNavigation.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-basic/CardNavigation.vue
new file mode 100644
index 0000000..f3553b2
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-basic/CardNavigation.vue
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+ Navigation Card
+
+
+
+ {{ tabContent }}
+
+
+
+ Learn More
+
+
+
+
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+ Navigation Card
+
+
+ {{ tabContent }}
+
+
+ Learn More
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-basic/CardSolid.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-basic/CardSolid.vue
new file mode 100644
index 0000000..1ad4204
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-basic/CardSolid.vue
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.title }}
+
+
+
+
+
+ {{ data.text }}
+
+
+
+
+
+
+ {{ data.avatarName }}
+
+
+
+
+ {{ data.likes }}
+
+
+ {{ data.share }}
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatistics.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatistics.vue
new file mode 100644
index 0000000..a2d4eca
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatistics.vue
@@ -0,0 +1,77 @@
+
+
+
+ Statistics
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Subscribers Gained
+
+
+ +92k
+
+
+
+
+
+ 1.2k new subscriber
+
+
+
+ 85%
+
+
+
+
+
+
+
+ Orders Received
+
+
+ +38k
+
+
+
+
+
+ 2.4k new orders
+
+
+
+ 65%
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsAverageDailySales.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsAverageDailySales.vue
new file mode 100644
index 0000000..b17f069
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsAverageDailySales.vue
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+ Average Daily Sales
+
+
+ Total Sales This Month
+
+
+ $28,450
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsDailyTraffic.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsDailyTraffic.vue
new file mode 100644
index 0000000..9797d52
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsDailyTraffic.vue
@@ -0,0 +1,195 @@
+
+
+
+
+
+
+
+
+ 2.84k
+
+
+ Avg Daily Traffic
+
+
+
+
+ +15%
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsExpensesRadialBarCharts.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsExpensesRadialBarCharts.vue
new file mode 100644
index 0000000..cee6f34
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsExpensesRadialBarCharts.vue
@@ -0,0 +1,154 @@
+
+
+
+
+
+
+ 82.5K
+
+
+ Expenses
+
+
+
+
+
+
+ $21k Expenses more than last month
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsGeneratedLeads.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsGeneratedLeads.vue
new file mode 100644
index 0000000..34e64c8
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsGeneratedLeads.vue
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+ Generated Leads
+
+
+ Monthly Report
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsImpressionLineCharts.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsImpressionLineCharts.vue
new file mode 100644
index 0000000..66e0b5e
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsImpressionLineCharts.vue
@@ -0,0 +1,90 @@
+
+
+
+
+
+
+ Impression
+
+
+ Expenses
+
+
+
+
+
+
+
+ 26.1k
+
+
+ -24.5%
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsOrderBarCharts.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsOrderBarCharts.vue
new file mode 100644
index 0000000..10117fb
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsOrderBarCharts.vue
@@ -0,0 +1,223 @@
+
+
+
+
+
+ Orders
+ Last Week
+
+
+
+
+
+
+
+ 124k
+
+
+ +12.6%
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsRevenueGrowth.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsRevenueGrowth.vue
new file mode 100644
index 0000000..6b5a761
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsRevenueGrowth.vue
@@ -0,0 +1,221 @@
+
+
+
+
+
+
+
+
+ Revenue Growth
+
+
+ Weekly Report
+
+
+
+
+
+ $4,673
+
+
+ +15.2%
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsSalesAreaCharts.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsSalesAreaCharts.vue
new file mode 100644
index 0000000..ffd5f7b
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsSalesAreaCharts.vue
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+ Sales
+
+
+ Last Year
+
+
+
+
+
+
+
+
+ 175k
+
+
+ -16.2%
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsSalesOverview.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsSalesOverview.vue
new file mode 100644
index 0000000..9912af3
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsSalesOverview.vue
@@ -0,0 +1,108 @@
+
+
+
+
+
+ Sales Overview
+
+
+ +18.2%
+
+
+
+ $42.5k
+
+
+
+
+
+
+
+
+
+
+
+ Order
+
+
+ 62.2%
+
+
+ 6,440
+
+
+
+
+
+
+
+
+
+ Visits
+
+
+
+
+
+
+ 25.5%
+
+
+ 12,749
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsSessionsBarWithGapCharts.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsSessionsBarWithGapCharts.vue
new file mode 100644
index 0000000..19be56d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsSessionsBarWithGapCharts.vue
@@ -0,0 +1,239 @@
+
+
+
+
+
+
+ Sessions
+
+
+ This Month
+
+
+
+
+
+
+
+
+ 45.1k
+
+
+ +12.6%
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsTotalGrowthAreaCharts.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsTotalGrowthAreaCharts.vue
new file mode 100644
index 0000000..1ba9a15
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsTotalGrowthAreaCharts.vue
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+ Sales
+
+ Last Year
+
+
+
+
+
+
+
+ 175k
+
+
+ -16.2%
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsTotalProfitLineCharts.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsTotalProfitLineCharts.vue
new file mode 100644
index 0000000..965e4ce
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsTotalProfitLineCharts.vue
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+ Profit
+
+
+ Last Month
+
+
+
+
+
+
+
+ 624k
+
+
+ +8.24%
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsTransactions.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsTransactions.vue
new file mode 100644
index 0000000..8ea395c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsTransactions.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+ Updated 1 month ago
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.stats }}
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsVehicleCharts.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsVehicleCharts.vue
new file mode 100644
index 0000000..04f8718
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-statistics/CardStatisticsVehicleCharts.vue
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.value }}
+
+
+
+ {{ data.title }}
+
+
+
+ {{ (data.change > 0) ? '+' : '' }} {{ data.change }}%
+
+
+ than last week
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetVehicleOverview.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetVehicleOverview.vue
new file mode 100644
index 0000000..7e6cb7b
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetVehicleOverview.vue
@@ -0,0 +1,168 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ On the way
+
+
+
+ 39.7%
+
+
+
+
+
+ Unloading
+
+
+
+ 28.3%
+
+
+
+
+
+ Loading
+
+
+
+ 17.4%
+
+
+
+
+
+ Waiting
+
+
+
+ 14.6%
+
+
+
+
+
+
+
+
+
+
+
+ {{ vehicle.title }}
+
+
+
+
+
+ {{ vehicle.time }}
+
+
+
+
+ {{ vehicle.percentage }}%
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsCarrierPerformance.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsCarrierPerformance.vue
new file mode 100644
index 0000000..aab2110
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsCarrierPerformance.vue
@@ -0,0 +1,188 @@
+
+
+
+
+
+ Carrier Performance
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsDeliveryExpectations.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsDeliveryExpectations.vue
new file mode 100644
index 0000000..1031028
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsDeliveryExpectations.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsEarningReportsWeeklyOverview.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsEarningReportsWeeklyOverview.vue
new file mode 100644
index 0000000..54cfa81
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsEarningReportsWeeklyOverview.vue
@@ -0,0 +1,219 @@
+
+
+
+
+
+ Earning Reports
+ Weekly Earnings Overview
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $468
+
+
+ +4.2%
+
+
+
+
+ You informed of this week compared to last week
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ report.title }}
+
+
+
+ {{ report.amount }}
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsEarningReportsYearlyOverview.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsEarningReportsYearlyOverview.vue
new file mode 100644
index 0000000..0563d73
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsEarningReportsYearlyOverview.vue
@@ -0,0 +1,659 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ report.title }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsProjectStatus.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsProjectStatus.vue
new file mode 100644
index 0000000..90b8c19
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsProjectStatus.vue
@@ -0,0 +1,155 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $4,3742
+
+
+
+
+
+ Your Earnings
+
+
+
+ +10.2%
+
+
+
+
+
+
+
+
+
+ {{ status.title }}
+
+
+ {{ status.amount }}
+ {{ prefixWithPlus(status.lossProfit) }}
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsRevenueReport.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsRevenueReport.vue
new file mode 100644
index 0000000..9e7db30
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsRevenueReport.vue
@@ -0,0 +1,384 @@
+
+
+
+
+
+
+
+
+ Revenue Report
+
+
+
+
+
+
+
+
+
+ 2022
+
+
+
+
+
+
+ {{ item }}
+
+
+
+
+
+
+
+ $25,825
+
+
+ Budget:
+ 56,800
+
+
+
+
+
+
+ Increase Budget
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsSales.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsSales.vue
new file mode 100644
index 0000000..8f03998
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsSales.vue
@@ -0,0 +1,136 @@
+
+
+
+
+
+ Sales
+ Last 6 Months
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsSupportTracker.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsSupportTracker.vue
new file mode 100644
index 0000000..3e9cb27
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsSupportTracker.vue
@@ -0,0 +1,200 @@
+
+
+
+
+
+ Support Tracker
+ Last 7 Days
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 164
+
+
+ Total Tickets
+
+
+
+
+
+
+ {{ ticket.title }}
+
+
+ {{ ticket.subtitle }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsTopicsInterested.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsTopicsInterested.vue
new file mode 100644
index 0000000..622b8fc
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsTopicsInterested.vue
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ topic.title }}
+
+
+ {{ topic.value }}%
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsTotalEarning.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsTotalEarning.vue
new file mode 100644
index 0000000..b659fa0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/cards/card-widgets/CardWidgetsTotalEarning.vue
@@ -0,0 +1,281 @@
+
+
+
+
+
+ Total Earning
+
+
+
+ 87%
+
+
+
+ 25.8%
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ earning.title }}
+
+
+ {{ earning.subtitle }}
+
+
+
+
+
+
+
+
+ {{ earning.earning }}
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/help-center/HelpCenterLandingArticlesOverview.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/help-center/HelpCenterLandingArticlesOverview.vue
new file mode 100644
index 0000000..cc2de53
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/help-center/HelpCenterLandingArticlesOverview.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+ {{ article.title }}
+
+
+ {{ article.subtitle }}
+
+
+
+ Read More
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/help-center/HelpCenterLandingFooter.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/help-center/HelpCenterLandingFooter.vue
new file mode 100644
index 0000000..54dae55
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/help-center/HelpCenterLandingFooter.vue
@@ -0,0 +1,16 @@
+
+
+
+ Still need help?
+
+
+ Our specialists are always happy to help.
+
+ Contact us during standard business hours or email us 24/7, and we'll get back to you.
+
+
+ Visit our community
+ Contact us
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/help-center/HelpCenterLandingKnowledgeBase.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/help-center/HelpCenterLandingKnowledgeBase.vue
new file mode 100644
index 0000000..efbde63
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/help-center/HelpCenterLandingKnowledgeBase.vue
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+
+
+
+
+
+
+
+ See All Articles
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/typography/TypographyHeadlines.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/typography/TypographyHeadlines.vue
new file mode 100644
index 0000000..51df0a3
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/typography/TypographyHeadlines.vue
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+ Heading 1
+
+ font-size: 2.875rem / line-height: 4.25rem / font-weight: 500
+
+
+
+
+ Heading 2
+
+ font-size: 2.375rem / line-height: 3.5rem / font-weight: 500
+
+
+
+
+ Heading 3
+
+ font-size: 1.75rem / line-height: 2.625rem / font-weight: 500
+
+
+
+
+ Heading 4
+
+ font-size: 1.5rem / line-height: 2.375rem / font-weight: 500
+
+
+
+
+ Heading 5
+
+ font-size: 1.125rem / line-height: 1.75rem / font-weight: 500
+
+
+
+
+ Heading 6
+
+ font-size: 0.9375rem / line-height: 1.375rem / font-weight: 500
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/typography/TypographyTexts.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/typography/TypographyTexts.vue
new file mode 100644
index 0000000..4abed5c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/typography/TypographyTexts.vue
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+ text-subtitle-1
+
+
+
+
+ Cupcake ipsum dolor sit amet fruitcake donut chocolate.
+
+ font-size: 0.9375rem / line-height: 1.375rem / font-weight: 400
+
+
+
+
+ text-subtitle-2
+
+
+
+
+ Cupcake ipsum dolor sit amet fruitcake donut chocolate.
+
+ font-size: 0.8125rem / line-height: 1.25rem / font-weight: 400
+
+
+
+
+ text-body-1
+
+
+
+
+ Cupcake ipsum dolor sit amet fruitcake donut chocolate.
+
+ font-size: 0.9375rem / line-height: 1.375rem / font-weight: 400
+
+
+
+
+ text-body-2
+
+
+
+
+ Cupcake ipsum dolor sit amet fruitcake donut chocolate.
+
+ font-size: 0.8125rem / line-height: 1.25rem / font-weight: 400
+
+
+
+
+ text-caption
+
+
+
+
+ Cupcake ipsum dolor sit amet fruitcake donut chocolate.
+
+ font-size: 0.8125rem / line-height: 1.125rem / font-weight: 400
+
+
+
+
+ text-overline
+
+
+
+
+ Cupcake ipsum dolor sit amet fruitcake donut chocolate.
+
+ font-size: 0.75rem / line-height: 0.875rem / font-weight: 400
+
+
+
+
+ text-button
+
+
+
+
+ Cupcake ipsum dolor sit amet fruitcake donut chocolate.
+
+ font-size: 0.9375rem / line-height: 1.125rem / font-weight: 500
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/UserProfileHeader.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/UserProfileHeader.vue
new file mode 100644
index 0000000..60bc6b3
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/UserProfileHeader.vue
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ profileHeaderData?.fullName }}
+
+
+
+
+
+
+
+ {{ profileHeaderData?.designation }}
+
+
+
+
+
+
+ {{ profileHeaderData?.location }}
+
+
+
+
+
+
+ {{ profileHeaderData?.joiningDate }}
+
+
+
+
+
+ Connected
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/connections/index.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/connections/index.vue
new file mode 100644
index 0000000..f7c5b1f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/connections/index.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.name }}
+
+
+ {{ data.designation }}
+
+
+
+
+
+ {{ chip.title }}
+
+
+
+
+
+
+
+
+
+ {{ data.projects }}
+
+
+ Projects
+
+
+
+
+ {{ data.tasks }}
+
+
+ Tasks
+
+
+
+
+ {{ data.connections }}
+
+
+ Connections
+
+
+
+
+
+
+ {{ data.isConnected ? 'connected' : 'connect' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/About.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/About.vue
new file mode 100644
index 0000000..648179c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/About.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+ ABOUT
+
+
+
+
+
+
+
+ {{ item.property }}:
+ {{ item.value }}
+
+
+
+
+
+
+ CONTACTS
+
+
+
+
+
+
+
+ {{ item.property }}:
+ {{ item.value }}
+
+
+
+
+
+
+ TEAMS
+
+
+
+
+
+
+ {{ item.property }}
+ {{ item.value }}
+
+
+
+
+
+
+
+
+
+
+ OVERVIEW
+
+
+
+
+
+
+
+ {{ item.property }}:
+ {{ item.value }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/ActivityTimeline.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/ActivityTimeline.vue
new file mode 100644
index 0000000..d32c75d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/ActivityTimeline.vue
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+
+
+ Activity Timeline
+
+
+
+
+
+
+
+
+
+ 12 Invoices have been paid
+
+ 12 min ago
+
+
+
+
+ Invoices have been paid to the company
+
+
+
+
+
+ invoice.pdf
+
+
+
+
+
+
+
+
+
+
+ Client Meeting
+
+
45 min ago
+
+
+
+ Project meeting with john @10:15am
+
+
+
+
+
+
+
+
+
+ Lester McCarthy (Client)
+
+
CEO of Pixinvent
+
+
+
+
+
+
+
+
+
+
+
+ Create a new project for client
+
+ 2 Day Ago
+
+
+
+
+ 6 team members in a project
+
+
+
+
+
+
+ John Doe
+
+
+
+
+
+
+ Jennie Obrien
+
+
+
+
+
+
+ Peter Harper
+
+
+
+
+ +3
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/Connection.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/Connection.vue
new file mode 100644
index 0000000..43eb5c2
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/Connection.vue
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.name }}
+
+ {{ data.connections }} Connections
+
+
+
+
+
+
+
+
+
+
+
+
+ View all connections
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/ProjectList.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/ProjectList.vue
new file mode 100644
index 0000000..cf68b4d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/ProjectList.vue
@@ -0,0 +1,212 @@
+
+
+
+
+
+
+ Project List
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+ {{ item.project }}
+
+
+
+
+
+
+
+ {{ item.leader }}
+
+
+
+
+
+
+
+
+
+
+
+
+ +{{ item.extraMembers }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.progress }}%
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/Teams.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/Teams.vue
new file mode 100644
index 0000000..95712b9
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/Teams.vue
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.title }}
+
+ {{ data.members }} Members
+
+
+
+ {{ data.chipText }}
+
+
+
+
+
+
+
+
+ View all Teams
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/index.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/index.vue
new file mode 100644
index 0000000..1faf588
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/profile/index.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/projects/index.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/projects/index.vue
new file mode 100644
index 0000000..bb5357c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/projects/index.vue
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.title }}
+
+
+ Client:
+
+ {{ data.client }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ data.budgetSpent }} / {{ data.budget }}
+
+
Total Budget
+
+
+
+
+ Start Date: {{ data.startDate }}
+
+
+ Deadline: {{ data.deadline }}
+
+
+
+
+
+ {{ data.description }}
+
+
+
+
+
+
+
+
+ All Hours:
+ {{ data.hours }}
+
+
+
+
+ {{ data.daysLeft }} Days left
+
+
+
+
+ Task: {{ data.tasks }}
+ {{ Math.round((data.completedTask / data.totalTask) * 100) }}% Completed
+
+
+
+
+
+
+
+
+
+ {{ data.members }}
+
+
+
+
+
+ {{ data.comments }}
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/team/index.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/team/index.vue
new file mode 100644
index 0000000..8cd8b65
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/pages/user-profile/team/index.vue
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ team.description }}
+
+
+
+
+
+
+
+
+ {{ data.name }}
+
+
+
+
+
+
+
+
+ {{ data.title }}
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/checkout/Address.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/checkout/Address.vue
new file mode 100644
index 0000000..7cf0450
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/checkout/Address.vue
@@ -0,0 +1,276 @@
+
+
+
+
+
+
+
+ Select your preferable address
+
+
+
+
+
+
+
+
+ {{ item.title }}
+
+
+
+ {{ item.value }}
+
+
+
+
+ {{ item.desc }}
+
+
+ Mobile: {{ item.subtitle }}
+
+
+
+
+
+
+
+
+
+ Add New Address
+
+
+
+
+ Choose Delivery Speed
+
+
+
+
+
+
+
+
+ {{ resolveDeliveryBadgeData[item.value].text }}
+
+
+
+
+
+
+ {{ item.title }}
+
+
+ {{ item.desc }}
+
+
+
+
+
+
+
+
+
+
+
+ Estimated Delivery Date
+
+
+
+
+
+
+
+
+
+ {{ product.name }}
+
+
+ {{ product.estimatedDelivery }}
+
+
+
+
+
+
+
+
+
+
+ Price Details
+
+
+
+ Order Total
+ ${{ checkoutAddressDataLocal.orderAmount }}
+
+
+
+
Delivery Charges
+
+
+
${{ resolveDeliveryBadgeData[checkoutAddressDataLocal.deliverySpeed ].price }}.00
+
+
+
+
+
+
+
+ Total
+
+ ${{ totalPriceWithDeliveryCharges }}
+
+
+
+
+
+
+ Place Order
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/checkout/Cart.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/checkout/Cart.vue
new file mode 100644
index 0000000..ab430b9
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/checkout/Cart.vue
@@ -0,0 +1,305 @@
+
+
+
+
+
+
+
+
+
+ - 0% Instant Discount on Bank of America Corp Bank Debit and Credit cards
+
+ - 50% Cashback Voucher of up to $60 on first ever PayPal transaction. TCA
+
+
+
+
+
+ My Shopping Bag ({{ checkoutCartDataLocal.cartItems.length }} Items)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+
+ Sold by:
+ {{ item.seller }}
+
+
+ {{ item.inStock ? 'In Stock' : 'Out of Stock' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${{ item.price }}
+
+
/
+
+ ${{ item.discountPrice }}
+
+
+
+
+
+ move to wishlist
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Offer
+
+
+
+
+
+
+
+ Buying gift for a loved one?
+
+
+ Gift wrap and personalized message on card, Only for $2.
+
+
+
+
+
+
+
+
+
+
+
+ Price Details
+
+
+
+
+ Bag Total
+ ${{ totalCost }}.00
+
+
+
+
+
+ Order Total
+ ${{ totalCost }}.00
+
+
+
+
+
+
+
+
+
+
+ Total
+
+
+ ${{ totalCost }}.00
+
+
+
+
+
+ Place Order
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/checkout/Confirmation.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/checkout/Confirmation.vue
new file mode 100644
index 0000000..2ea82af
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/checkout/Confirmation.vue
@@ -0,0 +1,256 @@
+
+
+
+
+
+
+ Thank You! ๐
+
+
+ Your order #1536548131 has been placed!
+
+
+ We sent an email to john.doe@example.com with your order confirmation and receipt.
+
+
If the email hasn't arrived within two minutes, please check your spam folder to see if the email was routed there.
+
+
+ Time placed: 25/05/2020 13:35pm
+
+
+
+
+
+
+
+
+ Shipping
+
+
+
+
+
+ {{ item.title }}
+
+
+ {{ item.desc }}
+
+
+
+ +{{ item.subtitle }}
+
+
+
+
+
+
+
+
+ Billing Address
+
+
+
+
+
+ {{ item.title }}
+
+
+ {{ item.desc }}
+
+
+
+ +{{ item.subtitle }}
+
+
+
+
+
+
+
+
+ Shipping Method
+
+
+
+
+ Preferred Method:
+
+
+ {{ resolveDeliveryMethod.method }}
+
+
+ ( {{ resolveDeliveryMethod.desc }} )
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ item.name }}
+
+
+ Sold by:
+ {{ item.seller }}
+
+
+ {{ item.inStock ? 'In Stock' : 'Out of Stock' }}
+
+
+
+
+
+
+
+ ${{ item.price }}
+
+
/
+
+ ${{ item.discountPrice }}
+
+
+
+
+
+
+
+
+
+
+
+
+ Price Details
+
+
+
+ Order Total
+ ${{ props.checkoutData.orderAmount }}.00
+
+
+
+
+ Charges
+
+
+
+ ${{ props.checkoutData.deliveryCharges }}
+
+
+
+
+ Total
+ ${{ props.checkoutData.orderAmount + props.checkoutData.deliveryCharges }}.00
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/checkout/Payment.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/checkout/Payment.vue
new file mode 100644
index 0000000..db4b40d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/checkout/Payment.vue
@@ -0,0 +1,311 @@
+
+
+
+
+
+
+
+
+
+ - 0% Instant Discount on Bank of America Corp Bank Debit and Credit cards
+
+ - 50% Cashback Voucher of up to $60 on first ever PayPal transaction. TCA
+
+
+
+
+
+
+ Card
+
+
+ Cash on Delivery
+
+
+ Gift Card
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Save Changes
+
+
+ Reset
+
+
+
+
+
+
+
+
+
+ Cash on Delivery is a type of payment method where the recipient make payment for the order at the time of delivery rather than in advance.
+
+
+
+ Pay on delivery
+
+
+
+
+
+ Enter Gift Card Details
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Redeem Gift Card
+
+
+
+
+
+
+
+
+
+
+
+
+ Price Details
+
+
+
+ Order Total
+ ${{ checkoutPaymentDataLocal.orderAmount }}.00
+
+
+
+
Delivery Charges
+
+
+ ${{ checkoutPaymentDataLocal.deliveryCharges }}
+
+
+
+
+
+
+
+
+ Total
+ ${{ checkoutPaymentDataLocal.orderAmount + checkoutPaymentDataLocal.deliveryCharges }}.00
+
+
+
+ Deliver to:
+
+ {{ checkoutPaymentDataLocal.deliveryAddress }}
+
+
+
+
+
+ {{ item.title }}
+
+
+ {{ item.desc }}
+
+
+ Mobile : {{ item.subtitle }}
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/checkout/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/checkout/types.ts
new file mode 100644
index 0000000..b178368
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/checkout/types.ts
@@ -0,0 +1,28 @@
+export interface CartItem {
+ id: number
+ name: string
+ seller: string
+ inStock: boolean
+ rating: number
+ price: number
+ discountPrice: number
+ image: string
+ quantity: number
+ estimatedDelivery: string
+}
+export interface Addresses {
+ title: string
+ desc: string
+ subtitle: string
+ value: string
+}
+
+export interface CheckoutData {
+ cartItems: CartItem[]
+ promoCode: string
+ orderAmount: number
+ deliveryAddress: string
+ deliverySpeed: string
+ deliveryCharges: number
+ addresses: Addresses[]
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/create-deal/DealDetails.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/create-deal/DealDetails.vue
new file mode 100644
index 0000000..2907f9d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/create-deal/DealDetails.vue
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Notify Users
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/create-deal/DealReviewComplete.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/create-deal/DealReviewComplete.vue
new file mode 100644
index 0000000..7c0b584
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/create-deal/DealReviewComplete.vue
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+ Almost done! ๐
+
+
+ Confirm your deal details information and submit to create it.
+
+
+
+
+
+
+ Deal Type
+
+
+
+
+ Percentage
+
+
+
+
+
+
+
+ Amount
+
+
+
+
+ 25%
+
+
+
+
+
+
+
+ Deal Code
+
+
+
+
+
+ 25PEROFF
+
+
+
+
+
+
+
+
+ Deal Title
+
+
+
+
+ Black friday sale, 25% OFF
+
+
+
+
+
+
+
+ Deal Duration
+
+
+
+
+ 2021-07-14 to 2021-07-30
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/create-deal/DealType.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/create-deal/DealType.vue
new file mode 100644
index 0000000..6fbe273
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/create-deal/DealType.vue
@@ -0,0 +1,114 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/create-deal/DealUsage.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/create-deal/DealUsage.vue
new file mode 100644
index 0000000..b03a048
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/create-deal/DealUsage.vue
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/create-deal/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/create-deal/types.ts
new file mode 100644
index 0000000..227d91a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/create-deal/types.ts
@@ -0,0 +1,40 @@
+export interface DealDetails {
+ title: string
+ code: string
+ description: string
+ offeredUItems: string[]
+ cartCondition: string | null
+ dealDuration: string
+ notification: {
+ email: boolean
+ sms: boolean
+ pushNotification: boolean
+ }
+}
+
+export interface DealType {
+ Offer: string
+ discount: number | null
+ region: string | null
+}
+
+export interface DealUsage {
+ userType: string | null
+ maxUsers: number | null
+ cartAmount: number | null
+ promotionFree: number | null
+ paymentMethod: string | null
+ dealStatus: string | null
+ isSingleUserCustomer: boolean
+}
+
+export interface DealReviewComplete {
+ isDealDetailsConfirmed: boolean
+}
+
+export interface CreateDealData {
+ dealDetails: DealDetails
+ dealType: DealType
+ dealUsage: DealUsage
+ dealReviewComplete: DealReviewComplete
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/PersonalDetails.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/PersonalDetails.vue
new file mode 100644
index 0000000..e83b805
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/PersonalDetails.vue
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/PriceDetails.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/PriceDetails.vue
new file mode 100644
index 0000000..7c101ea
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/PriceDetails.vue
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Show Price As
+
+
+
+
+
+
+
+
+
+ Price Includes
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/PropertyArea.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/PropertyArea.vue
new file mode 100644
index 0000000..20e952c
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/PropertyArea.vue
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Possession Status
+
+
+
+
+
+
+
+
+
+
+
+ Transaction Type
+
+
+
+
+
+
+
+
+
+
+
+ Is Property Facing Main Road?
+
+
+
+
+
+
+
+
+
+
+
+ Gated Colony
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/PropertyDetails.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/PropertyDetails.vue
new file mode 100644
index 0000000..9faebd7
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/PropertyDetails.vue
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/PropertyFeatures.vue b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/PropertyFeatures.vue
new file mode 100644
index 0000000..c10a756
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/PropertyFeatures.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Is There Any Common Area?
+
+
+
+
+
+
+
+
+
+
+
+ Is There Any Common Area?
+
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/types.ts b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/types.ts
new file mode 100644
index 0000000..65cd750
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/ts/views/wizard-examples/property-listing/types.ts
@@ -0,0 +1,61 @@
+export interface PersonalDetails {
+ userType: 'builder' | 'owner' | 'broker'
+ firstName: string
+ lastName: string
+ username: string
+ password: string
+ email: string
+ contact: number | null
+}
+
+export interface PriceDetails {
+ expectedPrice: number | null
+ pricePerSqft: number | null
+ maintenanceCharge: number | null
+ maintenancePeriod: string | null
+ bookingAmount: number | null
+ otherAmount: number | null
+ priceDisplayType: string
+ priceIncludes: string[]
+}
+
+export interface PropertyArea {
+ totalArea: number | null
+ carpetArea: number | null
+ plotArea: number | null
+ availableFrom: string | null
+ possessionStatus: string
+ transactionType: string
+ isOnMainRoad: string
+ isGatedColony: string
+}
+
+export interface PropertyDetails {
+ propertyDealType: 'sell' | 'rent'
+ propertyType: string | null
+ zipCode: number | null
+ country: string | null
+ state: string
+ city: string
+ landmark: string
+ address: string
+}
+
+export interface PropertyFeatures {
+ bedroomCount: string
+ floorNo: string
+ bathroomCount: string
+ isCommonArea: boolean
+ furnishedStatus: string | null
+ furnishingDetails: string[]
+ isCommonArea1: string
+ isCommonArea2: string
+}
+
+export interface PropertyListingData {
+ personalDetails: PersonalDetails
+ propertyDetails: PropertyDetails
+ propertyFeatures: PropertyFeatures
+ propertyArea: PropertyArea
+ priceDetails: PriceDetails
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/resources/views/application.blade.php b/vuexy-theme-vue-laravel-full-example-typescript/resources/views/application.blade.php
new file mode 100644
index 0000000..1011dad
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/resources/views/application.blade.php
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+ Vuexy - Vuejs Admin Dashboard Template
+
+ @vite(['resources/ts/main.ts'])
+
+
+
+
+
+
+
+
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/routes/console.php b/vuexy-theme-vue-laravel-full-example-typescript/routes/console.php
new file mode 100644
index 0000000..cf940fe
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/routes/console.php
@@ -0,0 +1,8 @@
+comment(Inspiring::quote());
+})->purpose('Display an inspiring quote');
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/routes/web.php b/vuexy-theme-vue-laravel-full-example-typescript/routes/web.php
new file mode 100644
index 0000000..78b8259
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/routes/web.php
@@ -0,0 +1,7 @@
+where('any', '.*');
\ No newline at end of file
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/shims.d.ts b/vuexy-theme-vue-laravel-full-example-typescript/shims.d.ts
new file mode 100644
index 0000000..c8e5d9d
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/shims.d.ts
@@ -0,0 +1,14 @@
+declare module '*.vue' {
+ import type { DefineComponent } from 'vue'
+
+ const component: DefineComponent<{}, {}, any>
+ export default component
+}
+
+
+declare module 'vue-prism-component' {
+ import { ComponentOptions } from 'vue'
+ const component: ComponentOptions
+ export default component
+}
+declare module 'vue-shepherd';
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/storage/app/.gitignore b/vuexy-theme-vue-laravel-full-example-typescript/storage/app/.gitignore
new file mode 100644
index 0000000..2bbb361
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/storage/app/.gitignore
@@ -0,0 +1,4 @@
+*
+!private/
+!public/
+!.gitignore
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/storage/app/private/.gitignore b/vuexy-theme-vue-laravel-full-example-typescript/storage/app/private/.gitignore
new file mode 100644
index 0000000..7f90280
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/storage/app/private/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/storage/app/public/.gitignore b/vuexy-theme-vue-laravel-full-example-typescript/storage/app/public/.gitignore
new file mode 100644
index 0000000..7f90280
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/storage/app/public/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/.gitignore b/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/.gitignore
new file mode 100644
index 0000000..3c29dc0
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/.gitignore
@@ -0,0 +1,9 @@
+compiled.php
+config.php
+down
+events.scanned.php
+maintenance.php
+routes.php
+routes.scanned.php
+schedule-*
+services.json
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/cache/.gitignore b/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/cache/.gitignore
new file mode 100644
index 0000000..932ecda
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/cache/.gitignore
@@ -0,0 +1,3 @@
+*
+!data/
+!.gitignore
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/cache/data/.gitignore b/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/cache/data/.gitignore
new file mode 100644
index 0000000..7f90280
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/cache/data/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/sessions/.gitignore b/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/sessions/.gitignore
new file mode 100644
index 0000000..7f90280
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/sessions/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/testing/.gitignore b/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/testing/.gitignore
new file mode 100644
index 0000000..7f90280
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/testing/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/views/.gitignore b/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/views/.gitignore
new file mode 100644
index 0000000..7f90280
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/storage/framework/views/.gitignore
@@ -0,0 +1,2 @@
+*
+!.gitignore
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/tests/Feature/ExampleTest.php b/vuexy-theme-vue-laravel-full-example-typescript/tests/Feature/ExampleTest.php
new file mode 100644
index 0000000..f0ea68f
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/tests/Feature/ExampleTest.php
@@ -0,0 +1,19 @@
+get('/');
+
+ $response->assertStatus(200);
+ }
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/tests/TestCase.php b/vuexy-theme-vue-laravel-full-example-typescript/tests/TestCase.php
new file mode 100644
index 0000000..f01140a
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/tests/TestCase.php
@@ -0,0 +1,10 @@
+assertTrue(true);
+ }
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/themeConfig.ts b/vuexy-theme-vue-laravel-full-example-typescript/themeConfig.ts
new file mode 100644
index 0000000..602d432
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/themeConfig.ts
@@ -0,0 +1,71 @@
+import { breakpointsVuetifyV3 } from '@vueuse/core'
+import { VIcon } from 'vuetify/components/VIcon'
+import { defineThemeConfig } from '@core'
+import { Skins } from '@core/enums'
+
+// โ Logo SVG must be imported with ?raw suffix
+import logo from '@images/logo.svg?raw'
+
+import { AppContentLayoutNav, ContentWidth, FooterType, NavbarType } from '@layouts/enums'
+
+export const { themeConfig, layoutConfig } = defineThemeConfig({
+ app: {
+ title: 'vuexy',
+ logo: h('div', { innerHTML: logo, style: 'line-height:0; color: rgb(var(--v-global-theme-primary))' }),
+ contentWidth: ContentWidth.Boxed,
+ contentLayoutNav: AppContentLayoutNav.Vertical,
+ overlayNavFromBreakpoint: breakpointsVuetifyV3.lg - 1, // 1 for matching with vuetify breakpoint. Docs: https://next.vuetifyjs.com/en/features/display-and-platform/
+ i18n: {
+ enable: true,
+ defaultLocale: 'en',
+ langConfig: [
+ {
+ label: 'English',
+ i18nLang: 'en',
+ isRTL: false,
+ },
+ {
+ label: 'French',
+ i18nLang: 'fr',
+ isRTL: false,
+ },
+ {
+ label: 'Arabic',
+ i18nLang: 'ar',
+ isRTL: true,
+ },
+ ],
+ },
+ theme: 'system',
+ skin: Skins.Default,
+ iconRenderer: VIcon,
+ },
+ navbar: {
+ type: NavbarType.Sticky,
+ navbarBlur: true,
+ },
+ footer: { type: FooterType.Static },
+ verticalNav: {
+ isVerticalNavCollapsed: false,
+ defaultNavItemIconProps: { icon: 'tabler-circle' },
+ isVerticalNavSemiDark: false,
+ },
+ horizontalNav: {
+ type: 'sticky',
+ transition: 'slide-y-reverse-transition',
+ popoverOffset: 6,
+ },
+
+ /*
+ // โน๏ธ In below Icons section, you can specify icon for each component. Also you can use other props of v-icon component like `color` and `size` for each icon.
+ // Such as: chevronDown: { icon: 'tabler-chevron-down', color:'primary', size: '24' },
+ */
+ icons: {
+ chevronDown: { icon: 'tabler-chevron-down' },
+ chevronRight: { icon: 'tabler-chevron-right', size: 20 },
+ close: { icon: 'tabler-x', size: 20 },
+ verticalNavPinned: { icon: 'tabler-circle-dot', size: 20 },
+ verticalNavUnPinned: { icon: 'tabler-circle', size: 20 },
+ sectionTitlePlaceholder: { icon: 'tabler-minus' },
+ },
+})
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/tsconfig.json b/vuexy-theme-vue-laravel-full-example-typescript/tsconfig.json
new file mode 100644
index 0000000..5efbeb5
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/tsconfig.json
@@ -0,0 +1,82 @@
+{
+ "compilerOptions": {
+ "baseUrl": "./",
+ "target": "esnext",
+ "useDefineForClassFields": true,
+ "module": "esnext",
+ "moduleResolution": "Bundler",
+ "isolatedModules": true,
+ "strict": true,
+ "jsx": "preserve",
+ "jsxFactory": "h",
+ "jsxFragmentFactory": "Fragment",
+ "sourceMap": true,
+ "resolveJsonModule": true,
+ "esModuleInterop": true,
+ "paths": {
+ "@/*": [
+ "./resources/ts/*"
+ ],
+ "@themeConfig": [
+ "./themeConfig.ts"
+ ],
+ "@layouts/*": [
+ "./resources/ts/@layouts/*"
+ ],
+ "@layouts": [
+ "./resources/ts/@layouts"
+ ],
+ "@core/*": [
+ "./resources/ts/@core/*"
+ ],
+ "@core": [
+ "./resources/ts/@core"
+ ],
+ "@images/*": [
+ "./resources/images/*"
+ ],
+ "@styles/*": [
+ "./resources/styles/*"
+ ],
+ "@validators": [
+ "./resources/ts/@core/utils/validators"
+ ],
+ "@db/*": [
+ "./resources/ts/plugins/fake-api/handlers/*"
+ ],
+ "@api-utils/*": [
+ "./resources/ts/plugins/fake-api/utils/*"
+ ],
+ "@core-scss/*": [
+ "resources/styles/@core/*"
+ ]
+ },
+ "lib": [
+ "esnext",
+ "dom",
+ "dom.iterable",
+ "scripthost"
+ ],
+ "skipLibCheck": true,
+ "types": [
+ "vite/client",
+ "unplugin-vue-router/client",
+ "vite-plugin-vue-meta-layouts/client"
+ ]
+ },
+ "include": [
+ "./typed-router.d.ts",
+ "./vite.config.*",
+ "./env.d.ts",
+ "./shims.d.ts",
+ "./resources/ts/**/*",
+ "./resources/ts/**/*.vue",
+ "./themeConfig.ts",
+ "./auto-imports.d.ts",
+ "./components.d.ts"
+ ],
+ "exclude": [
+ "./dist",
+ "./node_modules"
+ ]
+}
diff --git a/vuexy-theme-vue-laravel-full-example-typescript/typed-router.d.ts b/vuexy-theme-vue-laravel-full-example-typescript/typed-router.d.ts
new file mode 100644
index 0000000..54aa0ba
--- /dev/null
+++ b/vuexy-theme-vue-laravel-full-example-typescript/typed-router.d.ts
@@ -0,0 +1,142 @@
+/* eslint-disable */
+/* prettier-ignore */
+// @ts-nocheck
+// Generated by unplugin-vue-router. โผ๏ธ DO NOT MODIFY THIS FILE โผ๏ธ
+// It's recommended to commit this file.
+// Make sure to add this file to your tsconfig.json file as an "includes" or "files" entry.
+
+declare module 'vue-router/auto-routes' {
+ import type {
+ RouteRecordInfo,
+ ParamValue,
+ ParamValueOneOrMore,
+ ParamValueZeroOrMore,
+ ParamValueZeroOrOne,
+ } from 'unplugin-vue-router/types'
+
+ /**
+ * Route name map generated by unplugin-vue-router
+ */
+ export interface RouteNamedMap {
+ '$error': RouteRecordInfo<'$error', '/:error(.*)', { error: ParamValue }, { error: ParamValue }>,
+ 'access-control': RouteRecordInfo<'access-control', '/access-control', Record, Record>,
+ 'apps-academy-course-details': RouteRecordInfo<'apps-academy-course-details', '/apps/academy/course-details', Record, Record>,
+ 'apps-academy-dashboard': RouteRecordInfo<'apps-academy-dashboard', '/apps/academy/dashboard', Record, Record>,
+ 'apps-academy-my-course': RouteRecordInfo<'apps-academy-my-course', '/apps/academy/my-course', Record, Record>,
+ 'apps-calendar': RouteRecordInfo<'apps-calendar', '/apps/calendar', Record, Record>,
+ 'apps-chat': RouteRecordInfo<'apps-chat', '/apps/chat', Record, Record>,
+ 'apps-ecommerce-customer-details-id': RouteRecordInfo<'apps-ecommerce-customer-details-id', '/apps/ecommerce/customer/details/:id', { id: ParamValue }, { id: ParamValue }>,
+ 'apps-ecommerce-customer-list': RouteRecordInfo<'apps-ecommerce-customer-list', '/apps/ecommerce/customer/list', Record, Record>,
+ 'apps-ecommerce-manage-review': RouteRecordInfo<'apps-ecommerce-manage-review', '/apps/ecommerce/manage-review', Record, Record>,
+ 'apps-ecommerce-order-details-id': RouteRecordInfo<'apps-ecommerce-order-details-id', '/apps/ecommerce/order/details/:id', { id: ParamValue }, { id: ParamValue }>,
+ 'apps-ecommerce-order-list': RouteRecordInfo<'apps-ecommerce-order-list', '/apps/ecommerce/order/list', Record, Record>,
+ 'apps-ecommerce-product-add': RouteRecordInfo<'apps-ecommerce-product-add', '/apps/ecommerce/product/add', Record, Record>,
+ 'apps-ecommerce-product-category-list': RouteRecordInfo<'apps-ecommerce-product-category-list', '/apps/ecommerce/product/category-list', Record, Record>,
+ 'apps-ecommerce-product-list': RouteRecordInfo<'apps-ecommerce-product-list', '/apps/ecommerce/product/list', Record, Record>,
+ 'apps-ecommerce-referrals': RouteRecordInfo<'apps-ecommerce-referrals', '/apps/ecommerce/referrals', Record, Record>,
+ 'apps-ecommerce-settings': RouteRecordInfo<'apps-ecommerce-settings', '/apps/ecommerce/settings', Record, Record>,
+ 'apps-email': RouteRecordInfo<'apps-email', '/apps/email', Record, Record>,
+ 'apps-invoice-add': RouteRecordInfo<'apps-invoice-add', '/apps/invoice/add', Record, Record>,
+ 'apps-invoice-edit-id': RouteRecordInfo<'apps-invoice-edit-id', '/apps/invoice/edit/:id', { id: ParamValue }, { id: ParamValue }>,
+ 'apps-invoice-list': RouteRecordInfo<'apps-invoice-list', '/apps/invoice/list', Record, Record>,
+ 'apps-invoice-preview-id': RouteRecordInfo<'apps-invoice-preview-id', '/apps/invoice/preview/:id', { id: ParamValue }, { id: ParamValue }>,
+ 'apps-kanban': RouteRecordInfo<'apps-kanban', '/apps/kanban', Record, Record>,
+ 'apps-logistics-dashboard': RouteRecordInfo<'apps-logistics-dashboard', '/apps/logistics/dashboard', Record, Record>,
+ 'apps-logistics-fleet': RouteRecordInfo<'apps-logistics-fleet', '/apps/logistics/fleet', Record, Record>,
+ 'apps-permissions': RouteRecordInfo<'apps-permissions', '/apps/permissions', Record, Record>,
+ 'apps-roles': RouteRecordInfo<'apps-roles', '/apps/roles', Record, Record>,
+ 'apps-user-list': RouteRecordInfo<'apps-user-list', '/apps/user/list', Record, Record>,
+ 'apps-user-view-id': RouteRecordInfo<'apps-user-view-id', '/apps/user/view/:id', { id: ParamValue }, { id: ParamValue }>,
+ 'apps-email-filter': RouteRecordInfo<'apps-email-filter', '/apps/email/:filter', { filter: ParamValue }, { filter: ParamValue }>,
+ 'apps-email-label': RouteRecordInfo<'apps-email-label', '/apps/email/:label', { label: ParamValue }, { label: ParamValue }>,
+ 'charts-apex-chart': RouteRecordInfo<'charts-apex-chart', '/charts/apex-chart', Record, Record>,
+ 'charts-chartjs': RouteRecordInfo<'charts-chartjs', '/charts/chartjs', Record, Record>,
+ 'components-alert': RouteRecordInfo<'components-alert', '/components/alert', Record, Record>,
+ 'components-avatar': RouteRecordInfo<'components-avatar', '/components/avatar', Record, Record>,
+ 'components-badge': RouteRecordInfo<'components-badge', '/components/badge', Record, Record>,
+ 'components-button': RouteRecordInfo<'components-button', '/components/button', Record, Record>,
+ 'components-chip': RouteRecordInfo<'components-chip', '/components/chip', Record, Record>,
+ 'components-dialog': RouteRecordInfo<'components-dialog', '/components/dialog', Record, Record>,
+ 'components-expansion-panel': RouteRecordInfo<'components-expansion-panel', '/components/expansion-panel', Record, Record>,
+ 'components-list': RouteRecordInfo<'components-list', '/components/list', Record, Record>,
+ 'components-menu': RouteRecordInfo<'components-menu', '/components/menu', Record, Record>,
+ 'components-pagination': RouteRecordInfo<'components-pagination', '/components/pagination', Record, Record>,
+ 'components-progress-circular': RouteRecordInfo<'components-progress-circular', '/components/progress-circular', Record, Record>,
+ 'components-progress-linear': RouteRecordInfo<'components-progress-linear', '/components/progress-linear', Record, Record>,
+ 'components-snackbar': RouteRecordInfo<'components-snackbar', '/components/snackbar', Record, Record>,
+ 'components-tabs': RouteRecordInfo<'components-tabs', '/components/tabs', Record, Record>,
+ 'components-timeline': RouteRecordInfo<'components-timeline', '/components/timeline', Record, Record>,
+ 'components-tooltip': RouteRecordInfo<'components-tooltip', '/components/tooltip', Record, Record>,
+ 'dashboards-analytics': RouteRecordInfo<'dashboards-analytics', '/dashboards/analytics', Record, Record>,
+ 'dashboards-crm': RouteRecordInfo<'dashboards-crm', '/dashboards/crm', Record, Record>,
+ 'dashboards-ecommerce': RouteRecordInfo<'dashboards-ecommerce', '/dashboards/ecommerce', Record, Record>,
+ 'extensions-swiper': RouteRecordInfo<'extensions-swiper', '/extensions/swiper', Record, Record>,
+ 'extensions-tour': RouteRecordInfo<'extensions-tour', '/extensions/tour', Record, Record>,
+ 'forgot-password': RouteRecordInfo<'forgot-password', '/forgot-password', Record, Record>,
+ 'forms-autocomplete': RouteRecordInfo<'forms-autocomplete', '/forms/autocomplete', Record, Record>,
+ 'forms-checkbox': RouteRecordInfo<'forms-checkbox', '/forms/checkbox', Record, Record>,
+ 'forms-combobox': RouteRecordInfo<'forms-combobox', '/forms/combobox', Record, Record>,
+ 'forms-custom-input': RouteRecordInfo<'forms-custom-input', '/forms/custom-input', Record, Record>,
+ 'forms-date-time-picker': RouteRecordInfo<'forms-date-time-picker', '/forms/date-time-picker', Record, Record>,
+ 'forms-editors': RouteRecordInfo<'forms-editors', '/forms/editors', Record, Record>,
+ 'forms-file-input': RouteRecordInfo<'forms-file-input', '/forms/file-input', Record, Record>,
+ 'forms-form-layouts': RouteRecordInfo<'forms-form-layouts', '/forms/form-layouts', Record, Record>,
+ 'forms-form-validation': RouteRecordInfo<'forms-form-validation', '/forms/form-validation', Record, Record>,
+ 'forms-form-wizard-icons': RouteRecordInfo<'forms-form-wizard-icons', '/forms/form-wizard-icons', Record, Record>,
+ 'forms-form-wizard-numbered': RouteRecordInfo<'forms-form-wizard-numbered', '/forms/form-wizard-numbered', Record, Record>,
+ 'forms-radio': RouteRecordInfo<'forms-radio', '/forms/radio', Record, Record>,
+ 'forms-range-slider': RouteRecordInfo<'forms-range-slider', '/forms/range-slider', Record, Record>,
+ 'forms-rating': RouteRecordInfo<'forms-rating', '/forms/rating', Record, Record>,
+ 'forms-select': RouteRecordInfo<'forms-select', '/forms/select', Record, Record>,
+ 'forms-slider': RouteRecordInfo<'forms-slider', '/forms/slider', Record, Record>,
+ 'forms-switch': RouteRecordInfo<'forms-switch', '/forms/switch', Record, Record>,
+ 'forms-textarea': RouteRecordInfo<'forms-textarea', '/forms/textarea', Record, Record>,
+ 'forms-textfield': RouteRecordInfo<'forms-textfield', '/forms/textfield', Record, Record>,
+ 'front-pages-checkout': RouteRecordInfo<'front-pages-checkout', '/front-pages/checkout', Record, Record>,
+ 'front-pages-help-center': RouteRecordInfo<'front-pages-help-center', '/front-pages/help-center', Record, Record>,
+ 'front-pages-help-center-article-title': RouteRecordInfo<'front-pages-help-center-article-title', '/front-pages/help-center/article/:title', { title: ParamValue }, { title: ParamValue }>,
+ 'front-pages-landing-page': RouteRecordInfo<'front-pages-landing-page', '/front-pages/landing-page', Record, Record>,
+ 'front-pages-payment': RouteRecordInfo<'front-pages-payment', '/front-pages/payment', Record, Record>,
+ 'front-pages-pricing': RouteRecordInfo<'front-pages-pricing', '/front-pages/pricing', Record, Record>,
+ 'login': RouteRecordInfo<'login', '/login', Record, Record>,
+ 'not-authorized': RouteRecordInfo<'not-authorized', '/not-authorized', Record, Record>,
+ 'pages-account-settings-tab': RouteRecordInfo<'pages-account-settings-tab', '/pages/account-settings/:tab', { tab: ParamValue }, { tab: ParamValue }>,
+ 'pages-authentication-forgot-password-v1': RouteRecordInfo<'pages-authentication-forgot-password-v1', '/pages/authentication/forgot-password-v1', Record, Record>,
+ 'pages-authentication-forgot-password-v2': RouteRecordInfo<'pages-authentication-forgot-password-v2', '/pages/authentication/forgot-password-v2', Record, Record>,
+ 'pages-authentication-login-v1': RouteRecordInfo<'pages-authentication-login-v1', '/pages/authentication/login-v1', Record, Record>,
+ 'pages-authentication-login-v2': RouteRecordInfo<'pages-authentication-login-v2', '/pages/authentication/login-v2', Record, Record>,
+ 'pages-authentication-register-multi-steps': RouteRecordInfo<'pages-authentication-register-multi-steps', '/pages/authentication/register-multi-steps', Record, Record