routie dev init since i didn't adhere to any proper guidance up until now
This commit is contained in:
+17
@@ -0,0 +1,17 @@
|
||||
@layer vuetify-components {
|
||||
.v-application {
|
||||
display: flex;
|
||||
background: rgb(var(--v-theme-background));
|
||||
color: color-mix(in srgb, rgb(var(--v-theme-on-background)) calc(var(--v-high-emphasis-opacity) * 100%), transparent);
|
||||
}
|
||||
.v-application__wrap {
|
||||
backface-visibility: hidden;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1 1 auto;
|
||||
max-width: 100%;
|
||||
min-height: 100vh;
|
||||
min-height: 100dvh;
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
+185
@@ -0,0 +1,185 @@
|
||||
|
||||
export declare const makeVAppProps: <Defaults extends {
|
||||
theme?: unknown;
|
||||
class?: unknown;
|
||||
style?: unknown;
|
||||
overlaps?: unknown;
|
||||
} = {}>(defaults?: Defaults | undefined) => {
|
||||
theme: unknown extends Defaults["theme"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["theme"] ? string : string | Defaults["theme"]>;
|
||||
default: unknown extends Defaults["theme"] ? string : string | Defaults["theme"];
|
||||
};
|
||||
class: unknown extends Defaults["class"] ? import("vue").PropType<any> : {
|
||||
type: import("vue").PropType<unknown extends Defaults["class"] ? any : any>;
|
||||
default: unknown extends Defaults["class"] ? any : any;
|
||||
};
|
||||
style: unknown extends Defaults["style"] ? {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
} : Omit<{
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
}, "default" | "type"> & {
|
||||
type: import("vue").PropType<unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | import("vue").StyleValue>;
|
||||
default: unknown extends Defaults["style"] ? import("vue").StyleValue : Defaults["style"] | NonNullable<import("vue").StyleValue>;
|
||||
};
|
||||
overlaps: unknown extends Defaults["overlaps"] ? import("vue").Prop<string[]> : {
|
||||
type: import("vue").PropType<unknown extends Defaults["overlaps"] ? string[] : string[] | Defaults["overlaps"]>;
|
||||
default: unknown extends Defaults["overlaps"] ? string[] : string[] | Defaults["overlaps"];
|
||||
};
|
||||
};
|
||||
export declare const VApp: {
|
||||
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
overlaps?: string[] | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {
|
||||
getLayoutItem: (id: string) => {
|
||||
top: number;
|
||||
bottom: number;
|
||||
left: number;
|
||||
right: number;
|
||||
id: string;
|
||||
size: number;
|
||||
position: import("../../composables/layout.js").Position;
|
||||
} | undefined;
|
||||
items: import("vue").ComputedRef<{
|
||||
top: number;
|
||||
bottom: number;
|
||||
left: number;
|
||||
right: number;
|
||||
id: string;
|
||||
size: number;
|
||||
position: import("../../composables/layout.js").Position;
|
||||
}[]>;
|
||||
theme: import("../../types.js").ThemeInstance;
|
||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
||||
style: import("vue").StyleValue;
|
||||
}, true, {}, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
||||
P: {};
|
||||
B: {};
|
||||
D: {};
|
||||
C: {};
|
||||
M: {};
|
||||
Defaults: {};
|
||||
}, {
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
overlaps?: string[] | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {
|
||||
getLayoutItem: (id: string) => {
|
||||
top: number;
|
||||
bottom: number;
|
||||
left: number;
|
||||
right: number;
|
||||
id: string;
|
||||
size: number;
|
||||
position: import("../../composables/layout.js").Position;
|
||||
} | undefined;
|
||||
items: import("vue").ComputedRef<{
|
||||
top: number;
|
||||
bottom: number;
|
||||
left: number;
|
||||
right: number;
|
||||
id: string;
|
||||
size: number;
|
||||
position: import("../../composables/layout.js").Position;
|
||||
}[]>;
|
||||
theme: import("../../types.js").ThemeInstance;
|
||||
}, {}, {}, {}, {
|
||||
style: import("vue").StyleValue;
|
||||
}>;
|
||||
__isFragment?: never;
|
||||
__isTeleport?: never;
|
||||
__isSuspense?: never;
|
||||
} & import("vue").ComponentOptionsBase<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
overlaps?: string[] | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {
|
||||
getLayoutItem: (id: string) => {
|
||||
top: number;
|
||||
bottom: number;
|
||||
left: number;
|
||||
right: number;
|
||||
id: string;
|
||||
size: number;
|
||||
position: import("../../composables/layout.js").Position;
|
||||
} | undefined;
|
||||
items: import("vue").ComputedRef<{
|
||||
top: number;
|
||||
bottom: number;
|
||||
left: number;
|
||||
right: number;
|
||||
id: string;
|
||||
size: number;
|
||||
position: import("../../composables/layout.js").Position;
|
||||
}[]>;
|
||||
theme: import("../../types.js").ThemeInstance;
|
||||
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
|
||||
style: import("vue").StyleValue;
|
||||
}, {}, string, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
}>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
|
||||
theme: StringConstructor;
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
overlaps: import("vue").Prop<string[]>;
|
||||
}, import("vue").ExtractPropTypes<{
|
||||
theme: StringConstructor;
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
overlaps: import("vue").Prop<string[]>;
|
||||
}>>;
|
||||
export type VApp = InstanceType<typeof VApp>;
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
import { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from "vue";
|
||||
// Styles
|
||||
import "./VApp.css";
|
||||
|
||||
// Composables
|
||||
import { makeComponentProps } from "../../composables/component.js";
|
||||
import { createLayout, makeLayoutProps } from "../../composables/layout.js";
|
||||
import { useRtl } from "../../composables/locale.js";
|
||||
import { makeThemeProps, provideTheme } from "../../composables/theme.js"; // Utilities
|
||||
import { genericComponent, omit, propsFactory, useRender } from "../../util/index.js";
|
||||
export const makeVAppProps = propsFactory({
|
||||
...makeComponentProps(),
|
||||
...omit(makeLayoutProps(), ['fullHeight']),
|
||||
...makeThemeProps()
|
||||
}, 'VApp');
|
||||
export const VApp = genericComponent()({
|
||||
name: 'VApp',
|
||||
props: makeVAppProps(),
|
||||
setup(props, {
|
||||
slots
|
||||
}) {
|
||||
const theme = provideTheme(props);
|
||||
const {
|
||||
layoutClasses,
|
||||
getLayoutItem,
|
||||
items,
|
||||
layoutRef
|
||||
} = createLayout({
|
||||
...props,
|
||||
fullHeight: true
|
||||
});
|
||||
const {
|
||||
rtlClasses
|
||||
} = useRtl();
|
||||
useRender(() => _createElementVNode("div", {
|
||||
"ref": layoutRef,
|
||||
"class": _normalizeClass(['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class]),
|
||||
"style": _normalizeStyle([props.style])
|
||||
}, [_createElementVNode("div", {
|
||||
"class": "v-application__wrap"
|
||||
}, [slots.default?.()])]));
|
||||
return {
|
||||
getLayoutItem,
|
||||
items,
|
||||
theme
|
||||
};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VApp.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"VApp.js","names":["makeComponentProps","createLayout","makeLayoutProps","useRtl","makeThemeProps","provideTheme","genericComponent","omit","propsFactory","useRender","makeVAppProps","VApp","name","props","setup","slots","theme","layoutClasses","getLayoutItem","items","layoutRef","fullHeight","rtlClasses","_createElementVNode","_normalizeClass","themeClasses","value","class","_normalizeStyle","style","default"],"sources":["../../../src/components/VApp/VApp.tsx"],"sourcesContent":["// Styles\nimport './VApp.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { createLayout, makeLayoutProps } from '@/composables/layout'\nimport { useRtl } from '@/composables/locale'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\nexport const makeVAppProps = propsFactory({\n ...makeComponentProps(),\n ...omit(makeLayoutProps(), ['fullHeight']),\n ...makeThemeProps(),\n}, 'VApp')\n\nexport const VApp = genericComponent()({\n name: 'VApp',\n\n props: makeVAppProps(),\n\n setup (props, { slots }) {\n const theme = provideTheme(props)\n const { layoutClasses, getLayoutItem, items, layoutRef } = createLayout({ ...props, fullHeight: true })\n const { rtlClasses } = useRtl()\n\n useRender(() => (\n <div\n ref={ layoutRef }\n class={[\n 'v-application',\n theme.themeClasses.value,\n layoutClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n props.style,\n ]}\n >\n <div class=\"v-application__wrap\">\n { slots.default?.() }\n </div>\n </div>\n ))\n\n return {\n getLayoutItem,\n items,\n theme,\n }\n },\n})\n\nexport type VApp = InstanceType<typeof VApp>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,YAAY,EAAEC,eAAe;AAAA,SAC7BC,MAAM;AAAA,SACNC,cAAc,EAAEC,YAAY,sCAErC;AAAA,SACSC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS;AAExD,OAAO,MAAMC,aAAa,GAAGF,YAAY,CAAC;EACxC,GAAGR,kBAAkB,CAAC,CAAC;EACvB,GAAGO,IAAI,CAACL,eAAe,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;EAC1C,GAAGE,cAAc,CAAC;AACpB,CAAC,EAAE,MAAM,CAAC;AAEV,OAAO,MAAMO,IAAI,GAAGL,gBAAgB,CAAC,CAAC,CAAC;EACrCM,IAAI,EAAE,MAAM;EAEZC,KAAK,EAAEH,aAAa,CAAC,CAAC;EAEtBI,KAAKA,CAAED,KAAK,EAAE;IAAEE;EAAM,CAAC,EAAE;IACvB,MAAMC,KAAK,GAAGX,YAAY,CAACQ,KAAK,CAAC;IACjC,MAAM;MAAEI,aAAa;MAAEC,aAAa;MAAEC,KAAK;MAAEC;IAAU,CAAC,GAAGnB,YAAY,CAAC;MAAE,GAAGY,KAAK;MAAEQ,UAAU,EAAE;IAAK,CAAC,CAAC;IACvG,MAAM;MAAEC;IAAW,CAAC,GAAGnB,MAAM,CAAC,CAAC;IAE/BM,SAAS,CAAC,MAAAc,mBAAA;MAAA,OAEAH,SAAS;MAAA,SAAAI,eAAA,CACR,CACL,eAAe,EACfR,KAAK,CAACS,YAAY,CAACC,KAAK,EACxBT,aAAa,CAACS,KAAK,EACnBJ,UAAU,CAACI,KAAK,EAChBb,KAAK,CAACc,KAAK,CACZ;MAAA,SAAAC,eAAA,CACM,CACLf,KAAK,CAACgB,KAAK,CACZ;IAAA,IAAAN,mBAAA;MAAA;IAAA,IAGGR,KAAK,CAACe,OAAO,GAAG,CAAC,IAGxB,CAAC;IAEF,OAAO;MACLZ,aAAa;MACbC,KAAK;MACLH;IACF,CAAC;EACH;AACF,CAAC,CAAC","ignoreList":[]}
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
@use '../../styles/tools'
|
||||
@use './variables' as *
|
||||
|
||||
@include tools.layer('components')
|
||||
.v-application
|
||||
display: flex
|
||||
background: $application-background
|
||||
color: $application-color
|
||||
|
||||
.v-application__wrap
|
||||
backface-visibility: hidden
|
||||
display: flex
|
||||
flex-direction: column
|
||||
flex: 1 1 auto
|
||||
max-width: 100%
|
||||
min-height: 100vh
|
||||
min-height: 100dvh
|
||||
position: relative
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
@use '../../styles/settings';
|
||||
@use '../../styles/tools';
|
||||
|
||||
// VApp
|
||||
$application-background: rgb(var(--v-theme-background)) !default;
|
||||
$application-color: tools.theme-color('on-background', var(--v-high-emphasis-opacity)) !default;
|
||||
+1
@@ -0,0 +1 @@
|
||||
export { VApp } from './VApp.js';
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
export { VApp } from "./VApp.js";
|
||||
//# sourceMappingURL=index.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","names":["VApp"],"sources":["../../../src/components/VApp/index.ts"],"sourcesContent":["export { VApp } from './VApp'\n"],"mappings":"SAASA,IAAI","ignoreList":[]}
|
||||
Reference in New Issue
Block a user