@mframework/ui 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/runtime/design/tokens.d.ts +22 -0
- package/dist/runtime/design/tokens.js +22 -0
- package/dist/runtime/plugins/icon-switcher.d.ts +2 -0
- package/dist/runtime/plugins/icon-switcher.js +18 -0
- package/dist/runtime/plugins/icons.d.ts +4 -0
- package/dist/runtime/plugins/icons.js +13 -0
- package/dist/runtime/plugins/theme.d.ts +2 -0
- package/dist/runtime/plugins/theme.js +28 -0
- package/dist/runtime/plugins/vuetify.d.ts +88 -0
- package/dist/runtime/plugins/vuetify.js +60 -0
- package/dist/runtime/search/client.d.ts +2 -0
- package/dist/runtime/search/client.js +21 -0
- package/dist/runtime/search/plugin.d.ts +2 -0
- package/dist/runtime/search/plugin.js +8 -0
- package/dist/types/ui/api/global-search.d.ts +8 -0
- package/dist/types/ui/blocks/block-button-group.d.ts +6 -0
- package/dist/types/ui/blocks/block-button.d.ts +13 -0
- package/dist/types/ui/blocks/block-column.d.ts +18 -0
- package/dist/types/ui/blocks/block-cta.d.ts +11 -0
- package/dist/types/ui/blocks/block-divider.d.ts +4 -0
- package/dist/types/ui/blocks/block-faq.d.ts +11 -0
- package/dist/types/ui/blocks/block-form.d.ts +7 -0
- package/dist/types/ui/blocks/block-gallery.d.ts +13 -0
- package/dist/types/ui/blocks/block-hero.d.ts +11 -0
- package/dist/types/ui/blocks/block-html.d.ts +4 -0
- package/dist/types/ui/blocks/block-logocloud.d.ts +13 -0
- package/dist/types/ui/blocks/block-quote.d.ts +10 -0
- package/dist/types/ui/blocks/block-richtext.d.ts +7 -0
- package/dist/types/ui/blocks/block-steps.d.ts +21 -0
- package/dist/types/ui/blocks/block-team.d.ts +6 -0
- package/dist/types/ui/blocks/block-testimonial.d.ts +13 -0
- package/dist/types/ui/blocks/block-video.d.ts +9 -0
- package/dist/types/ui/blocks/block.d.ts +17 -0
- package/dist/types/ui/component.d.ts +6 -0
- package/dist/types/ui/content/category.d.ts +10 -0
- package/dist/types/ui/content/form.d.ts +21 -0
- package/dist/types/ui/content/page.d.ts +38 -0
- package/dist/types/ui/content/post.d.ts +38 -0
- package/dist/types/ui/content/team.d.ts +17 -0
- package/dist/types/ui/content/testimonial.d.ts +18 -0
- package/dist/types/ui/form.d.ts +12 -0
- package/dist/types/ui/help/index.d.ts +51 -0
- package/dist/types/ui/meta/analytics.d.ts +21 -0
- package/dist/types/ui/meta/config.d.ts +22 -0
- package/dist/types/ui/meta/globals.d.ts +33 -0
- package/dist/types/ui/meta/navigation.d.ts +31 -0
- package/dist/types/ui/meta/redirect.d.ts +12 -0
- package/dist/types/ui/meta/seo.d.ts +19 -0
- package/dist/types/ui/os/contact.d.ts +22 -0
- package/dist/types/ui/os/conversation.d.ts +23 -0
- package/dist/types/ui/os/organization.d.ts +51 -0
- package/dist/types/ui/os/os-activity.d.ts +26 -0
- package/dist/types/ui/os/os-deal.d.ts +42 -0
- package/dist/types/ui/os/os-expense.d.ts +21 -0
- package/dist/types/ui/os/os-invoice.d.ts +46 -0
- package/dist/types/ui/os/os-item.d.ts +17 -0
- package/dist/types/ui/os/os-payment.d.ts +27 -0
- package/dist/types/ui/os/os-project.d.ts +45 -0
- package/dist/types/ui/os/os-proposal.d.ts +61 -0
- package/dist/types/ui/os/os-settings.d.ts +17 -0
- package/dist/types/ui/os/os-subscription.d.ts +12 -0
- package/dist/types/ui/os/os-task.d.ts +32 -0
- package/dist/types/ui/os/os-tax-rate.d.ts +12 -0
- package/dist/types/ui/pageComponentMap.d.ts +2 -0
- package/dist/types/ui/pagination.d.ts +6 -0
- package/dist/types/ui/schema.d.ts +78 -0
- package/dist/types/ui/state.d.ts +5 -0
- package/dist/types/ui/system/file.d.ts +47 -0
- package/dist/types/ui/system/folder.d.ts +8 -0
- package/dist/types/ui/system/role.d.ts +20 -0
- package/dist/types/ui/system/user.d.ts +57 -0
- package/dist/types/ui/system/user.js +1 -0
- package/dist/types/ui.d.ts +21 -0
- package/module.ts +96 -6
- package/package.json +10 -12
- package/runtime/assets/config/tailwind.conifg.js +11 -0
- package/runtime/assets/css/tailwind.css +11 -0
- package/runtime/design/tokens.ts +22 -0
- package/runtime/plugins/icon-switcher.ts +21 -0
- package/runtime/plugins/theme.ts +29 -0
- package/runtime/plugins/vuetify.js +12 -0
- package/runtime/plugins/vuetify.ts +58 -6
- package/runtime/search/client.ts +25 -0
- package/runtime/search/components/MSearch.vue +19 -0
- package/runtime/search/plugin.ts +10 -0
- package/tsconfig.json +11 -8
- package/type.d.ts +5 -0
- package/types/ui/api/global-search.js +1 -0
- package/types/ui/blocks/block-button-group.js +1 -0
- package/types/ui/blocks/block-button.js +1 -0
- package/types/ui/blocks/block-column.js +1 -0
- package/types/ui/blocks/block-cta.js +1 -0
- package/types/ui/blocks/block-divider.js +1 -0
- package/types/ui/blocks/block-faq.js +1 -0
- package/types/ui/blocks/block-form.js +1 -0
- package/types/ui/blocks/block-gallery.js +1 -0
- package/types/ui/blocks/block-hero.js +1 -0
- package/types/ui/blocks/block-html.js +1 -0
- package/types/ui/blocks/block-logocloud.js +1 -0
- package/types/ui/blocks/block-quote.js +1 -0
- package/types/ui/blocks/block-richtext.js +1 -0
- package/types/ui/blocks/block-steps.js +1 -0
- package/types/ui/blocks/block-team.js +1 -0
- package/types/ui/blocks/block-testimonial.js +1 -0
- package/types/ui/blocks/block-video.js +1 -0
- package/types/ui/blocks/block.js +1 -0
- package/types/ui/blocks/index.js +1 -0
- package/types/ui/blocks/index.ts +18 -0
- package/types/ui/component.js +1 -0
- package/types/ui/content/category.js +1 -0
- package/types/ui/content/form.js +1 -0
- package/types/ui/content/index.js +1 -0
- package/types/ui/content/index.ts +6 -0
- package/types/ui/content/page.js +1 -0
- package/types/ui/content/post.js +1 -0
- package/types/ui/content/team.js +1 -0
- package/types/ui/content/testimonial.js +1 -0
- package/types/ui/form.js +1 -0
- package/types/ui/help/index.js +1 -0
- package/types/ui/meta/analytics.js +1 -0
- package/types/ui/meta/config.js +1 -0
- package/types/ui/meta/globals.js +1 -0
- package/types/ui/meta/index.js +1 -0
- package/types/ui/meta/index.ts +6 -0
- package/types/ui/meta/navigation.js +1 -0
- package/types/ui/meta/redirect.js +1 -0
- package/types/ui/meta/seo.js +1 -0
- package/types/ui/os/contact.js +1 -0
- package/types/ui/os/conversation.js +1 -0
- package/types/ui/os/index.js +1 -0
- package/types/ui/os/index.ts +16 -0
- package/types/ui/os/organization.js +1 -0
- package/types/ui/os/os-activity.js +1 -0
- package/types/ui/os/os-deal.js +1 -0
- package/types/ui/os/os-expense.js +1 -0
- package/types/ui/os/os-invoice.js +1 -0
- package/types/ui/os/os-item.js +1 -0
- package/types/ui/os/os-payment.js +1 -0
- package/types/ui/os/os-project.js +1 -0
- package/types/ui/os/os-proposal.js +1 -0
- package/types/ui/os/os-settings.js +1 -0
- package/types/ui/os/os-subscription.js +1 -0
- package/types/ui/os/os-task.js +1 -0
- package/types/ui/os/os-tax-rate.js +1 -0
- package/types/ui/pageComponentMap.js +7 -0
- package/types/ui/pagination.js +1 -0
- package/types/ui/schema.js +1 -0
- package/types/ui/state.js +1 -0
- package/types/ui/system/file.js +1 -0
- package/types/ui/system/folder.js +1 -0
- package/types/ui/system/index.js +1 -0
- package/types/ui/system/index.ts +4 -0
- package/types/ui/system/role.js +1 -0
- package/types/ui/system/user.js +1 -0
- package/types/ui.js +1 -0
- package/tailwind.conifg.js +0 -1
- /package/{src/types/ui/blocks/block-button-group.js → dist/types/ui/api/global-search.js} +0 -0
- /package/{src/types/ui/blocks/block-button.js → dist/types/ui/blocks/block-button-group.js} +0 -0
- /package/{src/types/ui/blocks/block-column.js → dist/types/ui/blocks/block-button.js} +0 -0
- /package/{src/types/ui/blocks/block-cta.js → dist/types/ui/blocks/block-column.js} +0 -0
- /package/{src/types/ui/blocks/block-divider.js → dist/types/ui/blocks/block-cta.js} +0 -0
- /package/{src/types/ui/blocks/block-faq.js → dist/types/ui/blocks/block-divider.js} +0 -0
- /package/{src/types/ui/blocks/block-form.js → dist/types/ui/blocks/block-faq.js} +0 -0
- /package/{src/types/ui/blocks/block-gallery.js → dist/types/ui/blocks/block-form.js} +0 -0
- /package/{src/types/ui/blocks/block-hero.js → dist/types/ui/blocks/block-gallery.js} +0 -0
- /package/{src/types/ui/blocks/block-html.js → dist/types/ui/blocks/block-hero.js} +0 -0
- /package/{src/types/ui/blocks/block-logocloud.js → dist/types/ui/blocks/block-html.js} +0 -0
- /package/{src/types/ui/blocks/block-quote.js → dist/types/ui/blocks/block-logocloud.js} +0 -0
- /package/{src/types/ui/blocks/block-richtext.js → dist/types/ui/blocks/block-quote.js} +0 -0
- /package/{src/types/ui/blocks/block-steps.js → dist/types/ui/blocks/block-richtext.js} +0 -0
- /package/{src/types/ui/blocks/block-team.js → dist/types/ui/blocks/block-steps.js} +0 -0
- /package/{src/types/ui/blocks/block-testimonial.js → dist/types/ui/blocks/block-team.js} +0 -0
- /package/{src/types/ui/blocks/block-video.js → dist/types/ui/blocks/block-testimonial.js} +0 -0
- /package/{src/types/ui/blocks/block.js → dist/types/ui/blocks/block-video.js} +0 -0
- /package/{src/types/ui/blocks/index.js → dist/types/ui/blocks/block.js} +0 -0
- /package/{src/types/ui/blocks/index.ts → dist/types/ui/blocks/index.d.ts} +0 -0
- /package/{src/types/ui/content → dist/types/ui/blocks}/index.js +0 -0
- /package/{src → dist}/types/ui/component.js +0 -0
- /package/{src → dist}/types/ui/content/category.js +0 -0
- /package/{src → dist}/types/ui/content/form.js +0 -0
- /package/{src/types/ui/content/index.ts → dist/types/ui/content/index.d.ts} +0 -0
- /package/{src/types/ui/help → dist/types/ui/content}/index.js +0 -0
- /package/{src → dist}/types/ui/content/page.js +0 -0
- /package/{src → dist}/types/ui/content/post.js +0 -0
- /package/{src → dist}/types/ui/content/team.js +0 -0
- /package/{src → dist}/types/ui/content/testimonial.js +0 -0
- /package/{src → dist}/types/ui/form.js +0 -0
- /package/{src/types/ui/meta → dist/types/ui/help}/index.js +0 -0
- /package/{src → dist}/types/ui/meta/analytics.js +0 -0
- /package/{src → dist}/types/ui/meta/config.js +0 -0
- /package/{src → dist}/types/ui/meta/globals.js +0 -0
- /package/{src/types/ui/meta/index.ts → dist/types/ui/meta/index.d.ts} +0 -0
- /package/{src/types/ui/os → dist/types/ui/meta}/index.js +0 -0
- /package/{src → dist}/types/ui/meta/navigation.js +0 -0
- /package/{src → dist}/types/ui/meta/redirect.js +0 -0
- /package/{src → dist}/types/ui/meta/seo.js +0 -0
- /package/{src → dist}/types/ui/os/contact.js +0 -0
- /package/{src → dist}/types/ui/os/conversation.js +0 -0
- /package/{src/types/ui/os/index.ts → dist/types/ui/os/index.d.ts} +0 -0
- /package/{src/types/ui/system → dist/types/ui/os}/index.js +0 -0
- /package/{src → dist}/types/ui/os/organization.js +0 -0
- /package/{src → dist}/types/ui/os/os-activity.js +0 -0
- /package/{src → dist}/types/ui/os/os-deal.js +0 -0
- /package/{src → dist}/types/ui/os/os-expense.js +0 -0
- /package/{src → dist}/types/ui/os/os-invoice.js +0 -0
- /package/{src → dist}/types/ui/os/os-item.js +0 -0
- /package/{src → dist}/types/ui/os/os-payment.js +0 -0
- /package/{src → dist}/types/ui/os/os-project.js +0 -0
- /package/{src → dist}/types/ui/os/os-proposal.js +0 -0
- /package/{src → dist}/types/ui/os/os-settings.js +0 -0
- /package/{src → dist}/types/ui/os/os-subscription.js +0 -0
- /package/{src → dist}/types/ui/os/os-task.js +0 -0
- /package/{src → dist}/types/ui/os/os-tax-rate.js +0 -0
- /package/{src → dist}/types/ui/pageComponentMap.js +0 -0
- /package/{src → dist}/types/ui/pagination.js +0 -0
- /package/{src → dist}/types/ui/schema.js +0 -0
- /package/{src → dist}/types/ui/state.js +0 -0
- /package/{src → dist}/types/ui/system/file.js +0 -0
- /package/{src → dist}/types/ui/system/folder.js +0 -0
- /package/{src/types/ui/system/index.ts → dist/types/ui/system/index.d.ts} +0 -0
- /package/{src/types/ui/system/role.js → dist/types/ui/system/index.js} +0 -0
- /package/{src/types/ui/system/user.js → dist/types/ui/system/role.js} +0 -0
- /package/{src/types/ui/api/global-search.js → dist/types/ui.js} +0 -0
- /package/{src/types → types}/ui/api/global-search.ts +0 -0
- /package/{src/types → types}/ui/blocks/block-button-group.ts +0 -0
- /package/{src/types → types}/ui/blocks/block-button.ts +0 -0
- /package/{src/types → types}/ui/blocks/block-column.ts +0 -0
- /package/{src/types → types}/ui/blocks/block-cta.ts +0 -0
- /package/{src/types → types}/ui/blocks/block-divider.ts +0 -0
- /package/{src/types → types}/ui/blocks/block-faq.ts +0 -0
- /package/{src/types → types}/ui/blocks/block-form.ts +0 -0
- /package/{src/types → types}/ui/blocks/block-gallery.ts +0 -0
- /package/{src/types → types}/ui/blocks/block-hero.ts +0 -0
- /package/{src/types → types}/ui/blocks/block-html.ts +0 -0
- /package/{src/types → types}/ui/blocks/block-logocloud.ts +0 -0
- /package/{src/types → types}/ui/blocks/block-quote.ts +0 -0
- /package/{src/types → types}/ui/blocks/block-richtext.ts +0 -0
- /package/{src/types → types}/ui/blocks/block-steps.ts +0 -0
- /package/{src/types → types}/ui/blocks/block-team.ts +0 -0
- /package/{src/types → types}/ui/blocks/block-testimonial.ts +0 -0
- /package/{src/types → types}/ui/blocks/block-video.ts +0 -0
- /package/{src/types → types}/ui/blocks/block.ts +0 -0
- /package/{src/types → types}/ui/component.ts +0 -0
- /package/{src/types → types}/ui/content/category.ts +0 -0
- /package/{src/types → types}/ui/content/form.ts +0 -0
- /package/{src/types → types}/ui/content/page.ts +0 -0
- /package/{src/types → types}/ui/content/post.ts +0 -0
- /package/{src/types → types}/ui/content/team.ts +0 -0
- /package/{src/types → types}/ui/content/testimonial.ts +0 -0
- /package/{src/types → types}/ui/env.d.ts +0 -0
- /package/{src/types → types}/ui/form.ts +0 -0
- /package/{src/types → types}/ui/help/index.ts +0 -0
- /package/{src/types → types}/ui/meta/analytics.ts +0 -0
- /package/{src/types → types}/ui/meta/config.ts +0 -0
- /package/{src/types → types}/ui/meta/globals.ts +0 -0
- /package/{src/types → types}/ui/meta/navigation.ts +0 -0
- /package/{src/types → types}/ui/meta/redirect.ts +0 -0
- /package/{src/types → types}/ui/meta/seo.ts +0 -0
- /package/{src/types → types}/ui/os/contact.ts +0 -0
- /package/{src/types → types}/ui/os/conversation.ts +0 -0
- /package/{src/types → types}/ui/os/organization.ts +0 -0
- /package/{src/types → types}/ui/os/os-activity.ts +0 -0
- /package/{src/types → types}/ui/os/os-deal.ts +0 -0
- /package/{src/types → types}/ui/os/os-expense.ts +0 -0
- /package/{src/types → types}/ui/os/os-invoice.ts +0 -0
- /package/{src/types → types}/ui/os/os-item.ts +0 -0
- /package/{src/types → types}/ui/os/os-payment.ts +0 -0
- /package/{src/types → types}/ui/os/os-project.ts +0 -0
- /package/{src/types → types}/ui/os/os-proposal.ts +0 -0
- /package/{src/types → types}/ui/os/os-settings.ts +0 -0
- /package/{src/types → types}/ui/os/os-subscription.ts +0 -0
- /package/{src/types → types}/ui/os/os-task.ts +0 -0
- /package/{src/types → types}/ui/os/os-tax-rate.ts +0 -0
- /package/{src/types → types}/ui/pageComponentMap.ts +0 -0
- /package/{src/types → types}/ui/pagination.ts +0 -0
- /package/{src/types → types}/ui/schema.d.ts +0 -0
- /package/{src/types → types}/ui/schema.ts +0 -0
- /package/{src/types → types}/ui/state.ts +0 -0
- /package/{src/types → types}/ui/system/file.ts +0 -0
- /package/{src/types → types}/ui/system/folder.ts +0 -0
- /package/{src/types → types}/ui/system/role.ts +0 -0
- /package/{src/types → types}/ui/system/user.ts +0 -0
- /package/{src/types → types}/ui.ts +0 -0
- /package/{src/utils → utils}/color.js +0 -0
- /package/{src/utils → utils}/color.ts +0 -0
- /package/{src/utils → utils}/fonts.js +0 -0
- /package/{src/utils → utils}/fonts.ts +0 -0
- /package/{src/utils → utils}/formkit.js +0 -0
- /package/{src/utils → utils}/formkit.ts +0 -0
- /package/{src/utils → utils}/icons.js +0 -0
- /package/{src/utils → utils}/icons.ts +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { User } from '../system';
|
|
2
|
+
export interface OsSettings {
|
|
3
|
+
id?: string;
|
|
4
|
+
next_invoice_number?: number | null;
|
|
5
|
+
next_proposal_number?: number | null;
|
|
6
|
+
}
|
|
7
|
+
export interface OsEmailTemplate {
|
|
8
|
+
id?: string;
|
|
9
|
+
sort?: number | null;
|
|
10
|
+
user_created?: (string | User) | null;
|
|
11
|
+
date_created?: string | null;
|
|
12
|
+
user_updated?: (string | User) | null;
|
|
13
|
+
date_updated?: string | null;
|
|
14
|
+
subject?: string | null;
|
|
15
|
+
body?: string | null;
|
|
16
|
+
name?: string | null;
|
|
17
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface OsSubscription {
|
|
2
|
+
id?: string;
|
|
3
|
+
quantity?: number | null;
|
|
4
|
+
cancel_at_period_end?: boolean | null;
|
|
5
|
+
created?: string | null;
|
|
6
|
+
ended_at?: string | null;
|
|
7
|
+
status?: string | null;
|
|
8
|
+
cancel_at?: string | null;
|
|
9
|
+
canceled_at?: string | null;
|
|
10
|
+
trial_start?: string | null;
|
|
11
|
+
trial_end?: string | null;
|
|
12
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { User } from '../system';
|
|
2
|
+
import type { Form } from '../content';
|
|
3
|
+
import type { OsProject } from '.';
|
|
4
|
+
export interface OsTaskFile {
|
|
5
|
+
id?: string;
|
|
6
|
+
os_tasks_id?: (string | OsTask) | null;
|
|
7
|
+
directus_files_id?: (string | File) | null;
|
|
8
|
+
sort?: number | null;
|
|
9
|
+
}
|
|
10
|
+
export interface OsTask {
|
|
11
|
+
id?: string;
|
|
12
|
+
status?: string;
|
|
13
|
+
sort?: number | null;
|
|
14
|
+
user_created?: (string | User) | null;
|
|
15
|
+
date_created?: string | null;
|
|
16
|
+
user_updated?: (string | User) | null;
|
|
17
|
+
date_updated?: string | null;
|
|
18
|
+
project?: (string | OsProject) | null;
|
|
19
|
+
name?: string | null;
|
|
20
|
+
description?: string | null;
|
|
21
|
+
assigned_to?: (string | User) | null;
|
|
22
|
+
due_date?: string | null;
|
|
23
|
+
is_visible_to_client?: boolean;
|
|
24
|
+
type?: string;
|
|
25
|
+
date_completed?: string | null;
|
|
26
|
+
responsibility?: string | null;
|
|
27
|
+
start_date?: string | null;
|
|
28
|
+
embed_url?: string | null;
|
|
29
|
+
form?: (string | Form) | null;
|
|
30
|
+
files?: (string | OsTaskFile)[];
|
|
31
|
+
client_task_details?: string;
|
|
32
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { User } from '../system';
|
|
2
|
+
export interface OsTaxRate {
|
|
3
|
+
id?: string;
|
|
4
|
+
status?: string;
|
|
5
|
+
sort?: number | null;
|
|
6
|
+
user_created?: (string | User) | null;
|
|
7
|
+
date_created?: string | null;
|
|
8
|
+
user_updated?: (string | User) | null;
|
|
9
|
+
date_updated?: string | null;
|
|
10
|
+
name?: string | null;
|
|
11
|
+
rate?: number | null;
|
|
12
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { BlockColumn, BlockCta, BlockFaq, BlockForm, BlockGallery, BlockHero, BlockHtml, BlockLogocloud, BlockQuote, BlockRichtext, BlockStep, BlockTeam, BlockTestimonial, BlockVideo } from './blocks';
|
|
2
|
+
import type { Globals, Navigation, Redirect, SEO, ProjectsSettings, PageSettings, ChatConfig, Event, Metric } from './meta';
|
|
3
|
+
import type { Page, PageBlock, Category, Form, Post, Team, Testimonial, PagesProjects, PagesBlog } from './content';
|
|
4
|
+
import type { Inbox, HelpArticle, HelpCollection, HelpFeedback } from './help';
|
|
5
|
+
import type { File, User } from './system';
|
|
6
|
+
import type { Conversation, Message, Contact, Organization, OrganizationAddress, OrganizationContact, OsActivity, OsActivityContact, OsDealContact, OsDeal, OsDealStage, OsEmailTemplate, OsExpense, OsInvoiceItem, OsInvoice, OsItem, OsPayment, OsPaymentTerm, OsProjectContact, OsProjectFile, OsProject, OsProjectTemplate, OsProposalApproval, OsProposalBlock, OsProposalContact, OsProposal, OsSettings, OsSubscription, OsTaskFile, OsTask, OsTaxRate } from './os';
|
|
7
|
+
/** Directus Schema for SDK */
|
|
8
|
+
export interface Schema {
|
|
9
|
+
pages: Page[];
|
|
10
|
+
pages_blocks: PageBlock[];
|
|
11
|
+
categories: Category[];
|
|
12
|
+
forms: Form[];
|
|
13
|
+
posts: Post[];
|
|
14
|
+
team: Team[];
|
|
15
|
+
testimonials: Testimonial[];
|
|
16
|
+
pages_projects: PagesProjects;
|
|
17
|
+
pages_blog: PagesBlog;
|
|
18
|
+
block_columns: BlockColumn[];
|
|
19
|
+
block_cta: BlockCta[];
|
|
20
|
+
block_faq: BlockFaq[];
|
|
21
|
+
block_form: BlockForm[];
|
|
22
|
+
block_gallery: BlockGallery[];
|
|
23
|
+
block_hero: BlockHero[];
|
|
24
|
+
block_html: BlockHtml[];
|
|
25
|
+
block_logocloud: BlockLogocloud[];
|
|
26
|
+
block_quote: BlockQuote[];
|
|
27
|
+
block_richtext: BlockRichtext[];
|
|
28
|
+
block_steps: BlockStep[];
|
|
29
|
+
block_team: BlockTeam[];
|
|
30
|
+
block_testimonial: BlockTestimonial[];
|
|
31
|
+
block_video: BlockVideo[];
|
|
32
|
+
contacts: Contact[];
|
|
33
|
+
organizations: Organization[];
|
|
34
|
+
organization_addresses: OrganizationAddress[];
|
|
35
|
+
organizations_contacts: OrganizationContact[];
|
|
36
|
+
os_activities: OsActivity[];
|
|
37
|
+
os_activity_contacts: OsActivityContact[];
|
|
38
|
+
os_deal_contacts: OsDealContact[];
|
|
39
|
+
os_deals: OsDeal[];
|
|
40
|
+
os_deal_stages: OsDealStage[];
|
|
41
|
+
os_email_templates: OsEmailTemplate[];
|
|
42
|
+
os_expenses: OsExpense[];
|
|
43
|
+
os_invoice_items: OsInvoiceItem[];
|
|
44
|
+
os_invoices: OsInvoice[];
|
|
45
|
+
os_items: OsItem[];
|
|
46
|
+
os_payments: OsPayment[];
|
|
47
|
+
os_payment_terms: OsPaymentTerm[];
|
|
48
|
+
os_project_contacts: OsProjectContact[];
|
|
49
|
+
os_project_files: OsProjectFile[];
|
|
50
|
+
os_projects: OsProject[];
|
|
51
|
+
os_project_templates: OsProjectTemplate[];
|
|
52
|
+
os_proposal_approvals: OsProposalApproval[];
|
|
53
|
+
os_proposal_blocks: OsProposalBlock[];
|
|
54
|
+
os_proposal_contacts: OsProposalContact[];
|
|
55
|
+
os_proposals: OsProposal[];
|
|
56
|
+
os_settings: OsSettings;
|
|
57
|
+
os_subscriptions: OsSubscription[];
|
|
58
|
+
os_task_files: OsTaskFile[];
|
|
59
|
+
os_tasks: OsTask[];
|
|
60
|
+
os_tax_rates: OsTaxRate[];
|
|
61
|
+
help_collections: HelpCollection[];
|
|
62
|
+
help_articles: HelpArticle[];
|
|
63
|
+
help_feedback: HelpFeedback[];
|
|
64
|
+
inbox: Inbox[];
|
|
65
|
+
conversations: Conversation[];
|
|
66
|
+
messages: Message[];
|
|
67
|
+
globals: Globals;
|
|
68
|
+
navigation: Navigation[];
|
|
69
|
+
redirects: Redirect[];
|
|
70
|
+
seo: SEO[];
|
|
71
|
+
projects_settings: ProjectsSettings;
|
|
72
|
+
page_settings: PageSettings;
|
|
73
|
+
chat_config: ChatConfig;
|
|
74
|
+
metrics: Metric[];
|
|
75
|
+
events: Event[];
|
|
76
|
+
directus_files: File[];
|
|
77
|
+
directus_users: User[];
|
|
78
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { Folder } from './folder.js';
|
|
2
|
+
import type { User } from './user.js';
|
|
3
|
+
export interface File {
|
|
4
|
+
/** Unique identifier for the file. */
|
|
5
|
+
id: string;
|
|
6
|
+
/** Where the file is stored. Either `local` for the local filesystem or the name of the storage adapter (for example `s3`). */
|
|
7
|
+
storage: string;
|
|
8
|
+
/** Name of the file on disk. By default, Directus uses a random hash for the filename. */
|
|
9
|
+
filename_disk: string;
|
|
10
|
+
/** How you want to the file to be named when it's being downloaded. */
|
|
11
|
+
filename_download: string;
|
|
12
|
+
/** Title for the file. Is extracted from the filename on upload, but can be edited by the user. */
|
|
13
|
+
title: string;
|
|
14
|
+
/** MIME type of the file. */
|
|
15
|
+
type: string;
|
|
16
|
+
/** Virtual folder where this file resides in. */
|
|
17
|
+
folder: string | Folder | null;
|
|
18
|
+
/** Who uploaded the file. */
|
|
19
|
+
uploaded_by: string | User;
|
|
20
|
+
/** When the file was uploaded. */
|
|
21
|
+
uploaded_on: string;
|
|
22
|
+
modified_by: string | User | null;
|
|
23
|
+
modified_on: string;
|
|
24
|
+
/** Character set of the file. */
|
|
25
|
+
charset: string | null;
|
|
26
|
+
/** Size of the file in bytes. */
|
|
27
|
+
filesize: number;
|
|
28
|
+
/** Width of the file in pixels. Only applies to images. */
|
|
29
|
+
width: number | null;
|
|
30
|
+
/** Height of the file in pixels. Only applies to images. */
|
|
31
|
+
height: number | null;
|
|
32
|
+
/** Duration of the file in seconds. Only applies to audio and video. */
|
|
33
|
+
duration: number | null;
|
|
34
|
+
/** Where the file was embedded from. */
|
|
35
|
+
embed: string | null;
|
|
36
|
+
/** Description for the file. */
|
|
37
|
+
description: string | null;
|
|
38
|
+
/** Where the file was created. Is automatically populated based on EXIF data for images. */
|
|
39
|
+
location: string | null;
|
|
40
|
+
/** Tags for the file. Is automatically populated based on EXIF data for images. */
|
|
41
|
+
tags: string[] | null;
|
|
42
|
+
/** IPTC, EXIF, and ICC metadata extracted from file */
|
|
43
|
+
metadata: {
|
|
44
|
+
[key: string]: any;
|
|
45
|
+
} | null;
|
|
46
|
+
storage_divider: string;
|
|
47
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { User } from './user.js';
|
|
2
|
+
export interface Role {
|
|
3
|
+
/** Unique identifier for the role. */
|
|
4
|
+
id: string;
|
|
5
|
+
/** Name of the role. */
|
|
6
|
+
name: string;
|
|
7
|
+
/** The role's icon. */
|
|
8
|
+
icon: string;
|
|
9
|
+
/** Description of the role. */
|
|
10
|
+
description: string | null;
|
|
11
|
+
/** Array of IP addresses that are allowed to connect to the API as a user of this role. */
|
|
12
|
+
ip_access: string[];
|
|
13
|
+
/** Whether or not this role enforces the use of 2FA. */
|
|
14
|
+
enforce_tfa: boolean;
|
|
15
|
+
/** Admin role. If true, skips all permission checks. */
|
|
16
|
+
admin_access: boolean;
|
|
17
|
+
/** The users in the role are allowed to use the app. */
|
|
18
|
+
app_access: boolean;
|
|
19
|
+
users: string | User[];
|
|
20
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { Role } from './role.js';
|
|
2
|
+
export interface User {
|
|
3
|
+
/** Unique identifier for the user. */
|
|
4
|
+
id: string;
|
|
5
|
+
/** First name of the user. */
|
|
6
|
+
first_name: string;
|
|
7
|
+
/** Last name of the user. */
|
|
8
|
+
last_name: string;
|
|
9
|
+
/** Unique email address for the user. */
|
|
10
|
+
email: string;
|
|
11
|
+
/** Password of the user. */
|
|
12
|
+
password: string;
|
|
13
|
+
/** The user's location. */
|
|
14
|
+
location: string | null;
|
|
15
|
+
/** The user's title. */
|
|
16
|
+
title: string | null;
|
|
17
|
+
/** The user's description. */
|
|
18
|
+
description: string | null;
|
|
19
|
+
/** The user's tags. */
|
|
20
|
+
tags: string[] | null;
|
|
21
|
+
/** The user's avatar. */
|
|
22
|
+
avatar: string | File | null;
|
|
23
|
+
/** The user's language used in Directus. */
|
|
24
|
+
language: string;
|
|
25
|
+
/** What theme the user is using. */
|
|
26
|
+
theme: 'light' | 'dark' | 'auto';
|
|
27
|
+
/** The 2FA secret string that's used to generate one time passwords. */
|
|
28
|
+
tfa_secret: string | null;
|
|
29
|
+
/** Status of the user. */
|
|
30
|
+
status: 'active' | 'invited' | 'draft' | 'suspended' | 'deleted';
|
|
31
|
+
/** Unique identifier of the role of this user. */
|
|
32
|
+
role: string | Role;
|
|
33
|
+
/** Static token for the user. */
|
|
34
|
+
token: string | null;
|
|
35
|
+
last_access: string | null;
|
|
36
|
+
/** Last page that the user was on. */
|
|
37
|
+
last_page: string | null;
|
|
38
|
+
provider: string;
|
|
39
|
+
external_identifier: string | null;
|
|
40
|
+
auth_data: {
|
|
41
|
+
[key: string]: any;
|
|
42
|
+
} | null;
|
|
43
|
+
github: string | null;
|
|
44
|
+
linkedin: string | null;
|
|
45
|
+
start_date: string | null;
|
|
46
|
+
pronouns: string | null;
|
|
47
|
+
nickname: string | null;
|
|
48
|
+
birthday: string | null;
|
|
49
|
+
personal_email: string | null;
|
|
50
|
+
classification: string | null;
|
|
51
|
+
timezone: string | null;
|
|
52
|
+
phone: string | null;
|
|
53
|
+
email_notifications: boolean | null;
|
|
54
|
+
company_info: string;
|
|
55
|
+
preferences_divider: string;
|
|
56
|
+
admin_divider: string;
|
|
57
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface Image {
|
|
2
|
+
url: string;
|
|
3
|
+
alt?: string;
|
|
4
|
+
width?: number;
|
|
5
|
+
height?: number;
|
|
6
|
+
[key: string]: any;
|
|
7
|
+
}
|
|
8
|
+
export interface Product {
|
|
9
|
+
id: string;
|
|
10
|
+
name?: string;
|
|
11
|
+
price?: number;
|
|
12
|
+
images?: Image[];
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
}
|
|
15
|
+
export interface Category {
|
|
16
|
+
id: string;
|
|
17
|
+
name?: string;
|
|
18
|
+
slug?: string;
|
|
19
|
+
image?: string;
|
|
20
|
+
[key: string]: any;
|
|
21
|
+
}
|
package/module.ts
CHANGED
|
@@ -1,14 +1,104 @@
|
|
|
1
|
-
|
|
1
|
+
// @mframework/ui/module.ts
|
|
2
|
+
import {
|
|
3
|
+
defineNuxtModule,
|
|
4
|
+
addPlugin,
|
|
5
|
+
addComponentsDir,
|
|
6
|
+
createResolver,
|
|
7
|
+
installModule
|
|
8
|
+
} from '@nuxt/kit'
|
|
2
9
|
|
|
3
|
-
export
|
|
10
|
+
export interface MFrameworkUiOptions {
|
|
11
|
+
image?: Record<string, any>
|
|
12
|
+
fonts?: Record<string, any>
|
|
13
|
+
vuetify?: {
|
|
14
|
+
vuetifyOptions?: Record<string, any>
|
|
15
|
+
}
|
|
16
|
+
tailwind?: {
|
|
17
|
+
enable?: boolean
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export default defineNuxtModule<MFrameworkUiOptions>({
|
|
4
22
|
meta: {
|
|
5
23
|
name: '@mframework/ui',
|
|
6
24
|
configKey: 'mframeworkUi'
|
|
7
25
|
},
|
|
8
|
-
|
|
26
|
+
defaults: {
|
|
27
|
+
image: {},
|
|
28
|
+
fonts: {},
|
|
29
|
+
vuetify: {
|
|
30
|
+
vuetifyOptions: {
|
|
31
|
+
icons: {
|
|
32
|
+
defaultSet: 'mdi'
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
tailwind: {
|
|
37
|
+
enable: true
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
async setup(options, nuxt) {
|
|
9
41
|
const { resolve } = createResolver(import.meta.url)
|
|
10
42
|
|
|
11
|
-
//
|
|
12
|
-
|
|
43
|
+
//
|
|
44
|
+
// 1. Expose options to runtime
|
|
45
|
+
//
|
|
46
|
+
nuxt.options.runtimeConfig.public.mframeworkUi = options
|
|
47
|
+
|
|
48
|
+
//
|
|
49
|
+
// 2. Install @nuxt/image
|
|
50
|
+
//
|
|
51
|
+
await installModule('@nuxt/image', options.image || {})
|
|
52
|
+
|
|
53
|
+
//
|
|
54
|
+
// 3. Install @nuxt/fonts
|
|
55
|
+
//
|
|
56
|
+
await installModule('@nuxt/fonts', options.fonts || {})
|
|
57
|
+
|
|
58
|
+
//
|
|
59
|
+
// 4. Install Vuetify via vuetify-nuxt-module
|
|
60
|
+
//
|
|
61
|
+
await installModule('vuetify-nuxt-module', {
|
|
62
|
+
vuetifyOptions: options.vuetify?.vuetifyOptions || {}
|
|
63
|
+
})
|
|
64
|
+
|
|
65
|
+
//
|
|
66
|
+
// 5. Tailwind + Vuetify coexistence
|
|
67
|
+
//
|
|
68
|
+
if (options.tailwind?.enable !== false) {
|
|
69
|
+
nuxt.options.css = nuxt.options.css || []
|
|
70
|
+
nuxt.options.css.push(resolve('./runtime/assets/css/tailwind.css'))
|
|
71
|
+
|
|
72
|
+
nuxt.options.postcss = nuxt.options.postcss || { plugins: {}, order: [] }
|
|
73
|
+
nuxt.options.postcss.plugins = nuxt.options.postcss.plugins || {}
|
|
74
|
+
nuxt.options.postcss.plugins['tailwindcss'] = {}
|
|
75
|
+
nuxt.options.postcss.plugins['autoprefixer'] = {}
|
|
76
|
+
|
|
77
|
+
nuxt.options.tailwindcss = {
|
|
78
|
+
configPath: resolve('./runtime/assets/config/tailwind.config.cjs')
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
//
|
|
83
|
+
// 6. Register plugins (icons, theme, icon switching, search)
|
|
84
|
+
//
|
|
85
|
+
addPlugin(resolve('./runtime/plugins/icons'))
|
|
86
|
+
addPlugin(resolve('./runtime/plugins/theme'))
|
|
87
|
+
addPlugin(resolve('./runtime/plugins/icon-switcher'))
|
|
88
|
+
addPlugin(resolve('./runtime/search/plugin'))
|
|
89
|
+
|
|
90
|
+
//
|
|
91
|
+
// 7. Auto-import components from this module
|
|
92
|
+
//
|
|
93
|
+
addComponentsDir({
|
|
94
|
+
path: resolve('./runtime/components'),
|
|
95
|
+
pathPrefix: false,
|
|
96
|
+
prefix: 'M'
|
|
97
|
+
})
|
|
98
|
+
|
|
99
|
+
addComponentsDir({
|
|
100
|
+
path: resolve('./runtime/search/components'),
|
|
101
|
+
prefix: 'M'
|
|
102
|
+
})
|
|
13
103
|
}
|
|
14
|
-
})
|
|
104
|
+
})
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mframework/ui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"description": "Official opinionated UI module for the M Framework.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ui",
|
|
@@ -12,10 +12,12 @@
|
|
|
12
12
|
"license": "MIT",
|
|
13
13
|
"author": "M Framework",
|
|
14
14
|
"type": "module",
|
|
15
|
-
"main": "
|
|
16
|
-
"exports": {
|
|
15
|
+
"main": "module.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
"./module": "./module.ts"
|
|
18
|
+
},
|
|
19
|
+
"types": "./types.d.ts",
|
|
17
20
|
"scripts": {
|
|
18
|
-
"test": "echo \"Error: no test specified\" && exit 1",
|
|
19
21
|
"build": "tsc -p tsconfig.json"
|
|
20
22
|
},
|
|
21
23
|
"dependencies": {
|
|
@@ -24,18 +26,14 @@
|
|
|
24
26
|
"@fortawesome/fontawesome-svg-core": "^7.1.0",
|
|
25
27
|
"@fortawesome/free-solid-svg-icons": "^7.1.0",
|
|
26
28
|
"@fortawesome/vue-fontawesome": "^3.1.2",
|
|
27
|
-
"@grapesjs/studio-sdk": "^1.0.57",
|
|
28
29
|
"@mdi/font": "^7.4.47",
|
|
30
|
+
"@nuxt/fonts": "^0.13.0",
|
|
29
31
|
"@nuxt/image": "^2.0.0",
|
|
32
|
+
"@nuxt/kit": "^4.3.1",
|
|
30
33
|
"@vueuse/motion": "^3.0.3",
|
|
31
|
-
"izitoast": "^1.4.0",
|
|
32
|
-
"lg-thumbnail": "^1.2.1",
|
|
33
|
-
"lg-video": "^1.4.0",
|
|
34
|
-
"lg-zoom": "^1.3.0",
|
|
35
|
-
"lightgallery": "^2.9.0",
|
|
36
34
|
"tailwindcss": "^4.1.18",
|
|
37
|
-
"vue
|
|
38
|
-
"vuetify
|
|
35
|
+
"vue": "^3.5.28",
|
|
36
|
+
"vuetify": "^3.11.8"
|
|
39
37
|
},
|
|
40
38
|
"devDependencies": {
|
|
41
39
|
"sass": "^1.94.2",
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/* @mframework/ui/runtime/assets/css/tailwind.css */
|
|
2
|
+
|
|
3
|
+
/* Tailwind base (if using Tailwind 3 style) */
|
|
4
|
+
@tailwind base;
|
|
5
|
+
@tailwind components;
|
|
6
|
+
@tailwind utilities;
|
|
7
|
+
|
|
8
|
+
/* Vuetify + Tailwind coexistence tips:
|
|
9
|
+
- Avoid global resets that fight Vuetify
|
|
10
|
+
- Prefer utility classes for layout, spacing, etc.
|
|
11
|
+
*/
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const tokens = {
|
|
2
|
+
colors: {
|
|
3
|
+
primary: '#4f46e5',
|
|
4
|
+
secondary: '#64748b',
|
|
5
|
+
success: '#22c55e',
|
|
6
|
+
warning: '#f59e0b',
|
|
7
|
+
error: '#ef4444',
|
|
8
|
+
surface: '#ffffff',
|
|
9
|
+
background: '#f8fafc'
|
|
10
|
+
},
|
|
11
|
+
radius: {
|
|
12
|
+
sm: '4px',
|
|
13
|
+
md: '8px',
|
|
14
|
+
lg: '12px'
|
|
15
|
+
},
|
|
16
|
+
spacing: {
|
|
17
|
+
xs: '4px',
|
|
18
|
+
sm: '8px',
|
|
19
|
+
md: '16px',
|
|
20
|
+
lg: '24px'
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { vuetify } from './vuetify'
|
|
2
|
+
|
|
3
|
+
export default (nuxtApp: any) => {
|
|
4
|
+
const stored = typeof localStorage !== 'undefined' ? localStorage.getItem('mframework-icon-set') : null
|
|
5
|
+
const initial = stored || 'mdi'
|
|
6
|
+
|
|
7
|
+
// `vuetify` typing differs between versions; treat as any here
|
|
8
|
+
;(vuetify as any).framework = (vuetify as any).framework || {}
|
|
9
|
+
;(vuetify as any).framework.icons = (vuetify as any).framework.icons || {}
|
|
10
|
+
;(vuetify as any).framework.icons.defaultSet = initial
|
|
11
|
+
|
|
12
|
+
const setIconSet = (name: string) => {
|
|
13
|
+
;(vuetify as any).framework.icons.defaultSet = name
|
|
14
|
+
if (typeof localStorage !== 'undefined') localStorage.setItem('mframework-icon-set', name)
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
nuxtApp.provide('mIcons', {
|
|
18
|
+
setIconSet,
|
|
19
|
+
current: () => (vuetify as any).framework.icons.defaultSet,
|
|
20
|
+
})
|
|
21
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { useTheme } from 'vuetify'
|
|
2
|
+
|
|
3
|
+
export default (nuxtApp: any) => {
|
|
4
|
+
const theme = useTheme()
|
|
5
|
+
// Attempt to read runtime config from nuxtApp (fallbacks to undefined)
|
|
6
|
+
const config: any = (nuxtApp && (nuxtApp as any).$config && (nuxtApp as any).$config.public && (nuxtApp as any).$config.public.mframeworkUi) || {}
|
|
7
|
+
|
|
8
|
+
// 1. Load persisted theme
|
|
9
|
+
const stored = typeof localStorage !== 'undefined' ? localStorage.getItem('mframework-theme') : null
|
|
10
|
+
const initial = stored || config?.theme?.default || 'light'
|
|
11
|
+
;(theme as any).global.name.value = initial
|
|
12
|
+
|
|
13
|
+
// 2. Expose a global toggle
|
|
14
|
+
const toggleTheme = () => {
|
|
15
|
+
const newTheme = (theme as any).global.current.value.dark ? 'light' : 'dark'
|
|
16
|
+
;(theme as any).global.name.value = newTheme
|
|
17
|
+
if (typeof localStorage !== 'undefined') localStorage.setItem('mframework-theme', newTheme)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// 3. Expose to app
|
|
21
|
+
nuxtApp.provide('mTheme', {
|
|
22
|
+
theme,
|
|
23
|
+
toggleTheme,
|
|
24
|
+
setTheme: (name: string) => {
|
|
25
|
+
;(theme as any).global.name.value = name
|
|
26
|
+
if (typeof localStorage !== 'undefined') localStorage.setItem('mframework-theme', name)
|
|
27
|
+
}
|
|
28
|
+
})
|
|
29
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createVuetify } from 'vuetify';
|
|
2
|
+
import * as components from 'vuetify/components';
|
|
3
|
+
import * as directives from 'vuetify/directives';
|
|
4
|
+
import 'vuetify/styles';
|
|
5
|
+
import { defineNuxtPlugin } from '#app';
|
|
6
|
+
export default defineNuxtPlugin((nuxtApp) => {
|
|
7
|
+
const vuetify = createVuetify({
|
|
8
|
+
components,
|
|
9
|
+
directives
|
|
10
|
+
});
|
|
11
|
+
nuxtApp.vueApp.use(vuetify);
|
|
12
|
+
});
|