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,30 @@
.v-divider {
display: block;
flex: 1 1 100%;
height: 0px;
max-height: 0px;
opacity: var(--v-border-opacity);
transition: inherit;
border-style: solid;
border-width: thin 0 0 0;
}
.v-divider--vertical {
align-self: stretch;
border-width: 0 thin 0 0;
display: inline-flex;
height: inherit;
margin-left: -1px;
max-height: 100%;
max-width: 0px;
vertical-align: text-bottom;
width: 0px;
}
.v-divider--inset:not(.v-divider--vertical) {
max-width: calc(100% - 72px);
margin-inline-start: 72px;
}
.v-divider--inset.v-divider--vertical {
margin-bottom: 8px;
margin-top: 8px;
max-height: calc(100% - 16px);
}

View File

@ -0,0 +1,57 @@
import { createVNode as _createVNode } from "vue";
// Styles
import "./VDivider.css";
// Composables
import { useTextColor } from "../../composables/color.mjs";
import { makeComponentProps } from "../../composables/component.mjs";
import { makeThemeProps, provideTheme } from "../../composables/theme.mjs"; // Utilities
import { computed, toRef } from 'vue';
import { convertToUnit, genericComponent, propsFactory, useRender } from "../../util/index.mjs";
export const makeVDividerProps = propsFactory({
color: String,
inset: Boolean,
length: [Number, String],
thickness: [Number, String],
vertical: Boolean,
...makeComponentProps(),
...makeThemeProps()
}, 'VDivider');
export const VDivider = genericComponent()({
name: 'VDivider',
props: makeVDividerProps(),
setup(props, _ref) {
let {
attrs
} = _ref;
const {
themeClasses
} = provideTheme(props);
const {
textColorClasses,
textColorStyles
} = useTextColor(toRef(props, 'color'));
const dividerStyles = computed(() => {
const styles = {};
if (props.length) {
styles[props.vertical ? 'maxHeight' : 'maxWidth'] = convertToUnit(props.length);
}
if (props.thickness) {
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
}
return styles;
});
useRender(() => _createVNode("hr", {
"class": [{
'v-divider': true,
'v-divider--inset': props.inset,
'v-divider--vertical': props.vertical
}, themeClasses.value, textColorClasses.value, props.class],
"style": [dividerStyles.value, textColorStyles.value, props.style],
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
"role": `${attrs.role || 'separator'}`
}, null));
return {};
}
});
//# sourceMappingURL=VDivider.mjs.map

View File

@ -0,0 +1 @@
{"version":3,"file":"VDivider.mjs","names":["useTextColor","makeComponentProps","makeThemeProps","provideTheme","computed","toRef","convertToUnit","genericComponent","propsFactory","useRender","makeVDividerProps","color","String","inset","Boolean","length","Number","thickness","vertical","VDivider","name","props","setup","_ref","attrs","themeClasses","textColorClasses","textColorStyles","dividerStyles","styles","_createVNode","value","class","style","role","undefined"],"sources":["../../../src/components/VDivider/VDivider.tsx"],"sourcesContent":["// Styles\nimport './VDivider.sass'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\ntype DividerKey = 'borderRightWidth' | 'borderTopWidth' | 'maxHeight' | 'maxWidth'\ntype DividerStyles = Partial<Record<DividerKey, string>>\n\nexport const makeVDividerProps = propsFactory({\n color: String,\n inset: Boolean,\n length: [Number, String],\n thickness: [Number, String],\n vertical: Boolean,\n\n ...makeComponentProps(),\n ...makeThemeProps(),\n}, 'VDivider')\n\nexport const VDivider = genericComponent()({\n name: 'VDivider',\n\n props: makeVDividerProps(),\n\n setup (props, { attrs }) {\n const { themeClasses } = provideTheme(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const dividerStyles = computed(() => {\n const styles: DividerStyles = {}\n\n if (props.length) {\n styles[props.vertical ? 'maxHeight' : 'maxWidth'] = convertToUnit(props.length)\n }\n\n if (props.thickness) {\n styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness)\n }\n\n return styles\n })\n\n useRender(() => (\n <hr\n class={[\n {\n 'v-divider': true,\n 'v-divider--inset': props.inset,\n 'v-divider--vertical': props.vertical,\n },\n themeClasses.value,\n textColorClasses.value,\n props.class,\n ]}\n style={[\n dividerStyles.value,\n textColorStyles.value,\n props.style,\n ]}\n aria-orientation={\n !attrs.role || attrs.role === 'separator'\n ? props.vertical ? 'vertical' : 'horizontal'\n : undefined\n }\n role={ `${attrs.role || 'separator'}` }\n />\n ))\n\n return {}\n },\n})\n\nexport type VDivider = InstanceType<typeof VDivider>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,YAAY;AAAA,SACZC,kBAAkB;AAAA,SAClBC,cAAc,EAAEC,YAAY,uCAErC;AACA,SAASC,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,aAAa,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAKjE,OAAO,MAAMC,iBAAiB,GAAGF,YAAY,CAAC;EAC5CG,KAAK,EAAEC,MAAM;EACbC,KAAK,EAAEC,OAAO;EACdC,MAAM,EAAE,CAACC,MAAM,EAAEJ,MAAM,CAAC;EACxBK,SAAS,EAAE,CAACD,MAAM,EAAEJ,MAAM,CAAC;EAC3BM,QAAQ,EAAEJ,OAAO;EAEjB,GAAGb,kBAAkB,CAAC,CAAC;EACvB,GAAGC,cAAc,CAAC;AACpB,CAAC,EAAE,UAAU,CAAC;AAEd,OAAO,MAAMiB,QAAQ,GAAGZ,gBAAgB,CAAC,CAAC,CAAC;EACzCa,IAAI,EAAE,UAAU;EAEhBC,KAAK,EAAEX,iBAAiB,CAAC,CAAC;EAE1BY,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE;IAAa,CAAC,GAAGtB,YAAY,CAACkB,KAAK,CAAC;IAC5C,MAAM;MAAEK,gBAAgB;MAAEC;IAAgB,CAAC,GAAG3B,YAAY,CAACK,KAAK,CAACgB,KAAK,EAAE,OAAO,CAAC,CAAC;IACjF,MAAMO,aAAa,GAAGxB,QAAQ,CAAC,MAAM;MACnC,MAAMyB,MAAqB,GAAG,CAAC,CAAC;MAEhC,IAAIR,KAAK,CAACN,MAAM,EAAE;QAChBc,MAAM,CAACR,KAAK,CAACH,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC,GAAGZ,aAAa,CAACe,KAAK,CAACN,MAAM,CAAC;MACjF;MAEA,IAAIM,KAAK,CAACJ,SAAS,EAAE;QACnBY,MAAM,CAACR,KAAK,CAACH,QAAQ,GAAG,kBAAkB,GAAG,gBAAgB,CAAC,GAAGZ,aAAa,CAACe,KAAK,CAACJ,SAAS,CAAC;MACjG;MAEA,OAAOY,MAAM;IACf,CAAC,CAAC;IAEFpB,SAAS,CAAC,MAAAqB,YAAA;MAAA,SAEC,CACL;QACE,WAAW,EAAE,IAAI;QACjB,kBAAkB,EAAET,KAAK,CAACR,KAAK;QAC/B,qBAAqB,EAAEQ,KAAK,CAACH;MAC/B,CAAC,EACDO,YAAY,CAACM,KAAK,EAClBL,gBAAgB,CAACK,KAAK,EACtBV,KAAK,CAACW,KAAK,CACZ;MAAA,SACM,CACLJ,aAAa,CAACG,KAAK,EACnBJ,eAAe,CAACI,KAAK,EACrBV,KAAK,CAACY,KAAK,CACZ;MAAA,oBAEC,CAACT,KAAK,CAACU,IAAI,IAAIV,KAAK,CAACU,IAAI,KAAK,WAAW,GACrCb,KAAK,CAACH,QAAQ,GAAG,UAAU,GAAG,YAAY,GAC1CiB,SAAS;MAAA,QAEP,GAAEX,KAAK,CAACU,IAAI,IAAI,WAAY;IAAC,QAExC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}

View File

@ -0,0 +1,33 @@
@use '../../styles/tools'
@use './variables' as *
.v-divider
display: block
flex: $divider-flex
height: 0px
max-height: 0px
opacity: $divider-opacity
transition: inherit
@include tools.border($divider-border...)
&--vertical
align-self: stretch
border-width: $divider-vertical-border-width
display: inline-flex
height: inherit
margin-left: $divider-vertical-margin-left
max-height: 100%
max-width: 0px
vertical-align: text-bottom
width: 0px
&--inset
&:not(.v-divider--vertical)
max-width: $divider-inset-max-width
margin-inline-start: $divider-inset-margin
&.v-divider--vertical
margin-bottom: $divider-vertical-inset-margin-bottom
margin-top: $divider-vertical-inset-margin-top
max-height: $divider-vertical-inset-max-height

View File

@ -0,0 +1,24 @@
@use '../../styles/settings';
// VDivider
$divider-border-color: null !default;
$divider-border-style: settings.$border-style-root !default;
$divider-border-width: thin 0 0 0 !default;
$divider-flex: 1 1 100% !default;
$divider-inset-margin: 72px !default;
$divider-inset-max-width: calc(100% - #{$divider-inset-margin}) !default;
$divider-margin: 8px !default;
$divider-opacity: var(--v-border-opacity) !default;
$divider-vertical-border-width: 0 thin 0 0 !default;
$divider-vertical-inset-margin-bottom: $divider-margin !default;
$divider-vertical-inset-margin-top: $divider-margin !default;
$divider-vertical-inset-max-height: calc(100% - #{$divider-margin * 2}) !default;
$divider-vertical-margin-left: -1px !default;
// Lists
$divider-border: (
$divider-border-color,
$divider-border-style,
$divider-border-width
) !default;

View File

@ -0,0 +1,143 @@
import * as vue from 'vue';
import { ComponentPropsOptions, ExtractPropTypes } from 'vue';
interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
}
declare const VDivider: {
new (...args: any[]): vue.CreateComponentPublicInstance<{
inset: boolean;
style: vue.StyleValue;
vertical: boolean;
} & {
length?: string | number | undefined;
color?: string | undefined;
class?: any;
theme?: string | undefined;
thickness?: string | number | undefined;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
default?: (() => vue.VNodeChild) | undefined;
};
'v-slots'?: {
default?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
inset: boolean;
style: vue.StyleValue;
vertical: boolean;
} & {
length?: string | number | undefined;
color?: string | undefined;
class?: any;
theme?: string | undefined;
thickness?: string | number | undefined;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
default?: (() => vue.VNodeChild) | undefined;
};
'v-slots'?: {
default?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
}, {
inset: boolean;
style: vue.StyleValue;
vertical: boolean;
}, true, {}, vue.SlotsType<Partial<{
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
}>>, {
P: {};
B: {};
D: {};
C: {};
M: {};
Defaults: {};
}, {
inset: boolean;
style: vue.StyleValue;
vertical: boolean;
} & {
length?: string | number | undefined;
color?: string | undefined;
class?: any;
theme?: string | undefined;
thickness?: string | number | undefined;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
default?: (() => vue.VNodeChild) | undefined;
};
'v-slots'?: {
default?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
}, {}, {}, {}, {}, {
inset: boolean;
style: vue.StyleValue;
vertical: boolean;
}>;
__isFragment?: undefined;
__isTeleport?: undefined;
__isSuspense?: undefined;
} & vue.ComponentOptionsBase<{
inset: boolean;
style: vue.StyleValue;
vertical: boolean;
} & {
length?: string | number | undefined;
color?: string | undefined;
class?: any;
theme?: string | undefined;
thickness?: string | number | undefined;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
default?: (() => vue.VNodeChild) | undefined;
};
'v-slots'?: {
default?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
inset: boolean;
style: vue.StyleValue;
vertical: boolean;
}, {}, string, vue.SlotsType<Partial<{
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
theme: StringConstructor;
class: vue.PropType<any>;
style: {
type: vue.PropType<vue.StyleValue>;
default: null;
};
color: StringConstructor;
inset: BooleanConstructor;
length: (StringConstructor | NumberConstructor)[];
thickness: (StringConstructor | NumberConstructor)[];
vertical: BooleanConstructor;
}, vue.ExtractPropTypes<{
theme: StringConstructor;
class: vue.PropType<any>;
style: {
type: vue.PropType<vue.StyleValue>;
default: null;
};
color: StringConstructor;
inset: BooleanConstructor;
length: (StringConstructor | NumberConstructor)[];
thickness: (StringConstructor | NumberConstructor)[];
vertical: BooleanConstructor;
}>>;
type VDivider = InstanceType<typeof VDivider>;
export { VDivider };

View File

@ -0,0 +1,2 @@
export { VDivider } from "./VDivider.mjs";
//# sourceMappingURL=index.mjs.map

View File

@ -0,0 +1 @@
{"version":3,"file":"index.mjs","names":["VDivider"],"sources":["../../../src/components/VDivider/index.ts"],"sourcesContent":["export { VDivider } from './VDivider'\n"],"mappings":"SAASA,QAAQ"}