Tracking de l'application VApp (IHM du jeu)

This commit is contained in:
2025-05-11 18:04:12 +02:00
commit 89e9db9b62
17763 changed files with 3718499 additions and 0 deletions

View File

@ -0,0 +1,295 @@
.v-card {
display: block;
overflow: hidden;
overflow-wrap: break-word;
position: relative;
padding: 0;
text-decoration: none;
transition-duration: 0.28s;
transition-property: box-shadow, opacity, background;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
z-index: 0;
border-color: rgba(var(--v-border-color), var(--v-border-opacity));
border-style: solid;
border-width: 0;
border-radius: 4px;
}
.v-card--border {
border-width: thin;
box-shadow: none;
}
.v-card--absolute {
position: absolute;
}
.v-card--fixed {
position: fixed;
}
.v-card:hover > .v-card__overlay {
opacity: calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier));
}
.v-card:focus-visible > .v-card__overlay {
opacity: calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier));
}
@supports not selector(:focus-visible) {
.v-card:focus > .v-card__overlay {
opacity: calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier));
}
}
.v-card--active > .v-card__overlay, .v-card[aria-haspopup=menu][aria-expanded=true] > .v-card__overlay {
opacity: calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier));
}
.v-card--active:hover > .v-card__overlay, .v-card[aria-haspopup=menu][aria-expanded=true]:hover > .v-card__overlay {
opacity: calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier));
}
.v-card--active:focus-visible > .v-card__overlay, .v-card[aria-haspopup=menu][aria-expanded=true]:focus-visible > .v-card__overlay {
opacity: calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier));
}
@supports not selector(:focus-visible) {
.v-card--active:focus > .v-card__overlay, .v-card[aria-haspopup=menu][aria-expanded=true]:focus > .v-card__overlay {
opacity: calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier));
}
}
.v-card--variant-plain, .v-card--variant-outlined, .v-card--variant-text, .v-card--variant-tonal {
background: transparent;
color: inherit;
}
.v-card--variant-plain {
opacity: 0.62;
}
.v-card--variant-plain:focus, .v-card--variant-plain:hover {
opacity: 1;
}
.v-card--variant-plain .v-card__overlay {
display: none;
}
.v-card--variant-elevated, .v-card--variant-flat {
background: rgb(var(--v-theme-surface));
color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity));
}
.v-card--variant-elevated {
box-shadow: 0px 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 1px 1px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 1px 3px 0px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12));
}
.v-card--variant-flat {
box-shadow: 0px 0px 0px 0px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 0px 0px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 0px 0px 0px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12));
}
.v-card--variant-outlined {
border: thin solid currentColor;
}
.v-card--variant-text .v-card__overlay {
background: currentColor;
}
.v-card--variant-tonal .v-card__underlay {
background: currentColor;
opacity: var(--v-activated-opacity);
border-radius: inherit;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
pointer-events: none;
}
.v-card--disabled {
pointer-events: none;
user-select: none;
}
.v-card--disabled > :not(.v-card__loader) {
opacity: 0.6;
}
.v-card--flat {
box-shadow: none;
}
.v-card--hover {
cursor: pointer;
}
.v-card--hover::before, .v-card--hover::after {
border-radius: inherit;
bottom: 0;
content: "";
display: block;
left: 0;
pointer-events: none;
position: absolute;
right: 0;
top: 0;
transition: inherit;
}
.v-card--hover::before {
opacity: 1;
z-index: -1;
box-shadow: 0px 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 1px 1px 0px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 1px 3px 0px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12));
}
.v-card--hover::after {
z-index: 1;
opacity: 0;
box-shadow: 0px 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 3px 14px 2px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12));
}
.v-card--hover:hover::after {
opacity: 1;
}
.v-card--hover:hover::before {
opacity: 0;
}
.v-card--hover:hover {
box-shadow: 0px 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, 0.2)), 0px 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, 0.14)), 0px 3px 14px 2px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, 0.12));
}
.v-card--link {
cursor: pointer;
}
.v-card-actions {
align-items: center;
display: flex;
flex: none;
min-height: 52px;
padding: 0.5rem;
}
.v-card-item {
align-items: center;
display: grid;
flex: none;
grid-template-areas: "prepend content append";
grid-template-columns: max-content auto max-content;
padding: 0.625rem 1rem;
}
.v-card-item + .v-card-text {
padding-top: 0;
}
.v-card-item__prepend, .v-card-item__append {
align-items: center;
display: flex;
}
.v-card-item__prepend {
grid-area: prepend;
padding-inline-end: 0.5rem;
}
.v-card-item__append {
grid-area: append;
padding-inline-start: 0.5rem;
}
.v-card-item__content {
align-self: center;
grid-area: content;
overflow: hidden;
}
.v-card-title {
display: block;
flex: none;
font-size: 1.25rem;
font-weight: 500;
hyphens: auto;
letter-spacing: 0.0125em;
min-width: 0;
overflow-wrap: normal;
overflow: hidden;
padding: 0.5rem 1rem;
text-overflow: ellipsis;
text-transform: none;
white-space: nowrap;
word-break: normal;
word-wrap: break-word;
}
.v-card .v-card-title {
line-height: 2rem;
}
.v-card--density-comfortable .v-card-title {
line-height: 1.75rem;
}
.v-card--density-compact .v-card-title {
line-height: 1.55rem;
}
.v-card-item .v-card-title {
padding: 0;
}
.v-card-title + .v-card-text,
.v-card-title + .v-card-actions {
padding-top: 0;
}
.v-card-subtitle {
display: block;
flex: none;
font-size: 0.875rem;
font-weight: 400;
letter-spacing: 0.0178571429em;
opacity: var(--v-medium-emphasis-opacity);
overflow: hidden;
padding: 0 1rem;
text-overflow: ellipsis;
text-transform: none;
white-space: nowrap;
}
.v-card .v-card-subtitle {
line-height: 1.25rem;
}
.v-card--density-comfortable .v-card-subtitle {
line-height: 1.125rem;
}
.v-card--density-compact .v-card-subtitle {
line-height: 1rem;
}
.v-card-item .v-card-subtitle {
padding: 0 0 0.25rem;
}
.v-card-text {
flex: 1 1 auto;
font-size: 0.875rem;
font-weight: 400;
letter-spacing: 0.0178571429em;
padding: 1rem;
text-transform: none;
}
.v-card .v-card-text {
line-height: 1.25rem;
}
.v-card--density-comfortable .v-card-text {
line-height: 1.2rem;
}
.v-card--density-compact .v-card-text {
line-height: 1.15rem;
}
.v-card__image {
display: flex;
height: 100%;
flex: 1 1 auto;
left: 0;
overflow: hidden;
position: absolute;
top: 0;
width: 100%;
z-index: -1;
}
.v-card__content {
border-radius: inherit;
overflow: hidden;
position: relative;
}
.v-card__loader {
bottom: auto;
top: 0;
left: 0;
position: absolute;
right: 0;
width: 100%;
z-index: 1;
}
.v-card__overlay {
background-color: currentColor;
border-radius: inherit;
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
pointer-events: none;
opacity: 0;
transition: opacity 0.2s ease-in-out;
}

View File

@ -0,0 +1,182 @@
import { withDirectives as _withDirectives, resolveDirective as _resolveDirective, createVNode as _createVNode } from "vue";
/* eslint-disable complexity */
// Styles
import "./VCard.css";
// Components
import { VCardActions } from "./VCardActions.mjs";
import { VCardItem } from "./VCardItem.mjs";
import { VCardText } from "./VCardText.mjs";
import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs";
import { VImg } from "../VImg/index.mjs"; // Composables
import { makeBorderProps, useBorder } from "../../composables/border.mjs";
import { makeComponentProps } from "../../composables/component.mjs";
import { makeDensityProps, useDensity } from "../../composables/density.mjs";
import { makeDimensionProps, useDimension } from "../../composables/dimensions.mjs";
import { makeElevationProps, useElevation } from "../../composables/elevation.mjs";
import { IconValue } from "../../composables/icons.mjs";
import { LoaderSlot, makeLoaderProps, useLoader } from "../../composables/loader.mjs";
import { makeLocationProps, useLocation } from "../../composables/location.mjs";
import { makePositionProps, usePosition } from "../../composables/position.mjs";
import { makeRoundedProps, useRounded } from "../../composables/rounded.mjs";
import { makeRouterProps, useLink } from "../../composables/router.mjs";
import { makeTagProps } from "../../composables/tag.mjs";
import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
import { genOverlays, makeVariantProps, useVariant } from "../../composables/variant.mjs"; // Directives
import { Ripple } from "../../directives/ripple/index.mjs"; // Utilities
import { computed } from 'vue';
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
export const makeVCardProps = propsFactory({
appendAvatar: String,
appendIcon: IconValue,
disabled: Boolean,
flat: Boolean,
hover: Boolean,
image: String,
link: {
type: Boolean,
default: undefined
},
prependAvatar: String,
prependIcon: IconValue,
ripple: {
type: [Boolean, Object],
default: true
},
subtitle: [String, Number],
text: [String, Number],
title: [String, Number],
...makeBorderProps(),
...makeComponentProps(),
...makeDensityProps(),
...makeDimensionProps(),
...makeElevationProps(),
...makeLoaderProps(),
...makeLocationProps(),
...makePositionProps(),
...makeRoundedProps(),
...makeRouterProps(),
...makeTagProps(),
...makeThemeProps(),
...makeVariantProps({
variant: 'elevated'
})
}, 'VCard');
export const VCard = genericComponent()({
name: 'VCard',
directives: {
Ripple
},
props: makeVCardProps(),
setup(props, _ref) {
let {
attrs,
slots
} = _ref;
const {
themeClasses
} = provideTheme(props);
const {
borderClasses
} = useBorder(props);
const {
colorClasses,
colorStyles,
variantClasses
} = useVariant(props);
const {
densityClasses
} = useDensity(props);
const {
dimensionStyles
} = useDimension(props);
const {
elevationClasses
} = useElevation(props);
const {
loaderClasses
} = useLoader(props);
const {
locationStyles
} = useLocation(props);
const {
positionClasses
} = usePosition(props);
const {
roundedClasses
} = useRounded(props);
const link = useLink(props, attrs);
const isLink = computed(() => props.link !== false && link.isLink.value);
const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value));
useRender(() => {
const Tag = isLink.value ? 'a' : props.tag;
const hasTitle = !!(slots.title || props.title != null);
const hasSubtitle = !!(slots.subtitle || props.subtitle != null);
const hasHeader = hasTitle || hasSubtitle;
const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon);
const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon);
const hasImage = !!(slots.image || props.image);
const hasCardItem = hasHeader || hasPrepend || hasAppend;
const hasText = !!(slots.text || props.text != null);
return _withDirectives(_createVNode(Tag, {
"class": ['v-card', {
'v-card--disabled': props.disabled,
'v-card--flat': props.flat,
'v-card--hover': props.hover && !(props.disabled || props.flat),
'v-card--link': isClickable.value
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class],
"style": [colorStyles.value, dimensionStyles.value, locationStyles.value, props.style],
"href": link.href.value,
"onClick": isClickable.value && link.navigate,
"tabindex": props.disabled ? -1 : undefined
}, {
default: () => [hasImage && _createVNode("div", {
"key": "image",
"class": "v-card__image"
}, [!slots.image ? _createVNode(VImg, {
"key": "image-img",
"cover": true,
"src": props.image
}, null) : _createVNode(VDefaultsProvider, {
"key": "image-defaults",
"disabled": !props.image,
"defaults": {
VImg: {
cover: true,
src: props.image
}
}
}, slots.image)]), _createVNode(LoaderSlot, {
"name": "v-card",
"active": !!props.loading,
"color": typeof props.loading === 'boolean' ? undefined : props.loading
}, {
default: slots.loader
}), hasCardItem && _createVNode(VCardItem, {
"key": "item",
"prependAvatar": props.prependAvatar,
"prependIcon": props.prependIcon,
"title": props.title,
"subtitle": props.subtitle,
"appendAvatar": props.appendAvatar,
"appendIcon": props.appendIcon
}, {
default: slots.item,
prepend: slots.prepend,
title: slots.title,
subtitle: slots.subtitle,
append: slots.append
}), hasText && _createVNode(VCardText, {
"key": "text"
}, {
default: () => [slots.text?.() ?? props.text]
}), slots.default?.(), slots.actions && _createVNode(VCardActions, null, {
default: slots.actions
}), genOverlays(isClickable.value, 'v-card')]
}), [[_resolveDirective("ripple"), isClickable.value && props.ripple]]);
});
return {};
}
});
//# sourceMappingURL=VCard.mjs.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,198 @@
@use '../../styles/tools'
@use './variables' as *
@use './mixins' as *
.v-card
display: block
overflow: hidden
overflow-wrap: $card-overflow-wrap
position: relative
padding: $card-padding
text-decoration: none
transition-duration: $card-transition-duration
transition-property: $card-transition-property
transition-timing-function: $card-transition-timing-function
z-index: 0
@include tools.border($card-border...)
@include tools.position($card-positions)
@include tools.rounded($card-border-radius)
@include tools.states('.v-card__overlay')
@include tools.variant($card-variants...)
&--disabled
pointer-events: none
user-select: none
>:not(.v-card__loader)
opacity: $card-disabled-opacity
&--flat
box-shadow: none
&--hover
cursor: pointer
&::before,
&::after
border-radius: inherit
bottom: 0
content: ''
display: block
left: 0
pointer-events: none
position: absolute
right: 0
top: 0
transition: inherit
&::before
opacity: 1
z-index: -1
@include tools.elevation($card-elevation)
&::after
z-index: 1
opacity: 0
@include tools.elevation($card-hover-elevation)
&:hover::after
opacity: 1
&:hover::before
opacity: 0
&:hover
@include tools.elevation($card-hover-elevation)
&--link
cursor: pointer
.v-card-actions
align-items: center
display: flex
flex: $card-actions-flex
min-height: $card-actions-min-height
padding: $card-actions-padding
.v-card-item
align-items: $card-item-align-items
display: grid
flex: $card-header-flex
grid-template-areas: "prepend content append"
grid-template-columns: max-content auto max-content
padding: $card-item-padding
+ .v-card-text
padding-top: 0
&__prepend,
&__append
align-items: center
display: flex
&__prepend
grid-area: prepend
padding-inline-end: $card-prepend-padding-inline-end
&__append
grid-area: append
padding-inline-start: $card-append-padding-inline-start
.v-card-item__content
align-self: center
grid-area: content
overflow: hidden
.v-card-title
display: block
flex: $card-title-flex
font-size: $card-title-font-size
font-weight: $card-title-font-weight
hyphens: $card-title-hyphens
letter-spacing: $card-title-letter-spacing
min-width: 0
overflow-wrap: $card-title-overflow-wrap
overflow: $card-title-overflow
padding: $card-title-padding
text-overflow: $card-title-text-overflow
text-transform: $card-title-text-transform
white-space: $card-title-white-space
word-break: $card-title-word-break
word-wrap: $card-title-word-wrap
@include card-line-height-densities($card-title-densities)
.v-card-item &
padding: $card-title-header-padding
+ .v-card-text,
+ .v-card-actions
padding-top: 0
.v-card-subtitle
display: block
flex: $card-subtitle-flex
font-size: $card-subtitle-font-size
font-weight: $card-subtitle-font-weight
letter-spacing: $card-subtitle-letter-spacing
opacity: $card-subtitle-opacity
overflow: $card-subtitle-overflow
padding: $card-subtitle-padding
text-overflow: $card-subtitle-text-overflow
text-transform: $card-subtitle-text-transform
white-space: $card-subtitle-white-space
@include card-line-height-densities($card-subtitle-density-line-height)
.v-card-item &
padding: $card-subtitle-header-padding
.v-card-text
flex: $card-text-flex
font-size: $card-text-font-size
font-weight: $card-text-font-weight
letter-spacing: $card-text-letter-spacing
padding: $card-text-padding
text-transform: $card-text-text-transform
@include card-line-height-densities($card-text-density-line-height)
.v-card__image
display: flex
height: 100%
flex: $card-img-flex
left: 0
overflow: hidden
position: absolute
top: 0
width: 100%
z-index: -1
.v-card__content
border-radius: inherit
overflow: hidden
position: relative
.v-card__loader
bottom: $card-loader-bottom
top: $card-loader-top
left: 0
position: absolute
right: 0
width: 100%
z-index: 1
.v-card__overlay
background-color: currentColor
border-radius: inherit
position: absolute
top: 0
right: 0
bottom: 0
left: 0
pointer-events: none
opacity: 0
transition: opacity 0.2s ease-in-out

View File

@ -0,0 +1,26 @@
import { createVNode as _createVNode } from "vue";
// Composables
import { makeComponentProps } from "../../composables/component.mjs";
import { provideDefaults } from "../../composables/defaults.mjs"; // Utilities
import { genericComponent, useRender } from "../../util/index.mjs";
export const VCardActions = genericComponent()({
name: 'VCardActions',
props: makeComponentProps(),
setup(props, _ref) {
let {
slots
} = _ref;
provideDefaults({
VBtn: {
slim: true,
variant: 'text'
}
});
useRender(() => _createVNode("div", {
"class": ['v-card-actions', props.class],
"style": props.style
}, [slots.default?.()]));
return {};
}
});
//# sourceMappingURL=VCardActions.mjs.map

View File

@ -0,0 +1 @@
{"version":3,"file":"VCardActions.mjs","names":["makeComponentProps","provideDefaults","genericComponent","useRender","VCardActions","name","props","setup","_ref","slots","VBtn","slim","variant","_createVNode","class","style","default"],"sources":["../../../src/components/VCard/VCardActions.tsx"],"sourcesContent":["// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\n\nexport const VCardActions = genericComponent()({\n name: 'VCardActions',\n\n props: makeComponentProps(),\n\n setup (props, { slots }) {\n provideDefaults({\n VBtn: {\n slim: true,\n variant: 'text',\n },\n })\n\n useRender(() => (\n <div\n class={[\n 'v-card-actions',\n props.class,\n ]}\n style={ props.style }\n >\n { slots.default?.() }\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VCardActions = InstanceType<typeof VCardActions>\n"],"mappings":";AAAA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,eAAe,0CAExB;AAAA,SACSC,gBAAgB,EAAEC,SAAS;AAEpC,OAAO,MAAMC,YAAY,GAAGF,gBAAgB,CAAC,CAAC,CAAC;EAC7CG,IAAI,EAAE,cAAc;EAEpBC,KAAK,EAAEN,kBAAkB,CAAC,CAAC;EAE3BO,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrBP,eAAe,CAAC;MACdS,IAAI,EAAE;QACJC,IAAI,EAAE,IAAI;QACVC,OAAO,EAAE;MACX;IACF,CAAC,CAAC;IAEFT,SAAS,CAAC,MAAAU,YAAA;MAAA,SAEC,CACL,gBAAgB,EAChBP,KAAK,CAACQ,KAAK,CACZ;MAAA,SACOR,KAAK,CAACS;IAAK,IAEjBN,KAAK,CAACO,OAAO,GAAG,CAAC,EAEtB,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}

View File

@ -0,0 +1,102 @@
import { resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from "vue";
// Components
import { VCardSubtitle } from "./VCardSubtitle.mjs";
import { VCardTitle } from "./VCardTitle.mjs";
import { VAvatar } from "../VAvatar/index.mjs";
import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs";
import { VIcon } from "../VIcon/index.mjs"; // Composables
import { makeComponentProps } from "../../composables/component.mjs";
import { makeDensityProps } from "../../composables/density.mjs";
import { IconValue } from "../../composables/icons.mjs"; // Utilities
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs";
export const makeCardItemProps = propsFactory({
appendAvatar: String,
appendIcon: IconValue,
prependAvatar: String,
prependIcon: IconValue,
subtitle: [String, Number],
title: [String, Number],
...makeComponentProps(),
...makeDensityProps()
}, 'VCardItem');
export const VCardItem = genericComponent()({
name: 'VCardItem',
props: makeCardItemProps(),
setup(props, _ref) {
let {
slots
} = _ref;
useRender(() => {
const hasPrependMedia = !!(props.prependAvatar || props.prependIcon);
const hasPrepend = !!(hasPrependMedia || slots.prepend);
const hasAppendMedia = !!(props.appendAvatar || props.appendIcon);
const hasAppend = !!(hasAppendMedia || slots.append);
const hasTitle = !!(props.title != null || slots.title);
const hasSubtitle = !!(props.subtitle != null || slots.subtitle);
return _createVNode("div", {
"class": ['v-card-item', props.class],
"style": props.style
}, [hasPrepend && _createVNode("div", {
"key": "prepend",
"class": "v-card-item__prepend"
}, [!slots.prepend ? _createVNode(_Fragment, null, [props.prependAvatar && _createVNode(VAvatar, {
"key": "prepend-avatar",
"density": props.density,
"image": props.prependAvatar
}, null), props.prependIcon && _createVNode(VIcon, {
"key": "prepend-icon",
"density": props.density,
"icon": props.prependIcon
}, null)]) : _createVNode(VDefaultsProvider, {
"key": "prepend-defaults",
"disabled": !hasPrependMedia,
"defaults": {
VAvatar: {
density: props.density,
image: props.prependAvatar
},
VIcon: {
density: props.density,
icon: props.prependIcon
}
}
}, slots.prepend)]), _createVNode("div", {
"class": "v-card-item__content"
}, [hasTitle && _createVNode(VCardTitle, {
"key": "title"
}, {
default: () => [slots.title?.() ?? props.title]
}), hasSubtitle && _createVNode(VCardSubtitle, {
"key": "subtitle"
}, {
default: () => [slots.subtitle?.() ?? props.subtitle]
}), slots.default?.()]), hasAppend && _createVNode("div", {
"key": "append",
"class": "v-card-item__append"
}, [!slots.append ? _createVNode(_Fragment, null, [props.appendIcon && _createVNode(VIcon, {
"key": "append-icon",
"density": props.density,
"icon": props.appendIcon
}, null), props.appendAvatar && _createVNode(VAvatar, {
"key": "append-avatar",
"density": props.density,
"image": props.appendAvatar
}, null)]) : _createVNode(VDefaultsProvider, {
"key": "append-defaults",
"disabled": !hasAppendMedia,
"defaults": {
VAvatar: {
density: props.density,
image: props.appendAvatar
},
VIcon: {
density: props.density,
icon: props.appendIcon
}
}
}, slots.append)])]);
});
return {};
}
});
//# sourceMappingURL=VCardItem.mjs.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,4 @@
// Utilities
import { createSimpleFunctional } from "../../util/index.mjs";
export const VCardSubtitle = createSimpleFunctional('v-card-subtitle');
//# sourceMappingURL=VCardSubtitle.mjs.map

View File

@ -0,0 +1 @@
{"version":3,"file":"VCardSubtitle.mjs","names":["createSimpleFunctional","VCardSubtitle"],"sources":["../../../src/components/VCard/VCardSubtitle.ts"],"sourcesContent":["// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VCardSubtitle = createSimpleFunctional('v-card-subtitle')\n\nexport type VCardSubtitle = InstanceType<typeof VCardSubtitle>\n"],"mappings":"AAAA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,aAAa,GAAGD,sBAAsB,CAAC,iBAAiB,CAAC"}

View File

@ -0,0 +1,4 @@
// Utilities
import { createSimpleFunctional } from "../../util/index.mjs";
export const VCardText = createSimpleFunctional('v-card-text');
//# sourceMappingURL=VCardText.mjs.map

View File

@ -0,0 +1 @@
{"version":3,"file":"VCardText.mjs","names":["createSimpleFunctional","VCardText"],"sources":["../../../src/components/VCard/VCardText.ts"],"sourcesContent":["// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VCardText = createSimpleFunctional('v-card-text')\n\nexport type VCardText = InstanceType<typeof VCardText>\n"],"mappings":"AAAA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,SAAS,GAAGD,sBAAsB,CAAC,aAAa,CAAC"}

View File

@ -0,0 +1,4 @@
// Utilities
import { createSimpleFunctional } from "../../util/index.mjs";
export const VCardTitle = createSimpleFunctional('v-card-title');
//# sourceMappingURL=VCardTitle.mjs.map

View File

@ -0,0 +1 @@
{"version":3,"file":"VCardTitle.mjs","names":["createSimpleFunctional","VCardTitle"],"sources":["../../../src/components/VCard/VCardTitle.ts"],"sourcesContent":["// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VCardTitle = createSimpleFunctional('v-card-title')\n\nexport type VCardTitle = InstanceType<typeof VCardTitle>\n"],"mappings":"AAAA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,UAAU,GAAGD,sBAAsB,CAAC,cAAc,CAAC"}

View File

@ -0,0 +1,13 @@
@mixin card-line-height-densities ($map) {
@each $density, $lineHeight in $map {
@if $density == null {
.v-card & {
line-height: $lineHeight;
}
} @else {
.v-card--density-#{$density} & {
line-height: $lineHeight;
}
}
}
}

View File

@ -0,0 +1,126 @@
@use 'sass:map';
@use '../../styles/settings';
@use '../../styles/tools';
// VCard
$card-actions-flex: none !default;
$card-actions-min-height: 52px !default;
$card-actions-padding: .5rem !default;
$card-append-padding-inline-start: .5rem !default;
$card-background: rgb(var(--v-theme-surface)) !default;
$card-border-color: settings.$border-color-root !default;
$card-border-radius: settings.$border-radius-root !default;
$card-border-style: settings.$border-style-root !default;
$card-border-thin-width: thin !default;
$card-border-width: 0 !default;
$card-color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity)) !default;
$card-disabled-opacity: 0.6 !default;
$card-elevation: 1 !default;
$card-loader-top: 0 !default;
$card-loader-bottom: auto !default;
$card-hover-elevation: 8 !default;
$card-img-flex: 1 1 auto !default;
$card-item-align-items: center !default;
$card-item-padding: .625rem 1rem !default;
$card-overflow-wrap: break-word !default;
$card-padding: 0 !default;
$card-plain-opacity: .62 !default;
$card-positions: absolute fixed !default;
$card-prepend-padding-inline-end: .5rem !default;
$card-transition-duration: 0.28s !default;
$card-transition-property: box-shadow, opacity, background !default;
$card-transition-timing-function: settings.$standard-easing !default;
// VCardHeader
$card-header-flex: none !default;
// VCardTitle
$card-title-comfortable-line-height: 1.75rem !default;
$card-title-compact-line-height: 1.55rem !default;
$card-title-flex: none !default;
$card-title-font-size: tools.map-deep-get(settings.$typography, 'h6', 'size') !default;
$card-title-font-weight: tools.map-deep-get(settings.$typography, 'h6', 'weight') !default;
$card-title-header-padding: 0 !default;
$card-title-hyphens: auto !default;
$card-title-letter-spacing: tools.map-deep-get(settings.$typography, 'h6', 'letter-spacing') !default;
$card-title-line-height: tools.map-deep-get(settings.$typography, 'h6', 'line-height') !default;
$card-title-overflow-wrap: normal !default;
$card-title-overflow: hidden !default;
$card-title-padding: .5rem 1rem !default;
$card-title-text-overflow: ellipsis !default;
$card-title-text-transform: none !default;
$card-title-white-space: nowrap !default;
$card-title-word-break: normal !default;
$card-title-word-wrap: break-word !default;
// VCardSubtitle
$card-subtitle-color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity)) !default;
$card-subtitle-comfortable-line-height: 1.125rem !default;
$card-subtitle-compact-line-height: 1rem !default;
$card-subtitle-flex: none !default;
$card-subtitle-font-size: tools.map-deep-get(settings.$typography, 'body-2', 'size') !default;
$card-subtitle-font-weight: tools.map-deep-get(settings.$typography, 'body-2', 'weight') !default;
$card-subtitle-header-padding: 0 0 .25rem !default;
$card-subtitle-letter-spacing: tools.map-deep-get(settings.$typography, 'body-2', 'letter-spacing') !default;
$card-subtitle-line-height: tools.map-deep-get(settings.$typography, 'body-2', 'line-height') !default;
$card-subtitle-opacity: var(--v-medium-emphasis-opacity) !default;
$card-subtitle-overflow: hidden !default;
$card-subtitle-padding: 0 1rem !default;
$card-subtitle-text-overflow: ellipsis !default;
$card-subtitle-text-transform: none !default;
$card-subtitle-white-space: nowrap !default;
// VCardText
$card-text-comfortable-line-height: 1.2rem !default;
$card-text-compact-line-height: 1.15rem !default;
$card-text-flex: 1 1 auto !default;
$card-text-font-size: tools.map-deep-get(settings.$typography, 'body-2', 'size') !default;
$card-text-font-weight: tools.map-deep-get(settings.$typography, 'body-2', 'weight') !default;
$card-text-letter-spacing: tools.map-deep-get(settings.$typography, 'body-2', 'letter-spacing') !default;
$card-text-line-height: tools.map-deep-get(settings.$typography, 'body-2', 'line-height') !default;
$card-text-padding: 1rem !default;
$card-text-text-transform: tools.map-deep-get(settings.$typography, 'body-2', 'text-transform') !default;
// Lists
$card-border: (
$card-border-color,
$card-border-style,
$card-border-width,
$card-border-thin-width
) !default;
$card-title-densities: () !default;
$card-title-densities: map.merge((
null: $card-title-line-height,
'comfortable': $card-title-comfortable-line-height,
'compact': $card-title-compact-line-height
), $card-title-densities);
$card-subtitle-density-line-height: () !default;
$card-subtitle-density-line-height: map.merge((
null: $card-subtitle-line-height,
'comfortable': $card-subtitle-comfortable-line-height,
'compact': $card-subtitle-compact-line-height
), $card-subtitle-density-line-height);
$card-text-density-line-height: () !default;
$card-text-density-line-height: map.merge((
null: $card-text-line-height,
'comfortable': $card-text-comfortable-line-height,
'compact': $card-text-compact-line-height
), $card-text-density-line-height);
$card-variants: (
$card-background,
$card-color,
$card-elevation,
$card-plain-opacity,
'v-card'
) !default;
// Deprecated
$card-avatar-align-self: flex-start !default;
$card-avatar-header-padding: 0 !default;
$card-avatar-padding: .5rem 1rem !default;
$card-title-padding-top: 1rem !default;
$card-text-padding-bottom: 1rem !default;

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
export { VCard } from "./VCard.mjs";
export { VCardActions } from "./VCardActions.mjs";
export { VCardItem } from "./VCardItem.mjs";
export { VCardSubtitle } from "./VCardSubtitle.mjs";
export { VCardText } from "./VCardText.mjs";
export { VCardTitle } from "./VCardTitle.mjs";
//# sourceMappingURL=index.mjs.map

View File

@ -0,0 +1 @@
{"version":3,"file":"index.mjs","names":["VCard","VCardActions","VCardItem","VCardSubtitle","VCardText","VCardTitle"],"sources":["../../../src/components/VCard/index.ts"],"sourcesContent":["export { VCard } from './VCard'\nexport { VCardActions } from './VCardActions'\nexport { VCardItem } from './VCardItem'\nexport { VCardSubtitle } from './VCardSubtitle'\nexport { VCardText } from './VCardText'\nexport { VCardTitle } from './VCardTitle'\n"],"mappings":"SAASA,KAAK;AAAA,SACLC,YAAY;AAAA,SACZC,SAAS;AAAA,SACTC,aAAa;AAAA,SACbC,SAAS;AAAA,SACTC,UAAU"}