@mframework/ui 0.0.1 → 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.d.ts +21 -0
- package/module.ts +104 -0
- package/package.json +10 -11
- 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 +64 -0
- 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 → dist}/types/ui/api/global-search.js +0 -0
- /package/{src → dist}/types/ui/blocks/block-button-group.js +0 -0
- /package/{src → dist}/types/ui/blocks/block-button.js +0 -0
- /package/{src → dist}/types/ui/blocks/block-column.js +0 -0
- /package/{src → dist}/types/ui/blocks/block-cta.js +0 -0
- /package/{src → dist}/types/ui/blocks/block-divider.js +0 -0
- /package/{src → dist}/types/ui/blocks/block-faq.js +0 -0
- /package/{src → dist}/types/ui/blocks/block-form.js +0 -0
- /package/{src → dist}/types/ui/blocks/block-gallery.js +0 -0
- /package/{src → dist}/types/ui/blocks/block-hero.js +0 -0
- /package/{src → dist}/types/ui/blocks/block-html.js +0 -0
- /package/{src → dist}/types/ui/blocks/block-logocloud.js +0 -0
- /package/{src → dist}/types/ui/blocks/block-quote.js +0 -0
- /package/{src → dist}/types/ui/blocks/block-richtext.js +0 -0
- /package/{src → dist}/types/ui/blocks/block-steps.js +0 -0
- /package/{src → dist}/types/ui/blocks/block-team.js +0 -0
- /package/{src → dist}/types/ui/blocks/block-testimonial.js +0 -0
- /package/{src → dist}/types/ui/blocks/block-video.js +0 -0
- /package/{src → 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 → 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 → 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 → 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 → 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 → 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 → dist}/types/ui/system/index.js +0 -0
- /package/{src → dist}/types/ui/system/role.js +0 -0
- /package/{src → dist}/types/ui/system/user.js +0 -0
- /package/{src → 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,22 @@
|
|
|
1
|
+
export declare const tokens: {
|
|
2
|
+
colors: {
|
|
3
|
+
primary: string;
|
|
4
|
+
secondary: string;
|
|
5
|
+
success: string;
|
|
6
|
+
warning: string;
|
|
7
|
+
error: string;
|
|
8
|
+
surface: string;
|
|
9
|
+
background: string;
|
|
10
|
+
};
|
|
11
|
+
radius: {
|
|
12
|
+
sm: string;
|
|
13
|
+
md: string;
|
|
14
|
+
lg: string;
|
|
15
|
+
};
|
|
16
|
+
spacing: {
|
|
17
|
+
xs: string;
|
|
18
|
+
sm: string;
|
|
19
|
+
md: string;
|
|
20
|
+
lg: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
@@ -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,18 @@
|
|
|
1
|
+
import { vuetify } from './vuetify';
|
|
2
|
+
export default (nuxtApp) => {
|
|
3
|
+
const stored = typeof localStorage !== 'undefined' ? localStorage.getItem('mframework-icon-set') : null;
|
|
4
|
+
const initial = stored || 'mdi';
|
|
5
|
+
vuetify.framework = vuetify.framework || {};
|
|
6
|
+
vuetify.framework.icons = vuetify.framework.icons || {};
|
|
7
|
+
vuetify.framework.icons.defaultSet = initial;
|
|
8
|
+
const setIconSet = (name) => {
|
|
9
|
+
;
|
|
10
|
+
vuetify.framework.icons.defaultSet = name;
|
|
11
|
+
if (typeof localStorage !== 'undefined')
|
|
12
|
+
localStorage.setItem('mframework-icon-set', name);
|
|
13
|
+
};
|
|
14
|
+
nuxtApp.provide('mIcons', {
|
|
15
|
+
setIconSet,
|
|
16
|
+
current: () => vuetify.framework.icons.defaultSet,
|
|
17
|
+
});
|
|
18
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// @mframework/ui/runtime/plugins/icons.ts
|
|
2
|
+
import { defineNuxtPlugin } from '#imports';
|
|
3
|
+
import { library } from '@fortawesome/fontawesome-svg-core';
|
|
4
|
+
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
|
|
5
|
+
import { fas } from '@fortawesome/free-solid-svg-icons';
|
|
6
|
+
import '@fortawesome/fontawesome-free/css/all.css';
|
|
7
|
+
import '@mdi/font/css/materialdesignicons.css';
|
|
8
|
+
export default defineNuxtPlugin((nuxtApp) => {
|
|
9
|
+
// Add all solid icons (you can be more selective if you want)
|
|
10
|
+
library.add(fas);
|
|
11
|
+
// Register global FA component
|
|
12
|
+
nuxtApp.vueApp.component('FaIcon', FontAwesomeIcon);
|
|
13
|
+
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { useTheme } from 'vuetify';
|
|
2
|
+
export default (nuxtApp) => {
|
|
3
|
+
const theme = useTheme();
|
|
4
|
+
// Attempt to read runtime config from nuxtApp (fallbacks to undefined)
|
|
5
|
+
const config = (nuxtApp && nuxtApp.$config && nuxtApp.$config.public && nuxtApp.$config.public.mframeworkUi) || {};
|
|
6
|
+
// 1. Load persisted theme
|
|
7
|
+
const stored = typeof localStorage !== 'undefined' ? localStorage.getItem('mframework-theme') : null;
|
|
8
|
+
const initial = stored || config?.theme?.default || 'light';
|
|
9
|
+
theme.global.name.value = initial;
|
|
10
|
+
// 2. Expose a global toggle
|
|
11
|
+
const toggleTheme = () => {
|
|
12
|
+
const newTheme = theme.global.current.value.dark ? 'light' : 'dark';
|
|
13
|
+
theme.global.name.value = newTheme;
|
|
14
|
+
if (typeof localStorage !== 'undefined')
|
|
15
|
+
localStorage.setItem('mframework-theme', newTheme);
|
|
16
|
+
};
|
|
17
|
+
// 3. Expose to app
|
|
18
|
+
nuxtApp.provide('mTheme', {
|
|
19
|
+
theme,
|
|
20
|
+
toggleTheme,
|
|
21
|
+
setTheme: (name) => {
|
|
22
|
+
;
|
|
23
|
+
theme.global.name.value = name;
|
|
24
|
+
if (typeof localStorage !== 'undefined')
|
|
25
|
+
localStorage.setItem('mframework-theme', name);
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import '@mdi/font/css/materialdesignicons.css';
|
|
2
|
+
import 'vuetify/styles';
|
|
3
|
+
export declare const vuetify: {
|
|
4
|
+
install: (app: import("vue").App<any>) => void;
|
|
5
|
+
unmount: () => void;
|
|
6
|
+
defaults: import("vue").Ref<import("vuetify").DefaultsInstance, import("vuetify").DefaultsInstance>;
|
|
7
|
+
display: import("vuetify").DisplayInstance;
|
|
8
|
+
theme: import("vuetify").ThemeInstance & {
|
|
9
|
+
install: (app: import("vue").App<any>) => void;
|
|
10
|
+
};
|
|
11
|
+
icons: {
|
|
12
|
+
defaultSet: string;
|
|
13
|
+
aliases: Partial<import("vuetify").IconAliases>;
|
|
14
|
+
sets: Record<string, import("vuetify").IconSet>;
|
|
15
|
+
};
|
|
16
|
+
locale: {
|
|
17
|
+
name: string;
|
|
18
|
+
decimalSeparator: import("vue").ShallowRef<string>;
|
|
19
|
+
messages: import("vue").Ref<import("vuetify").LocaleMessages, import("vuetify").LocaleMessages>;
|
|
20
|
+
current: import("vue").Ref<string, string>;
|
|
21
|
+
fallback: import("vue").Ref<string, string>;
|
|
22
|
+
t: (key: string, ...params: unknown[]) => string;
|
|
23
|
+
n: (value: number) => string;
|
|
24
|
+
provide: (props: import("vuetify").LocaleOptions) => import("vuetify").LocaleInstance;
|
|
25
|
+
isRtl: import("vue").Ref<boolean, boolean>;
|
|
26
|
+
rtl: import("vue").Ref<Record<string, boolean>, Record<string, boolean>>;
|
|
27
|
+
rtlClasses: import("vue").Ref<string, string>;
|
|
28
|
+
};
|
|
29
|
+
date: {
|
|
30
|
+
options: {
|
|
31
|
+
adapter: (new (options: {
|
|
32
|
+
locale: any;
|
|
33
|
+
formats?: any;
|
|
34
|
+
}) => import("vuetify").DateInstance) | import("vuetify").DateInstance;
|
|
35
|
+
formats?: Record<string, any>;
|
|
36
|
+
locale: Record<string, any>;
|
|
37
|
+
};
|
|
38
|
+
instance: {
|
|
39
|
+
date: (value?: any) => unknown;
|
|
40
|
+
format: (date: unknown, formatString: string) => string;
|
|
41
|
+
toJsDate: (value: unknown) => Date;
|
|
42
|
+
parseISO: (date: string) => unknown;
|
|
43
|
+
toISO: (date: unknown) => string;
|
|
44
|
+
startOfDay: (date: unknown) => unknown;
|
|
45
|
+
endOfDay: (date: unknown) => unknown;
|
|
46
|
+
startOfWeek: (date: unknown, firstDayOfWeek?: string | number | undefined) => unknown;
|
|
47
|
+
endOfWeek: (date: unknown) => unknown;
|
|
48
|
+
startOfMonth: (date: unknown) => unknown;
|
|
49
|
+
endOfMonth: (date: unknown) => unknown;
|
|
50
|
+
startOfYear: (date: unknown) => unknown;
|
|
51
|
+
endOfYear: (date: unknown) => unknown;
|
|
52
|
+
isAfter: (date: unknown, comparing: unknown) => boolean;
|
|
53
|
+
isAfterDay: (date: unknown, comparing: unknown) => boolean;
|
|
54
|
+
isSameDay: (date: unknown, comparing: unknown) => boolean;
|
|
55
|
+
isSameMonth: (date: unknown, comparing: unknown) => boolean;
|
|
56
|
+
isSameYear: (date: unknown, comparing: unknown) => boolean;
|
|
57
|
+
isBefore: (date: unknown, comparing: unknown) => boolean;
|
|
58
|
+
isEqual: (date: unknown, comparing: unknown) => boolean;
|
|
59
|
+
isValid: (date: any) => boolean;
|
|
60
|
+
isWithinRange: (date: unknown, range: [unknown, unknown]) => boolean;
|
|
61
|
+
addMinutes: (date: unknown, amount: number) => unknown;
|
|
62
|
+
addHours: (date: unknown, amount: number) => unknown;
|
|
63
|
+
addDays: (date: unknown, amount: number) => unknown;
|
|
64
|
+
addWeeks: (date: unknown, amount: number) => unknown;
|
|
65
|
+
addMonths: (date: unknown, amount: number) => unknown;
|
|
66
|
+
getYear: (date: unknown) => number;
|
|
67
|
+
setYear: (date: unknown, year: number) => unknown;
|
|
68
|
+
getDiff: (date: unknown, comparing: unknown, unit?: string | undefined) => number;
|
|
69
|
+
getWeekArray: (date: unknown, firstDayOfWeek?: string | number | undefined) => unknown[][];
|
|
70
|
+
getWeekdays: (firstDayOfWeek?: string | number | undefined, weekdayFormat?: "long" | "narrow" | "short" | undefined) => string[];
|
|
71
|
+
getWeek: (date: unknown, firstDayOfWeek?: string | number | undefined, firstDayOfYear?: string | number | undefined) => number;
|
|
72
|
+
getMonth: (date: unknown) => number;
|
|
73
|
+
setMonth: (date: unknown, month: number) => unknown;
|
|
74
|
+
getDate: (date: unknown) => number;
|
|
75
|
+
setDate: (date: unknown, day: number) => unknown;
|
|
76
|
+
getNextMonth: (date: unknown) => unknown;
|
|
77
|
+
getPreviousMonth: (date: unknown) => unknown;
|
|
78
|
+
getHours: (date: unknown) => number;
|
|
79
|
+
setHours: (date: unknown, hours: number) => unknown;
|
|
80
|
+
getMinutes: (date: unknown) => number;
|
|
81
|
+
setMinutes: (date: unknown, minutes: number) => unknown;
|
|
82
|
+
locale?: any;
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
goTo: import("vuetify").GoToInstance;
|
|
86
|
+
};
|
|
87
|
+
declare const _default: (nuxtApp: any) => void;
|
|
88
|
+
export default _default;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// plugins/vuetify.ts
|
|
2
|
+
import '@mdi/font/css/materialdesignicons.css';
|
|
3
|
+
import 'vuetify/styles';
|
|
4
|
+
import { createVuetify } from 'vuetify';
|
|
5
|
+
import { aliases, fa } from 'vuetify/iconsets/fa-svg';
|
|
6
|
+
import { library } from '@fortawesome/fontawesome-svg-core';
|
|
7
|
+
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
|
|
8
|
+
import { fas } from '@fortawesome/free-solid-svg-icons';
|
|
9
|
+
import * as components from 'vuetify/components';
|
|
10
|
+
import * as labsComponents from 'vuetify/labs/components';
|
|
11
|
+
import * as directives from 'vuetify/directives';
|
|
12
|
+
import { mdi } from 'vuetify/iconsets/mdi';
|
|
13
|
+
// Register fontawesome icons at module scope
|
|
14
|
+
library.add(fas);
|
|
15
|
+
// Create Vuetify instance at module scope so other runtime plugins can import it
|
|
16
|
+
export const vuetify = createVuetify({
|
|
17
|
+
ssr: true,
|
|
18
|
+
directives,
|
|
19
|
+
icons: {
|
|
20
|
+
defaultSet: 'fa',
|
|
21
|
+
aliases,
|
|
22
|
+
sets: {
|
|
23
|
+
fa,
|
|
24
|
+
mdi,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
components: {
|
|
28
|
+
...components,
|
|
29
|
+
...labsComponents,
|
|
30
|
+
},
|
|
31
|
+
theme: {
|
|
32
|
+
defaultTheme: 'light',
|
|
33
|
+
themes: {
|
|
34
|
+
light: {
|
|
35
|
+
dark: false,
|
|
36
|
+
variables: {}, // required to avoid Vuetify crash
|
|
37
|
+
colors: {
|
|
38
|
+
primary: '#6200EE',
|
|
39
|
+
'primary-darken-1': '#3700B3',
|
|
40
|
+
secondary: '#03DAC6',
|
|
41
|
+
'secondary-darken-1': '#018786',
|
|
42
|
+
error: '#B00020',
|
|
43
|
+
info: '#2196F3',
|
|
44
|
+
success: '#4CAF50',
|
|
45
|
+
warning: '#FB8C00',
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
dark: {
|
|
49
|
+
dark: true,
|
|
50
|
+
variables: {},
|
|
51
|
+
colors: {},
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
export default (nuxtApp) => {
|
|
57
|
+
// Register FontAwesome component on the actual Vue app instance
|
|
58
|
+
nuxtApp.vueApp.component('font-awesome-icon', FontAwesomeIcon);
|
|
59
|
+
nuxtApp.vueApp.use(vuetify);
|
|
60
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export function getSearchClient() {
|
|
2
|
+
let mod;
|
|
3
|
+
try {
|
|
4
|
+
mod = require('@searchkit/instantsearch-client');
|
|
5
|
+
}
|
|
6
|
+
catch {
|
|
7
|
+
console.warn('[mframework-ui] Searchkit client missing');
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
const candidate = mod?.default?.default ||
|
|
11
|
+
mod?.default?.createClient ||
|
|
12
|
+
mod?.default ||
|
|
13
|
+
mod?.createClient ||
|
|
14
|
+
mod;
|
|
15
|
+
if (typeof candidate !== 'function')
|
|
16
|
+
return null;
|
|
17
|
+
const host = process.env.NUXT_PUBLIC_SEARCHKIT_HOST;
|
|
18
|
+
if (!host)
|
|
19
|
+
return null;
|
|
20
|
+
return candidate({ host });
|
|
21
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { defineNuxtPlugin } from '#app';
|
|
2
|
+
import { getSearchClient } from './client';
|
|
3
|
+
export default defineNuxtPlugin((nuxtApp) => {
|
|
4
|
+
const client = getSearchClient();
|
|
5
|
+
const indexName = process.env.NUXT_PUBLIC_SEARCH_INDEX || 'default';
|
|
6
|
+
nuxtApp.provide('mSearchClient', client);
|
|
7
|
+
nuxtApp.provide('mSearchIndex', indexName);
|
|
8
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Post, Page } from '../content';
|
|
2
|
+
export interface BlockButton {
|
|
3
|
+
id: string;
|
|
4
|
+
sort: number | null;
|
|
5
|
+
type: ('pages' | 'posts' | 'external') | null;
|
|
6
|
+
label: string | null;
|
|
7
|
+
color: 'primary' | 'white' | 'gray' | 'white' | 'black';
|
|
8
|
+
variant: 'solid' | 'outline' | 'ghost' | 'link' | 'soft';
|
|
9
|
+
page: string | Page | null;
|
|
10
|
+
post: string | Post | null;
|
|
11
|
+
external_url: string | null;
|
|
12
|
+
icon: string | null;
|
|
13
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { File } from '../system';
|
|
2
|
+
import type { BlockButtonGroup } from '.';
|
|
3
|
+
export interface BlockColumn {
|
|
4
|
+
headline?: string | null;
|
|
5
|
+
id?: string;
|
|
6
|
+
title?: string | null;
|
|
7
|
+
rows?: (number | BlockColumnRow)[];
|
|
8
|
+
}
|
|
9
|
+
export interface BlockColumnRow {
|
|
10
|
+
block_columns?: (string | BlockColumn) | null;
|
|
11
|
+
content?: string | null;
|
|
12
|
+
headline?: string | null;
|
|
13
|
+
id?: string;
|
|
14
|
+
image?: (string | File) | null;
|
|
15
|
+
image_position?: string | null;
|
|
16
|
+
title?: string | null;
|
|
17
|
+
button_group?: (string | BlockButtonGroup) | null;
|
|
18
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { BlockButtonGroup } from '.';
|
|
2
|
+
export interface BlockCta {
|
|
3
|
+
buttons?: {
|
|
4
|
+
[key: string]: any;
|
|
5
|
+
} | null;
|
|
6
|
+
content?: string | null;
|
|
7
|
+
headline?: string | null;
|
|
8
|
+
id?: string;
|
|
9
|
+
title?: string | null;
|
|
10
|
+
button_group?: (string | BlockButtonGroup) | null;
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface BlockFaq {
|
|
2
|
+
faqs?: BlockFaqQuestion[] | null;
|
|
3
|
+
headline?: string | null;
|
|
4
|
+
id?: string;
|
|
5
|
+
title?: string | null;
|
|
6
|
+
alignment?: 'left' | 'center' | null;
|
|
7
|
+
}
|
|
8
|
+
export interface BlockFaqQuestion {
|
|
9
|
+
title: string | null;
|
|
10
|
+
answer: string | null;
|
|
11
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { File } from '../system';
|
|
2
|
+
export interface BlockGallery {
|
|
3
|
+
headline?: string | null;
|
|
4
|
+
id?: string;
|
|
5
|
+
title?: string | null;
|
|
6
|
+
gallery_items?: BlockGalleryFile[] | null;
|
|
7
|
+
}
|
|
8
|
+
export interface BlockGalleryFile {
|
|
9
|
+
block_gallery?: (string | BlockGallery) | null;
|
|
10
|
+
directus_files_id?: (string | File) | null;
|
|
11
|
+
id?: number;
|
|
12
|
+
sort?: number | null;
|
|
13
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { File } from '../system';
|
|
2
|
+
import type { BlockButtonGroup } from '.';
|
|
3
|
+
export interface BlockHero {
|
|
4
|
+
id?: string;
|
|
5
|
+
title?: string | null;
|
|
6
|
+
headline?: string | null;
|
|
7
|
+
content?: string | null;
|
|
8
|
+
image?: (string | File) | null;
|
|
9
|
+
image_position?: 'left' | 'right' | null;
|
|
10
|
+
button_group?: (string | BlockButtonGroup) | null;
|
|
11
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { File } from '../system';
|
|
2
|
+
export interface BlockLogocloud {
|
|
3
|
+
headline?: string | null;
|
|
4
|
+
id?: string;
|
|
5
|
+
title?: string | null;
|
|
6
|
+
logos?: (string | BlockLogocloudFile)[];
|
|
7
|
+
}
|
|
8
|
+
export interface BlockLogocloudFile {
|
|
9
|
+
id?: string;
|
|
10
|
+
sort?: number | null;
|
|
11
|
+
block_logocloud_id?: (string | BlockLogocloud) | null;
|
|
12
|
+
directus_files_id?: (string | File) | null;
|
|
13
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { File } from '../system';
|
|
2
|
+
export interface BlockQuote {
|
|
3
|
+
background_color?: string | null;
|
|
4
|
+
content?: string | null;
|
|
5
|
+
headline?: string | null;
|
|
6
|
+
id?: string;
|
|
7
|
+
image?: (string | File) | null;
|
|
8
|
+
subtitle?: string | null;
|
|
9
|
+
title?: string | null;
|
|
10
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { File } from '../system';
|
|
2
|
+
import type { BlockButtonGroup } from '.';
|
|
3
|
+
export interface BlockStep {
|
|
4
|
+
id?: string;
|
|
5
|
+
title?: string | null;
|
|
6
|
+
headline?: string | null;
|
|
7
|
+
/** If enabled, image position is mframeworkd between left and right. */
|
|
8
|
+
mframework_image_position?: boolean;
|
|
9
|
+
/** Show the step numbers on the website. For example: (Step 1, Step 2, etc) */
|
|
10
|
+
show_step_numbers?: boolean | null;
|
|
11
|
+
steps?: (number | BlockStepItem)[];
|
|
12
|
+
}
|
|
13
|
+
export interface BlockStepItem {
|
|
14
|
+
id?: string;
|
|
15
|
+
title?: string | null;
|
|
16
|
+
content?: string | null;
|
|
17
|
+
image?: (string | File) | null;
|
|
18
|
+
sort?: number | null;
|
|
19
|
+
block_steps?: (string | BlockStep) | null;
|
|
20
|
+
button_group?: (string | BlockButtonGroup) | null;
|
|
21
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Testimonial } from '../content';
|
|
2
|
+
export interface BlockTestimonial {
|
|
3
|
+
headline?: string | null;
|
|
4
|
+
id?: string;
|
|
5
|
+
title?: string | null;
|
|
6
|
+
testimonials?: (string | BlockTestimonialItem)[];
|
|
7
|
+
}
|
|
8
|
+
export interface BlockTestimonialItem {
|
|
9
|
+
block_testimonials_slider_id?: (string | BlockTestimonial) | null;
|
|
10
|
+
id?: string;
|
|
11
|
+
sort?: number | null;
|
|
12
|
+
testimonials_id?: (string | Testimonial) | null;
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { BlockColumn } from './block-column';
|
|
2
|
+
import type { BlockCta } from './block-cta';
|
|
3
|
+
import type { BlockFaq } from './block-faq';
|
|
4
|
+
import type { BlockForm } from './block-form';
|
|
5
|
+
import type { BlockGallery } from './block-gallery';
|
|
6
|
+
import type { BlockHero } from './block-hero';
|
|
7
|
+
import type { BlockHtml } from './block-html';
|
|
8
|
+
import type { BlockLogocloud } from './block-logocloud';
|
|
9
|
+
import type { BlockQuote } from './block-quote';
|
|
10
|
+
import type { BlockRichtext } from './block-richtext';
|
|
11
|
+
import type { BlockStep } from './block-steps';
|
|
12
|
+
import type { BlockTeam } from './block-team';
|
|
13
|
+
import type { BlockTestimonial } from './block-testimonial';
|
|
14
|
+
import type { BlockVideo } from './block-video';
|
|
15
|
+
import type { BlockDivider } from './block-divider';
|
|
16
|
+
export type BlockType = 'block_columns' | 'block_cta' | 'block_faqs' | 'block_form' | 'block_gallery' | 'block_hero' | 'block_html' | 'block_logocloud' | 'block_quote' | 'block_richtext' | 'block_steps' | 'block_team' | 'block_testimonials' | 'block_video' | 'block_divider';
|
|
17
|
+
export type Block = BlockColumn | BlockCta | BlockFaq | BlockForm | BlockGallery | BlockHero | BlockHtml | BlockLogocloud | BlockQuote | BlockRichtext | BlockStep | BlockTeam | BlockTestimonial | BlockVideo | BlockDivider;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { User } from '../system';
|
|
2
|
+
export interface Form {
|
|
3
|
+
date_created?: string | null;
|
|
4
|
+
date_updated?: string | null;
|
|
5
|
+
id?: string;
|
|
6
|
+
key?: string | null;
|
|
7
|
+
on_success?: string | null;
|
|
8
|
+
redirect_url?: string | null;
|
|
9
|
+
/** The fields for the form. */
|
|
10
|
+
schema?: {
|
|
11
|
+
[key: string]: any;
|
|
12
|
+
}[] | null;
|
|
13
|
+
sort?: number | null;
|
|
14
|
+
status?: string;
|
|
15
|
+
/** The text for the submit button label. */
|
|
16
|
+
submit_label?: string | null;
|
|
17
|
+
success_message?: string | null;
|
|
18
|
+
title?: string | null;
|
|
19
|
+
user_created?: string | User | null;
|
|
20
|
+
user_updated?: string | User | null;
|
|
21
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { SEO } from '../meta';
|
|
2
|
+
import type { User } from '../system';
|
|
3
|
+
import type { Post } from '.';
|
|
4
|
+
import type { BlockColumn, BlockCta, BlockFaq, BlockForm, BlockGallery, BlockHero, BlockHtml, BlockLogocloud, BlockQuote, BlockRichtext, BlockStep, BlockTeam, BlockTestimonial, BlockVideo, BlockType } from '../blocks';
|
|
5
|
+
export interface Page {
|
|
6
|
+
id?: string;
|
|
7
|
+
permalink: string;
|
|
8
|
+
date_created?: string | null;
|
|
9
|
+
date_updated?: string | null;
|
|
10
|
+
seo?: (string | SEO) | null;
|
|
11
|
+
sort?: number | null;
|
|
12
|
+
status?: string;
|
|
13
|
+
title?: string | null;
|
|
14
|
+
user_created?: (string | User) | null;
|
|
15
|
+
user_updated?: (string | User) | null;
|
|
16
|
+
blocks?: (string | PageBlock)[];
|
|
17
|
+
}
|
|
18
|
+
export interface PageBlock {
|
|
19
|
+
collection?: BlockType | null;
|
|
20
|
+
id?: string;
|
|
21
|
+
item?: (string | BlockColumn | BlockCta | BlockFaq | BlockForm | BlockGallery | BlockHero | BlockHtml | BlockLogocloud | BlockQuote | BlockRichtext | BlockStep | BlockTeam | BlockTestimonial | BlockVideo)[] | null;
|
|
22
|
+
pages_id?: (string | Page) | null;
|
|
23
|
+
sort?: number | null;
|
|
24
|
+
hide_block?: boolean | null;
|
|
25
|
+
}
|
|
26
|
+
export interface PagesProjects {
|
|
27
|
+
id?: string;
|
|
28
|
+
title?: string | null;
|
|
29
|
+
headline?: string | null | undefined;
|
|
30
|
+
seo: (string | SEO) | null;
|
|
31
|
+
}
|
|
32
|
+
export interface PagesBlog {
|
|
33
|
+
id?: string;
|
|
34
|
+
title?: string | null;
|
|
35
|
+
headline?: string | null;
|
|
36
|
+
featured_post?: (string | Post) | null;
|
|
37
|
+
seo: (string | SEO) | null;
|
|
38
|
+
}
|