routie dev init since i didn't adhere to any proper guidance up until now
This commit is contained in:
+163
@@ -0,0 +1,163 @@
|
||||
@layer vuetify-components {
|
||||
.v-banner {
|
||||
display: grid;
|
||||
flex: 1 1;
|
||||
font-size: 0.875rem;
|
||||
grid-template-areas: "prepend content actions";
|
||||
grid-template-columns: max-content auto max-content;
|
||||
grid-template-rows: max-content max-content;
|
||||
line-height: 1.4285714286;
|
||||
overflow: hidden;
|
||||
padding-inline: 16px 8px;
|
||||
padding-top: 16px;
|
||||
padding-bottom: 16px;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
.v-banner {
|
||||
border-color: rgba(var(--v-border-color), var(--v-border-opacity));
|
||||
border-style: solid;
|
||||
border-width: 0 0 thin 0;
|
||||
}
|
||||
.v-banner--border {
|
||||
border-width: thin;
|
||||
box-shadow: none;
|
||||
}
|
||||
.v-banner {
|
||||
box-shadow: 0px 0px 0px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity, 0.3)), 0px 0px 0px 0px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity, 0.15));
|
||||
--v-elevation-overlay: color-mix(in srgb, var(--v-elevation-overlay-color) 0%, transparent);
|
||||
}
|
||||
.v-banner--absolute {
|
||||
position: absolute;
|
||||
}
|
||||
.v-banner--fixed {
|
||||
position: fixed;
|
||||
}
|
||||
.v-banner--sticky {
|
||||
position: sticky;
|
||||
}
|
||||
.v-banner {
|
||||
border-radius: 0;
|
||||
}
|
||||
.v-banner {
|
||||
background: rgb(var(--v-theme-surface));
|
||||
color: color-mix(in srgb, rgb(var(--v-theme-on-surface)) calc(var(--v-high-emphasis-opacity) * 100%), transparent);
|
||||
}
|
||||
.v-banner--rounded {
|
||||
border-radius: 4px;
|
||||
}
|
||||
.v-banner--stacked:not(.v-banner--one-line) {
|
||||
grid-template-areas: "prepend content" ". actions";
|
||||
}
|
||||
.v-banner--stacked .v-banner-text {
|
||||
padding-inline-end: 36px;
|
||||
}
|
||||
.v-banner--density-default .v-banner-actions {
|
||||
margin-bottom: -8px;
|
||||
}
|
||||
.v-banner--density-default.v-banner--one-line {
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
.v-banner--density-default.v-banner--one-line .v-banner-actions {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.v-banner--density-default.v-banner--one-line {
|
||||
padding-top: 10px;
|
||||
}
|
||||
.v-banner--density-default.v-banner--two-line {
|
||||
padding-top: 16px;
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
.v-banner--density-default.v-banner--three-line {
|
||||
padding-top: 24px;
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
.v-banner--density-default:not(.v-banner--one-line) .v-banner-actions, .v-banner--density-default.v-banner--two-line .v-banner-actions, .v-banner--density-default.v-banner--three-line .v-banner-actions {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.v-banner--density-comfortable .v-banner-actions {
|
||||
margin-bottom: -4px;
|
||||
}
|
||||
.v-banner--density-comfortable.v-banner--one-line {
|
||||
padding-top: 4px;
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
.v-banner--density-comfortable.v-banner--one-line .v-banner-actions {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.v-banner--density-comfortable.v-banner--two-line {
|
||||
padding-top: 12px;
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
.v-banner--density-comfortable.v-banner--three-line {
|
||||
padding-top: 20px;
|
||||
padding-bottom: 12px;
|
||||
}
|
||||
.v-banner--density-comfortable:not(.v-banner--one-line) .v-banner-actions, .v-banner--density-comfortable.v-banner--two-line .v-banner-actions, .v-banner--density-comfortable.v-banner--three-line .v-banner-actions {
|
||||
margin-top: 16px;
|
||||
}
|
||||
.v-banner--density-compact .v-banner-actions {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
.v-banner--density-compact.v-banner--one-line {
|
||||
padding-top: 0px;
|
||||
padding-bottom: 0px;
|
||||
}
|
||||
.v-banner--density-compact.v-banner--one-line .v-banner-actions {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.v-banner--density-compact.v-banner--two-line {
|
||||
padding-top: 8px;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
.v-banner--density-compact.v-banner--three-line {
|
||||
padding-top: 16px;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
.v-banner--density-compact:not(.v-banner--one-line) .v-banner-actions, .v-banner--density-compact.v-banner--two-line .v-banner-actions, .v-banner--density-compact.v-banner--three-line .v-banner-actions {
|
||||
margin-top: 12px;
|
||||
}
|
||||
.v-banner--sticky {
|
||||
top: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
.v-banner__content {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
grid-area: content;
|
||||
}
|
||||
.v-banner__prepend {
|
||||
align-self: flex-start;
|
||||
grid-area: prepend;
|
||||
margin-inline-end: 24px;
|
||||
}
|
||||
.v-banner-actions {
|
||||
align-self: flex-end;
|
||||
display: flex;
|
||||
flex: 0 1;
|
||||
grid-area: actions;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.v-banner--two-line .v-banner-actions, .v-banner--three-line .v-banner-actions {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.v-banner-text {
|
||||
-webkit-box-orient: vertical;
|
||||
display: -webkit-box;
|
||||
padding-inline-end: 90px;
|
||||
overflow: hidden;
|
||||
}
|
||||
.v-banner--one-line .v-banner-text {
|
||||
-webkit-line-clamp: 1;
|
||||
}
|
||||
.v-banner--two-line .v-banner-text {
|
||||
-webkit-line-clamp: 2;
|
||||
}
|
||||
.v-banner--three-line .v-banner-text {
|
||||
-webkit-line-clamp: 3;
|
||||
}
|
||||
.v-banner--two-line .v-banner-text, .v-banner--three-line .v-banner-text {
|
||||
align-self: flex-start;
|
||||
}
|
||||
}
|
||||
+517
@@ -0,0 +1,517 @@
|
||||
|
||||
import { IconValue } from '../../composables/icons.js';
|
||||
import type { PropType } from 'vue';
|
||||
export type VBannerSlots = {
|
||||
default: never;
|
||||
prepend: never;
|
||||
text: never;
|
||||
actions: never;
|
||||
};
|
||||
export declare const makeVBannerProps: <Defaults extends {
|
||||
theme?: unknown;
|
||||
class?: unknown;
|
||||
style?: unknown;
|
||||
mobile?: unknown;
|
||||
mobileBreakpoint?: unknown;
|
||||
border?: unknown;
|
||||
density?: unknown;
|
||||
elevation?: unknown;
|
||||
rounded?: unknown;
|
||||
tile?: unknown;
|
||||
tag?: unknown;
|
||||
height?: unknown;
|
||||
maxHeight?: unknown;
|
||||
maxWidth?: unknown;
|
||||
minHeight?: unknown;
|
||||
minWidth?: unknown;
|
||||
width?: unknown;
|
||||
location?: unknown;
|
||||
position?: unknown;
|
||||
avatar?: unknown;
|
||||
bgColor?: unknown;
|
||||
color?: unknown;
|
||||
icon?: unknown;
|
||||
lines?: unknown;
|
||||
stacked?: unknown;
|
||||
sticky?: unknown;
|
||||
text?: unknown;
|
||||
} = {}>(defaults?: Defaults | undefined) => {
|
||||
theme: unknown extends Defaults["theme"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["theme"] ? string : string | Defaults["theme"]>;
|
||||
default: unknown extends Defaults["theme"] ? string : string | Defaults["theme"];
|
||||
};
|
||||
class: unknown extends Defaults["class"] ? PropType<any> : {
|
||||
type: PropType<unknown extends Defaults["class"] ? any : any>;
|
||||
default: unknown extends Defaults["class"] ? any : any;
|
||||
};
|
||||
style: unknown extends Defaults["style"] ? {
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
} : Omit<{
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
}, "default" | "type"> & {
|
||||
type: 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>;
|
||||
};
|
||||
mobile: unknown extends Defaults["mobile"] ? Omit<{
|
||||
type: PropType<boolean | null>;
|
||||
default: boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<boolean | null>;
|
||||
default: NonNullable<boolean | null> | null;
|
||||
} : Omit<Omit<{
|
||||
type: PropType<boolean | null>;
|
||||
default: boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<boolean | null>;
|
||||
default: NonNullable<boolean | null> | null;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["mobile"] ? boolean | null : boolean | Defaults["mobile"] | null>;
|
||||
default: unknown extends Defaults["mobile"] ? boolean | null : Defaults["mobile"] | NonNullable<boolean | null>;
|
||||
};
|
||||
mobileBreakpoint: unknown extends Defaults["mobileBreakpoint"] ? PropType<number | import("../../types.js").DisplayBreakpoint> : {
|
||||
type: PropType<unknown extends Defaults["mobileBreakpoint"] ? number | import("../../types.js").DisplayBreakpoint : number | Defaults["mobileBreakpoint"] | import("../../types.js").DisplayBreakpoint>;
|
||||
default: unknown extends Defaults["mobileBreakpoint"] ? number | import("../../types.js").DisplayBreakpoint : Defaults["mobileBreakpoint"] | NonNullable<number | import("../../types.js").DisplayBreakpoint>;
|
||||
};
|
||||
border: unknown extends Defaults["border"] ? (BooleanConstructor | NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["border"] ? string | number | boolean : string | number | boolean | Defaults["border"]>;
|
||||
default: unknown extends Defaults["border"] ? string | number | boolean : Defaults["border"] | NonNullable<string | number | boolean>;
|
||||
};
|
||||
density: unknown extends Defaults["density"] ? {
|
||||
type: PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
} : Omit<{
|
||||
type: PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | import("../../composables/density.js").Density>;
|
||||
default: unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | NonNullable<import("../../composables/density.js").Density>;
|
||||
};
|
||||
elevation: unknown extends Defaults["elevation"] ? {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
} : Omit<{
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["elevation"] ? string | number : string | number | Defaults["elevation"]>;
|
||||
default: unknown extends Defaults["elevation"] ? string | number : Defaults["elevation"] | NonNullable<string | number>;
|
||||
};
|
||||
rounded: unknown extends Defaults["rounded"] ? {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
} : Omit<{
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["rounded"] ? string | number | boolean : string | number | boolean | Defaults["rounded"]>;
|
||||
default: unknown extends Defaults["rounded"] ? string | number | boolean : Defaults["rounded"] | NonNullable<string | number | boolean>;
|
||||
};
|
||||
tile: unknown extends Defaults["tile"] ? BooleanConstructor : {
|
||||
type: PropType<unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"]>;
|
||||
default: unknown extends Defaults["tile"] ? boolean : boolean | Defaults["tile"];
|
||||
};
|
||||
tag: unknown extends Defaults["tag"] ? {
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
} : Omit<{
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : string | Defaults["tag"] | import("../../util/index.js").JSXComponent>;
|
||||
default: unknown extends Defaults["tag"] ? string | import("../../util/index.js").JSXComponent : Defaults["tag"] | NonNullable<string | import("../../util/index.js").JSXComponent>;
|
||||
};
|
||||
height: unknown extends Defaults["height"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["height"] ? string | number : string | number | Defaults["height"]>;
|
||||
default: unknown extends Defaults["height"] ? string | number : Defaults["height"] | NonNullable<string | number>;
|
||||
};
|
||||
maxHeight: unknown extends Defaults["maxHeight"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["maxHeight"] ? string | number : string | number | Defaults["maxHeight"]>;
|
||||
default: unknown extends Defaults["maxHeight"] ? string | number : Defaults["maxHeight"] | NonNullable<string | number>;
|
||||
};
|
||||
maxWidth: unknown extends Defaults["maxWidth"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["maxWidth"] ? string | number : string | number | Defaults["maxWidth"]>;
|
||||
default: unknown extends Defaults["maxWidth"] ? string | number : Defaults["maxWidth"] | NonNullable<string | number>;
|
||||
};
|
||||
minHeight: unknown extends Defaults["minHeight"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["minHeight"] ? string | number : string | number | Defaults["minHeight"]>;
|
||||
default: unknown extends Defaults["minHeight"] ? string | number : Defaults["minHeight"] | NonNullable<string | number>;
|
||||
};
|
||||
minWidth: unknown extends Defaults["minWidth"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["minWidth"] ? string | number : string | number | Defaults["minWidth"]>;
|
||||
default: unknown extends Defaults["minWidth"] ? string | number : Defaults["minWidth"] | NonNullable<string | number>;
|
||||
};
|
||||
width: unknown extends Defaults["width"] ? (NumberConstructor | StringConstructor)[] : {
|
||||
type: PropType<unknown extends Defaults["width"] ? string | number : string | number | Defaults["width"]>;
|
||||
default: unknown extends Defaults["width"] ? string | number : Defaults["width"] | NonNullable<string | number>;
|
||||
};
|
||||
location: unknown extends Defaults["location"] ? PropType<import("../../util/index.js").Anchor | null> : {
|
||||
type: PropType<unknown extends Defaults["location"] ? import("../../util/index.js").Anchor | null : Defaults["location"] | import("../../util/index.js").Anchor | null>;
|
||||
default: unknown extends Defaults["location"] ? import("../../util/index.js").Anchor | null : Defaults["location"] | NonNullable<import("../../util/index.js").Anchor | null>;
|
||||
};
|
||||
position: unknown extends Defaults["position"] ? {
|
||||
type: PropType<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
validator: (v: any) => boolean;
|
||||
} : Omit<{
|
||||
type: PropType<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
validator: (v: any) => boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<unknown extends Defaults["position"] ? "absolute" | "fixed" | "relative" | "static" | "sticky" : "absolute" | "fixed" | "relative" | "static" | "sticky" | Defaults["position"]>;
|
||||
default: unknown extends Defaults["position"] ? "absolute" | "fixed" | "relative" | "static" | "sticky" : Defaults["position"] | NonNullable<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
};
|
||||
avatar: unknown extends Defaults["avatar"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["avatar"] ? string : string | Defaults["avatar"]>;
|
||||
default: unknown extends Defaults["avatar"] ? string : string | Defaults["avatar"];
|
||||
};
|
||||
bgColor: unknown extends Defaults["bgColor"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["bgColor"] ? string : string | Defaults["bgColor"]>;
|
||||
default: unknown extends Defaults["bgColor"] ? string : string | Defaults["bgColor"];
|
||||
};
|
||||
color: unknown extends Defaults["color"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
|
||||
default: unknown extends Defaults["color"] ? string : string | Defaults["color"];
|
||||
};
|
||||
icon: unknown extends Defaults["icon"] ? PropType<IconValue> : {
|
||||
type: PropType<unknown extends Defaults["icon"] ? IconValue : Defaults["icon"] | IconValue>;
|
||||
default: unknown extends Defaults["icon"] ? IconValue : Defaults["icon"] | NonNullable<IconValue>;
|
||||
};
|
||||
lines: unknown extends Defaults["lines"] ? PropType<"one" | "three" | "two"> : {
|
||||
type: PropType<unknown extends Defaults["lines"] ? "one" | "three" | "two" : "one" | "three" | "two" | Defaults["lines"]>;
|
||||
default: unknown extends Defaults["lines"] ? "one" | "three" | "two" : Defaults["lines"] | NonNullable<"one" | "three" | "two">;
|
||||
};
|
||||
stacked: unknown extends Defaults["stacked"] ? BooleanConstructor : {
|
||||
type: PropType<unknown extends Defaults["stacked"] ? boolean : boolean | Defaults["stacked"]>;
|
||||
default: unknown extends Defaults["stacked"] ? boolean : boolean | Defaults["stacked"];
|
||||
};
|
||||
sticky: unknown extends Defaults["sticky"] ? BooleanConstructor : {
|
||||
type: PropType<unknown extends Defaults["sticky"] ? boolean : boolean | Defaults["sticky"]>;
|
||||
default: unknown extends Defaults["sticky"] ? boolean : boolean | Defaults["sticky"];
|
||||
};
|
||||
text: unknown extends Defaults["text"] ? StringConstructor : {
|
||||
type: PropType<unknown extends Defaults["text"] ? string : string | Defaults["text"]>;
|
||||
default: unknown extends Defaults["text"] ? string : string | Defaults["text"];
|
||||
};
|
||||
};
|
||||
export declare const VBanner: {
|
||||
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
mobile: boolean | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
stacked: boolean;
|
||||
sticky: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined;
|
||||
border?: string | number | boolean | undefined;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location?: import("../../util/index.js").Anchor | null | undefined;
|
||||
position?: "absolute" | "fixed" | "relative" | "static" | "sticky" | undefined;
|
||||
avatar?: string | undefined;
|
||||
bgColor?: string | undefined;
|
||||
color?: string | undefined;
|
||||
icon?: IconValue | undefined;
|
||||
lines?: "one" | "three" | "two" | undefined;
|
||||
text?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: (() => import("vue").VNodeChild) | undefined;
|
||||
text?: (() => import("vue").VNodeChild) | undefined;
|
||||
actions?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
text?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
actions?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:actions"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:prepend"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:text"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, void, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
||||
style: import("vue").StyleValue;
|
||||
mobile: boolean | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
stacked: boolean;
|
||||
sticky: boolean;
|
||||
}, true, {}, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
prepend: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
text: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
actions: () => 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;
|
||||
mobile: boolean | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
stacked: boolean;
|
||||
sticky: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined;
|
||||
border?: string | number | boolean | undefined;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location?: import("../../util/index.js").Anchor | null | undefined;
|
||||
position?: "absolute" | "fixed" | "relative" | "static" | "sticky" | undefined;
|
||||
avatar?: string | undefined;
|
||||
bgColor?: string | undefined;
|
||||
color?: string | undefined;
|
||||
icon?: IconValue | undefined;
|
||||
lines?: "one" | "three" | "two" | undefined;
|
||||
text?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: (() => import("vue").VNodeChild) | undefined;
|
||||
text?: (() => import("vue").VNodeChild) | undefined;
|
||||
actions?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
text?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
actions?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:actions"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:prepend"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:text"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, {}, {}, {}, {}, {
|
||||
style: import("vue").StyleValue;
|
||||
mobile: boolean | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
stacked: boolean;
|
||||
sticky: boolean;
|
||||
}>;
|
||||
__isFragment?: never;
|
||||
__isTeleport?: never;
|
||||
__isSuspense?: never;
|
||||
} & import("vue").ComponentOptionsBase<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
mobile: boolean | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
stacked: boolean;
|
||||
sticky: boolean;
|
||||
} & {
|
||||
theme?: string | undefined;
|
||||
class?: any;
|
||||
mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined;
|
||||
border?: string | number | boolean | undefined;
|
||||
elevation?: string | number | undefined;
|
||||
rounded?: string | number | boolean | undefined;
|
||||
height?: string | number | undefined;
|
||||
maxHeight?: string | number | undefined;
|
||||
maxWidth?: string | number | undefined;
|
||||
minHeight?: string | number | undefined;
|
||||
minWidth?: string | number | undefined;
|
||||
width?: string | number | undefined;
|
||||
location?: import("../../util/index.js").Anchor | null | undefined;
|
||||
position?: "absolute" | "fixed" | "relative" | "static" | "sticky" | undefined;
|
||||
avatar?: string | undefined;
|
||||
bgColor?: string | undefined;
|
||||
color?: string | undefined;
|
||||
icon?: IconValue | undefined;
|
||||
lines?: "one" | "three" | "two" | undefined;
|
||||
text?: string | undefined;
|
||||
} & {
|
||||
$children?: {
|
||||
default?: (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: (() => import("vue").VNodeChild) | undefined;
|
||||
text?: (() => import("vue").VNodeChild) | undefined;
|
||||
actions?: (() => import("vue").VNodeChild) | undefined;
|
||||
} | {
|
||||
$stable?: boolean;
|
||||
} | (() => import("vue").VNodeChild) | import("vue").VNodeChild;
|
||||
'v-slots'?: {
|
||||
default?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
prepend?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
text?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
actions?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
} | undefined;
|
||||
} & {
|
||||
"v-slot:actions"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:default"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:prepend"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
"v-slot:text"?: false | (() => import("vue").VNodeChild) | undefined;
|
||||
}, void, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
|
||||
style: import("vue").StyleValue;
|
||||
mobile: boolean | null;
|
||||
density: import("../../composables/density.js").Density;
|
||||
rounded: string | number | boolean;
|
||||
tile: boolean;
|
||||
tag: string | import("../../util/index.js").JSXComponent;
|
||||
stacked: boolean;
|
||||
sticky: boolean;
|
||||
}, {}, string, import("vue").SlotsType<Partial<{
|
||||
default: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
prepend: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
text: () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>[];
|
||||
actions: () => 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: PropType<import("../../composables/component.js").ClassValue>;
|
||||
style: {
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
mobile: Omit<{
|
||||
type: PropType<boolean | null>;
|
||||
default: boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<boolean | null>;
|
||||
default: NonNullable<boolean | null> | null;
|
||||
};
|
||||
mobileBreakpoint: PropType<number | import("../../types.js").DisplayBreakpoint>;
|
||||
border: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
density: {
|
||||
type: PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
elevation: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
};
|
||||
rounded: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
tile: BooleanConstructor;
|
||||
tag: {
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
};
|
||||
height: (NumberConstructor | StringConstructor)[];
|
||||
maxHeight: (NumberConstructor | StringConstructor)[];
|
||||
maxWidth: (NumberConstructor | StringConstructor)[];
|
||||
minHeight: (NumberConstructor | StringConstructor)[];
|
||||
minWidth: (NumberConstructor | StringConstructor)[];
|
||||
width: (NumberConstructor | StringConstructor)[];
|
||||
location: PropType<import("../../util/index.js").Anchor | null>;
|
||||
position: {
|
||||
type: PropType<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
avatar: StringConstructor;
|
||||
bgColor: StringConstructor;
|
||||
color: StringConstructor;
|
||||
icon: PropType<IconValue>;
|
||||
lines: PropType<'one' | 'two' | 'three'>;
|
||||
stacked: BooleanConstructor;
|
||||
sticky: BooleanConstructor;
|
||||
text: StringConstructor;
|
||||
}, import("vue").ExtractPropTypes<{
|
||||
theme: StringConstructor;
|
||||
class: PropType<import("../../composables/component.js").ClassValue>;
|
||||
style: {
|
||||
type: PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
mobile: Omit<{
|
||||
type: PropType<boolean | null>;
|
||||
default: boolean;
|
||||
}, "default" | "type"> & {
|
||||
type: PropType<boolean | null>;
|
||||
default: NonNullable<boolean | null> | null;
|
||||
};
|
||||
mobileBreakpoint: PropType<number | import("../../types.js").DisplayBreakpoint>;
|
||||
border: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
density: {
|
||||
type: PropType<import("../../composables/density.js").Density>;
|
||||
default: string;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
elevation: {
|
||||
type: (NumberConstructor | StringConstructor)[];
|
||||
validator: (value: string | number) => boolean;
|
||||
};
|
||||
rounded: {
|
||||
type: (BooleanConstructor | NumberConstructor | StringConstructor)[];
|
||||
default: undefined;
|
||||
};
|
||||
tile: BooleanConstructor;
|
||||
tag: {
|
||||
type: PropType<string | import("../../util/index.js").JSXComponent>;
|
||||
default: string;
|
||||
};
|
||||
height: (NumberConstructor | StringConstructor)[];
|
||||
maxHeight: (NumberConstructor | StringConstructor)[];
|
||||
maxWidth: (NumberConstructor | StringConstructor)[];
|
||||
minHeight: (NumberConstructor | StringConstructor)[];
|
||||
minWidth: (NumberConstructor | StringConstructor)[];
|
||||
width: (NumberConstructor | StringConstructor)[];
|
||||
location: PropType<import("../../util/index.js").Anchor | null>;
|
||||
position: {
|
||||
type: PropType<"absolute" | "fixed" | "relative" | "static" | "sticky">;
|
||||
validator: (v: any) => boolean;
|
||||
};
|
||||
avatar: StringConstructor;
|
||||
bgColor: StringConstructor;
|
||||
color: StringConstructor;
|
||||
icon: PropType<IconValue>;
|
||||
lines: PropType<'one' | 'two' | 'three'>;
|
||||
stacked: BooleanConstructor;
|
||||
sticky: BooleanConstructor;
|
||||
text: StringConstructor;
|
||||
}>>;
|
||||
export type VBanner = InstanceType<typeof VBanner>;
|
||||
+141
@@ -0,0 +1,141 @@
|
||||
import { createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from "vue";
|
||||
// Styles
|
||||
import "./VBanner.css";
|
||||
|
||||
// Components
|
||||
import { VBannerActions } from "./VBannerActions.js";
|
||||
import { VBannerText } from "./VBannerText.js";
|
||||
import { VAvatar } from "../VAvatar/index.js";
|
||||
import { VDefaultsProvider } from "../VDefaultsProvider/index.js"; // Composables
|
||||
import { makeBorderProps, useBorder } from "../../composables/border.js";
|
||||
import { useBackgroundColor } from "../../composables/color.js";
|
||||
import { makeComponentProps } from "../../composables/component.js";
|
||||
import { provideDefaults } from "../../composables/defaults.js";
|
||||
import { makeDensityProps, useDensity } from "../../composables/density.js";
|
||||
import { makeDimensionProps, useDimension } from "../../composables/dimensions.js";
|
||||
import { makeDisplayProps, useDisplay } from "../../composables/display.js";
|
||||
import { makeElevationProps, useElevation } from "../../composables/elevation.js";
|
||||
import { IconValue } from "../../composables/icons.js";
|
||||
import { makeLocationProps, useLocation } from "../../composables/location.js";
|
||||
import { makePositionProps, usePosition } from "../../composables/position.js";
|
||||
import { makeRoundedProps, useRounded } from "../../composables/rounded.js";
|
||||
import { makeTagProps } from "../../composables/tag.js";
|
||||
import { makeThemeProps, provideTheme } from "../../composables/theme.js"; // Utilities
|
||||
import { toRef } from 'vue';
|
||||
import { genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types
|
||||
export const makeVBannerProps = propsFactory({
|
||||
avatar: String,
|
||||
bgColor: String,
|
||||
color: String,
|
||||
icon: IconValue,
|
||||
lines: String,
|
||||
stacked: Boolean,
|
||||
sticky: Boolean,
|
||||
text: String,
|
||||
...makeBorderProps(),
|
||||
...makeComponentProps(),
|
||||
...makeDensityProps(),
|
||||
...makeDimensionProps(),
|
||||
...makeDisplayProps({
|
||||
mobile: null
|
||||
}),
|
||||
...makeElevationProps(),
|
||||
...makeLocationProps(),
|
||||
...makePositionProps(),
|
||||
...makeRoundedProps(),
|
||||
...makeTagProps(),
|
||||
...makeThemeProps()
|
||||
}, 'VBanner');
|
||||
export const VBanner = genericComponent()({
|
||||
name: 'VBanner',
|
||||
props: makeVBannerProps(),
|
||||
setup(props, {
|
||||
slots
|
||||
}) {
|
||||
const {
|
||||
backgroundColorClasses,
|
||||
backgroundColorStyles
|
||||
} = useBackgroundColor(() => props.bgColor);
|
||||
const {
|
||||
borderClasses
|
||||
} = useBorder(props);
|
||||
const {
|
||||
densityClasses
|
||||
} = useDensity(props);
|
||||
const {
|
||||
displayClasses,
|
||||
mobile
|
||||
} = useDisplay(props);
|
||||
const {
|
||||
dimensionStyles
|
||||
} = useDimension(props);
|
||||
const {
|
||||
elevationClasses
|
||||
} = useElevation(props);
|
||||
const {
|
||||
locationStyles
|
||||
} = useLocation(props);
|
||||
const {
|
||||
positionClasses
|
||||
} = usePosition(props);
|
||||
const {
|
||||
roundedClasses
|
||||
} = useRounded(props);
|
||||
const {
|
||||
themeClasses
|
||||
} = provideTheme(props);
|
||||
const color = toRef(() => props.color);
|
||||
const density = toRef(() => props.density);
|
||||
provideDefaults({
|
||||
VBannerActions: {
|
||||
color,
|
||||
density
|
||||
}
|
||||
});
|
||||
useRender(() => {
|
||||
const hasText = !!(props.text || slots.text);
|
||||
const hasPrependMedia = !!(props.avatar || props.icon);
|
||||
const hasPrepend = !!(hasPrependMedia || slots.prepend);
|
||||
return _createVNode(props.tag, {
|
||||
"class": _normalizeClass(['v-banner', {
|
||||
'v-banner--stacked': props.stacked || mobile.value,
|
||||
'v-banner--sticky': props.sticky,
|
||||
[`v-banner--${props.lines}-line`]: !!props.lines
|
||||
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, displayClasses.value, elevationClasses.value, positionClasses.value, roundedClasses.value, props.class]),
|
||||
"style": _normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, locationStyles.value, props.style]),
|
||||
"role": "banner"
|
||||
}, {
|
||||
default: () => [hasPrepend && _createElementVNode("div", {
|
||||
"key": "prepend",
|
||||
"class": "v-banner__prepend"
|
||||
}, [!slots.prepend ? _createVNode(VAvatar, {
|
||||
"key": "prepend-avatar",
|
||||
"color": color.value,
|
||||
"density": density.value,
|
||||
"icon": props.icon,
|
||||
"image": props.avatar
|
||||
}, null) : _createVNode(VDefaultsProvider, {
|
||||
"key": "prepend-defaults",
|
||||
"disabled": !hasPrependMedia,
|
||||
"defaults": {
|
||||
VAvatar: {
|
||||
color: color.value,
|
||||
density: density.value,
|
||||
icon: props.icon,
|
||||
image: props.avatar
|
||||
}
|
||||
}
|
||||
}, slots.prepend)]), _createElementVNode("div", {
|
||||
"class": "v-banner__content"
|
||||
}, [hasText && _createVNode(VBannerText, {
|
||||
"key": "text"
|
||||
}, {
|
||||
default: () => [slots.text?.() ?? props.text]
|
||||
}), slots.default?.()]), slots.actions && _createVNode(VBannerActions, {
|
||||
"key": "actions"
|
||||
}, slots.actions)]
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VBanner.js.map
|
||||
+1
File diff suppressed because one or more lines are too long
+109
@@ -0,0 +1,109 @@
|
||||
@use 'sass:math'
|
||||
@use '../../styles/tools'
|
||||
@use './variables' as *
|
||||
|
||||
@include tools.layer('components')
|
||||
.v-banner
|
||||
display: grid
|
||||
flex: 1 1
|
||||
font-size: $banner-font-size
|
||||
grid-template-areas: "prepend content actions"
|
||||
grid-template-columns: max-content auto max-content
|
||||
grid-template-rows: max-content max-content
|
||||
line-height: $banner-line-height
|
||||
overflow: hidden
|
||||
padding-inline: $banner-padding-inline-start $banner-padding-inline-end
|
||||
padding-top: $banner-padding * 2
|
||||
padding-bottom: $banner-padding * 2
|
||||
position: relative
|
||||
width: $banner-width
|
||||
|
||||
@include tools.border($banner-border...)
|
||||
@include tools.elevation($banner-elevation)
|
||||
@include tools.position($banner-positions)
|
||||
@include tools.rounded($banner-border-radius)
|
||||
@include tools.theme($banner-theme...)
|
||||
|
||||
&--rounded
|
||||
@include tools.rounded($banner-rounded-border-radius)
|
||||
|
||||
&--stacked
|
||||
&:not(.v-banner--one-line)
|
||||
grid-template-areas: "prepend content" ". actions"
|
||||
|
||||
.v-banner-text
|
||||
padding-inline-end: $banner-stacked-padding-inline-end
|
||||
|
||||
@at-root
|
||||
@include tools.density('v-banner', $banner-density) using ($modifier)
|
||||
.v-banner-actions
|
||||
margin-bottom: -($banner-padding + $modifier)
|
||||
|
||||
&.v-banner--one-line
|
||||
padding-top: $banner-padding + $modifier
|
||||
padding-bottom: $banner-padding + $modifier
|
||||
|
||||
.v-banner-actions
|
||||
margin-bottom: 0
|
||||
|
||||
@if ($modifier == 0px)
|
||||
&.v-banner--one-line
|
||||
padding-top: $banner-padding + $modifier + 2
|
||||
|
||||
&.v-banner--two-line
|
||||
padding-top: $banner-padding * 2 + $modifier
|
||||
padding-bottom: $banner-padding * 2 + $modifier
|
||||
|
||||
&.v-banner--three-line
|
||||
padding-top: $banner-padding * 3 + $modifier
|
||||
padding-bottom: $banner-padding * 2 + $modifier
|
||||
|
||||
&:not(.v-banner--one-line),
|
||||
&.v-banner--two-line,
|
||||
&.v-banner--three-line
|
||||
.v-banner-actions
|
||||
margin-top: $banner-action-margin + $modifier
|
||||
|
||||
&--sticky
|
||||
top: $banner-sticky-top
|
||||
z-index: $banner-sticky-z-index
|
||||
|
||||
.v-banner__content
|
||||
align-items: center
|
||||
display: flex
|
||||
grid-area: content
|
||||
|
||||
.v-banner__prepend
|
||||
align-self: flex-start
|
||||
grid-area: prepend
|
||||
margin-inline-end: $banner-prepend-margin-end
|
||||
|
||||
.v-banner-actions
|
||||
align-self: flex-end
|
||||
display: flex
|
||||
flex: 0 1
|
||||
grid-area: actions
|
||||
justify-content: flex-end
|
||||
|
||||
.v-banner--two-line &,
|
||||
.v-banner--three-line &
|
||||
margin-top: $banner-actions-line-margin-top
|
||||
|
||||
.v-banner-text
|
||||
-webkit-box-orient: vertical
|
||||
display: -webkit-box
|
||||
padding-inline-end: $banner-text-padding-end
|
||||
overflow: hidden
|
||||
|
||||
.v-banner--one-line &
|
||||
-webkit-line-clamp: 1
|
||||
|
||||
.v-banner--two-line &
|
||||
-webkit-line-clamp: 2
|
||||
|
||||
.v-banner--three-line &
|
||||
-webkit-line-clamp: 3
|
||||
|
||||
.v-banner--two-line &,
|
||||
.v-banner--three-line &
|
||||
align-self: flex-start
|
||||
+124
@@ -0,0 +1,124 @@
|
||||
export declare const makeVBannerActionsProps: <Defaults extends {
|
||||
class?: unknown;
|
||||
style?: unknown;
|
||||
color?: unknown;
|
||||
density?: unknown;
|
||||
} = {}>(defaults?: Defaults | undefined) => {
|
||||
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>;
|
||||
};
|
||||
color: unknown extends Defaults["color"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
|
||||
default: unknown extends Defaults["color"] ? string : string | Defaults["color"];
|
||||
};
|
||||
density: unknown extends Defaults["density"] ? StringConstructor : {
|
||||
type: import("vue").PropType<unknown extends Defaults["density"] ? string : string | Defaults["density"]>;
|
||||
default: unknown extends Defaults["density"] ? string : string | Defaults["density"];
|
||||
};
|
||||
};
|
||||
export declare const VBannerActions: {
|
||||
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
} & {
|
||||
class?: any;
|
||||
color?: string | undefined;
|
||||
density?: 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;
|
||||
}, {}, 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;
|
||||
} & {
|
||||
class?: any;
|
||||
color?: string | undefined;
|
||||
density?: 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;
|
||||
}, {}, {}, {}, {}, {
|
||||
style: import("vue").StyleValue;
|
||||
}>;
|
||||
__isFragment?: never;
|
||||
__isTeleport?: never;
|
||||
__isSuspense?: never;
|
||||
} & import("vue").ComponentOptionsBase<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
} & {
|
||||
class?: any;
|
||||
color?: string | undefined;
|
||||
density?: 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;
|
||||
}, {}, 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<{
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
color: StringConstructor;
|
||||
density: StringConstructor;
|
||||
}, import("vue").ExtractPropTypes<{
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
color: StringConstructor;
|
||||
density: StringConstructor;
|
||||
}>>;
|
||||
export type VBannerActions = InstanceType<typeof VBannerActions>;
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
import { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode } from "vue";
|
||||
// Composables
|
||||
import { makeComponentProps } from "../../composables/component.js";
|
||||
import { provideDefaults } from "../../composables/defaults.js"; // Utilities
|
||||
import { genericComponent, propsFactory, useRender } from "../../util/index.js";
|
||||
export const makeVBannerActionsProps = propsFactory({
|
||||
color: String,
|
||||
density: String,
|
||||
...makeComponentProps()
|
||||
}, 'VBannerActions');
|
||||
export const VBannerActions = genericComponent()({
|
||||
name: 'VBannerActions',
|
||||
props: makeVBannerActionsProps(),
|
||||
setup(props, {
|
||||
slots
|
||||
}) {
|
||||
provideDefaults({
|
||||
VBtn: {
|
||||
color: props.color,
|
||||
density: props.density,
|
||||
slim: true,
|
||||
variant: 'text'
|
||||
}
|
||||
});
|
||||
useRender(() => _createElementVNode("div", {
|
||||
"class": _normalizeClass(['v-banner-actions', props.class]),
|
||||
"style": _normalizeStyle(props.style)
|
||||
}, [slots.default?.()]));
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VBannerActions.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"VBannerActions.js","names":["makeComponentProps","provideDefaults","genericComponent","propsFactory","useRender","makeVBannerActionsProps","color","String","density","VBannerActions","name","props","setup","slots","VBtn","slim","variant","_createElementVNode","_normalizeClass","class","_normalizeStyle","style","default"],"sources":["../../../src/components/VBanner/VBannerActions.tsx"],"sourcesContent":["// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVBannerActionsProps = propsFactory({\n color: String,\n density: String,\n\n ...makeComponentProps(),\n}, 'VBannerActions')\n\nexport const VBannerActions = genericComponent()({\n name: 'VBannerActions',\n\n props: makeVBannerActionsProps(),\n\n setup (props, { slots }) {\n provideDefaults({\n VBtn: {\n color: props.color,\n density: props.density,\n slim: true,\n variant: 'text',\n },\n })\n\n useRender(() => (\n <div\n class={[\n 'v-banner-actions',\n props.class,\n ]}\n style={ props.style }\n >\n { slots.default?.() }\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VBannerActions = InstanceType<typeof VBannerActions>\n"],"mappings":";AAAA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,eAAe,yCAExB;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAElD,OAAO,MAAMC,uBAAuB,GAAGF,YAAY,CAAC;EAClDG,KAAK,EAAEC,MAAM;EACbC,OAAO,EAAED,MAAM;EAEf,GAAGP,kBAAkB,CAAC;AACxB,CAAC,EAAE,gBAAgB,CAAC;AAEpB,OAAO,MAAMS,cAAc,GAAGP,gBAAgB,CAAC,CAAC,CAAC;EAC/CQ,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAEN,uBAAuB,CAAC,CAAC;EAEhCO,KAAKA,CAAED,KAAK,EAAE;IAAEE;EAAM,CAAC,EAAE;IACvBZ,eAAe,CAAC;MACda,IAAI,EAAE;QACJR,KAAK,EAAEK,KAAK,CAACL,KAAK;QAClBE,OAAO,EAAEG,KAAK,CAACH,OAAO;QACtBO,IAAI,EAAE,IAAI;QACVC,OAAO,EAAE;MACX;IACF,CAAC,CAAC;IAEFZ,SAAS,CAAC,MAAAa,mBAAA;MAAA,SAAAC,eAAA,CAEC,CACL,kBAAkB,EAClBP,KAAK,CAACQ,KAAK,CACZ;MAAA,SAAAC,eAAA,CACOT,KAAK,CAACU,KAAK;IAAA,IAEjBR,KAAK,CAACS,OAAO,GAAG,CAAC,EAEtB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
|
||||
+105
@@ -0,0 +1,105 @@
|
||||
export declare const VBannerText: {
|
||||
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
tag: string;
|
||||
} & {
|
||||
class?: any;
|
||||
} & {
|
||||
$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;
|
||||
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
||||
style: import("vue").StyleValue;
|
||||
tag: string;
|
||||
}, 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;
|
||||
tag: string;
|
||||
} & {
|
||||
class?: any;
|
||||
} & {
|
||||
$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;
|
||||
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>, {}, {}, {}, {
|
||||
style: import("vue").StyleValue;
|
||||
tag: string;
|
||||
}>;
|
||||
__isFragment?: never;
|
||||
__isTeleport?: never;
|
||||
__isSuspense?: never;
|
||||
} & import("vue").ComponentOptionsBase<{
|
||||
style: string | false | import("vue").StyleValue[] | import("vue").CSSProperties | null;
|
||||
tag: string;
|
||||
} & {
|
||||
class?: any;
|
||||
} & {
|
||||
$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;
|
||||
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
||||
[key: string]: any;
|
||||
}>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
|
||||
style: import("vue").StyleValue;
|
||||
tag: string;
|
||||
}, {}, 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<{
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
tag: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
}, import("vue").ExtractPropTypes<{
|
||||
class: import("vue").PropType<any>;
|
||||
style: {
|
||||
type: import("vue").PropType<import("vue").StyleValue>;
|
||||
default: null;
|
||||
};
|
||||
tag: {
|
||||
type: StringConstructor;
|
||||
default: string;
|
||||
};
|
||||
}>>;
|
||||
export type VBannerText = InstanceType<typeof VBannerText>;
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// Utilities
|
||||
import { createSimpleFunctional } from "../../util/index.js";
|
||||
export const VBannerText = createSimpleFunctional('v-banner-text');
|
||||
//# sourceMappingURL=VBannerText.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"VBannerText.js","names":["createSimpleFunctional","VBannerText"],"sources":["../../../src/components/VBanner/VBannerText.ts"],"sourcesContent":["// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VBannerText = createSimpleFunctional('v-banner-text')\n\nexport type VBannerText = InstanceType<typeof VBannerText>\n"],"mappings":"AAAA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,WAAW,GAAGD,sBAAsB,CAAC,eAAe,CAAC","ignoreList":[]}
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
@use 'sass:map';
|
||||
@use '../../styles/settings';
|
||||
@use '../../styles/tools';
|
||||
|
||||
// Defaults
|
||||
$banner-action-margin: 20px !default;
|
||||
$banner-actions-line-margin-top: 20px !default;
|
||||
$banner-background: rgb(var(--v-theme-surface)) !default;
|
||||
$banner-border-color: settings.$border-color-root !default;
|
||||
$banner-border-radius: map.get(settings.$rounded, 0) !default;
|
||||
$banner-border-style: settings.$border-style-root !default;
|
||||
$banner-border-thin-width: thin !default;
|
||||
$banner-border-width: 0 0 thin 0 !default;
|
||||
$banner-color: tools.theme-color('on-surface', var(--v-high-emphasis-opacity)) !default;
|
||||
$banner-density: ('default': 0, 'comfortable': -1, 'compact': -2) !default;
|
||||
$banner-elevation: 0 !default;
|
||||
$banner-font-size: tools.map-deep-get(settings.$typography, 'body-medium', 'size') !default;
|
||||
$banner-line-height: tools.map-deep-get(settings.$typography, 'label-large', 'line-height') !default;
|
||||
$banner-padding-inline-start: 16px !default;
|
||||
$banner-padding-inline-end: 8px !default;
|
||||
$banner-padding: 8px !default;
|
||||
$banner-positions: absolute fixed sticky !default;
|
||||
$banner-prepend-margin-end: 24px !default;
|
||||
$banner-rounded-border-radius: settings.$border-radius-root !default;
|
||||
$banner-stacked-padding-inline-end: 36px !default;
|
||||
$banner-sticky-top: 0 !default;
|
||||
$banner-sticky-z-index: 1 !default;
|
||||
$banner-text-padding-end: 90px !default;
|
||||
$banner-width: 100% !default;
|
||||
|
||||
// Mobile
|
||||
$banner-mobile-avatar-margin-end: 16px !default;
|
||||
$banner-mobile-content-padding-end: 8px !default;
|
||||
$banner-mobile-padding-end: 8px !default;
|
||||
$banner-mobile-padding-start: 16px !default;
|
||||
|
||||
$banner-border: (
|
||||
$banner-border-color,
|
||||
$banner-border-style,
|
||||
$banner-border-width,
|
||||
$banner-border-thin-width
|
||||
) !default;
|
||||
|
||||
$banner-theme: (
|
||||
$banner-background,
|
||||
$banner-color
|
||||
) !default;
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
export { VBanner } from './VBanner.js';
|
||||
export { VBannerActions } from './VBannerActions.js';
|
||||
export { VBannerText } from './VBannerText.js';
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
export { VBanner } from "./VBanner.js";
|
||||
export { VBannerActions } from "./VBannerActions.js";
|
||||
export { VBannerText } from "./VBannerText.js";
|
||||
//# sourceMappingURL=index.js.map
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.js","names":["VBanner","VBannerActions","VBannerText"],"sources":["../../../src/components/VBanner/index.ts"],"sourcesContent":["export { VBanner } from './VBanner'\nexport { VBannerActions } from './VBannerActions'\nexport { VBannerText } from './VBannerText'\n"],"mappings":"SAASA,OAAO;AAAA,SACPC,cAAc;AAAA,SACdC,WAAW","ignoreList":[]}
|
||||
Reference in New Issue
Block a user