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

52
VApp/node_modules/vuetify/lib/labs/VPicker/VPicker.css generated vendored Normal file
View File

@ -0,0 +1,52 @@
.v-picker.v-sheet {
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));
border-radius: 4px;
display: grid;
grid-auto-rows: min-content;
grid-template-areas: "title" "header" "body";
overflow: hidden;
}
.v-picker.v-sheet.v-picker--with-actions {
grid-template-areas: "title" "header" "body" "actions";
}
.v-picker__body {
grid-area: body;
}
.v-picker__header {
grid-area: header;
}
.v-picker__actions {
grid-area: actions;
padding: 0 12px 12px 12px;
display: flex;
align-items: center;
justify-content: flex-end;
}
.v-picker__actions .v-btn {
min-width: 48px;
}
.v-picker__actions .v-btn:not(:last-child) {
margin-inline-end: 8px;
}
.v-picker--landscape {
grid-template-areas: "title" "header body" "header body";
}
.v-picker--landscape.v-picker--with-actions {
grid-template-areas: "title" "header body" "header actions";
}
.v-picker-title {
text-transform: uppercase;
font-size: 0.75rem;
grid-area: title;
padding-inline: 24px 12px;
padding-top: 16px;
padding-bottom: 16px;
font-weight: 600;
letter-spacing: 0.1666666667em;
}

70
VApp/node_modules/vuetify/lib/labs/VPicker/VPicker.mjs generated vendored Normal file
View File

@ -0,0 +1,70 @@
import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
// Styles
import "./VPicker.css";
// Components
import { VPickerTitle } from "./VPickerTitle.mjs";
import { VDefaultsProvider } from "../../components/VDefaultsProvider/VDefaultsProvider.mjs";
import { makeVSheetProps, VSheet } from "../../components/VSheet/VSheet.mjs"; // Composables
import { useBackgroundColor } from "../../composables/color.mjs"; // Utilities
import { toRef } from 'vue';
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
export const makeVPickerProps = propsFactory({
bgColor: String,
landscape: Boolean,
title: String,
hideHeader: Boolean,
...makeVSheetProps()
}, 'VPicker');
export const VPicker = genericComponent()({
name: 'VPicker',
props: makeVPickerProps(),
setup(props, _ref) {
let {
slots
} = _ref;
const {
backgroundColorClasses,
backgroundColorStyles
} = useBackgroundColor(toRef(props, 'color'));
useRender(() => {
const sheetProps = VSheet.filterProps(props);
const hasTitle = !!(props.title || slots.title);
return _createVNode(VSheet, _mergeProps(sheetProps, {
"color": props.bgColor,
"class": ['v-picker', {
'v-picker--landscape': props.landscape,
'v-picker--with-actions': !!slots.actions
}, props.class],
"style": props.style
}), {
default: () => [!props.hideHeader && _createVNode("div", {
"key": "header",
"class": [backgroundColorClasses.value],
"style": [backgroundColorStyles.value]
}, [hasTitle && _createVNode(VPickerTitle, {
"key": "picker-title"
}, {
default: () => [slots.title?.() ?? props.title]
}), slots.header && _createVNode("div", {
"class": "v-picker__header"
}, [slots.header()])]), _createVNode("div", {
"class": "v-picker__body"
}, [slots.default?.()]), slots.actions && _createVNode(VDefaultsProvider, {
"defaults": {
VBtn: {
slim: true,
variant: 'text'
}
}
}, {
default: () => [_createVNode("div", {
"class": "v-picker__actions"
}, [slots.actions()])]
})]
});
});
return {};
}
});
//# sourceMappingURL=VPicker.mjs.map

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,50 @@
@use '../../styles/settings'
@use '../../styles/tools'
@use './variables' as *
.v-picker.v-sheet
@include tools.elevation($picker-elevation)
@include tools.rounded($picker-border-radius)
display: grid
grid-auto-rows: min-content
grid-template-areas: "title" "header" "body"
overflow: hidden
&.v-picker--with-actions
grid-template-areas: "title" "header" "body" "actions"
.v-picker__body
grid-area: body
.v-picker__header
grid-area: header
.v-picker__actions
grid-area: actions
padding: 0 12px 12px 12px
display: flex
align-items: center
justify-content: flex-end
.v-btn
min-width: 48px
&:not(:last-child)
margin-inline-end: 8px
.v-picker--landscape
grid-template-areas: "title" "header body" "header body"
.v-picker--landscape.v-picker--with-actions
grid-template-areas: "title" "header body" "header actions"
.v-picker-title
text-transform: uppercase
font-size: .75rem
grid-area: title
padding-inline: 24px 12px
padding-top: 16px
padding-bottom: 16px
font-weight: 600
letter-spacing: .1666666667em

View File

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

View File

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

View File

@ -0,0 +1,9 @@
@use '../../styles/settings';
$picker-border-radius: settings.$border-radius-root !default;
$picker-elevation: 0 !default;
$picker-title-padding: 16px !default;
$picker-inactive-btn-opacity: .6 !default;
$picker-active-btn-opacity: 1 !default;
$picker-landscape-title-width: 170px !default;
$picker-font-size: 1rem !default;

419
VApp/node_modules/vuetify/lib/labs/VPicker/index.d.mts generated vendored Normal file
View File

@ -0,0 +1,419 @@
import * as vue from 'vue';
import { ComponentPropsOptions, ExtractPropTypes } from 'vue';
declare const block: readonly ["top", "bottom"];
declare const inline: readonly ["start", "end", "left", "right"];
type Tblock = typeof block[number];
type Tinline = typeof inline[number];
type Anchor = Tblock | Tinline | 'center' | 'center center' | `${Tblock} ${Tinline | 'center'}` | `${Tinline} ${Tblock | 'center'}`;
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 VPicker: {
new (...args: any[]): vue.CreateComponentPublicInstance<{
style: vue.StyleValue;
tag: string;
landscape: boolean;
hideHeader: boolean;
} & {
location?: Anchor | undefined;
height?: string | number | undefined;
width?: string | number | undefined;
border?: string | number | boolean | undefined;
color?: string | undefined;
maxHeight?: string | number | undefined;
maxWidth?: string | number | undefined;
minHeight?: string | number | undefined;
minWidth?: string | number | undefined;
position?: "fixed" | "absolute" | "static" | "sticky" | "relative" | undefined;
title?: string | undefined;
class?: any;
elevation?: string | number | undefined;
theme?: string | undefined;
rounded?: string | number | boolean | undefined;
bgColor?: string | undefined;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
header?: (() => vue.VNodeChild) | undefined;
default?: (() => vue.VNodeChild) | undefined;
actions?: (() => vue.VNodeChild) | undefined;
title?: (() => vue.VNodeChild) | undefined;
};
'v-slots'?: {
header?: false | (() => vue.VNodeChild) | undefined;
default?: false | (() => vue.VNodeChild) | undefined;
actions?: false | (() => vue.VNodeChild) | undefined;
title?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:header"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:actions"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:title"?: false | (() => vue.VNodeChild) | undefined;
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
style: vue.StyleValue;
tag: string;
landscape: boolean;
hideHeader: boolean;
} & {
location?: Anchor | undefined;
height?: string | number | undefined;
width?: string | number | undefined;
border?: string | number | boolean | undefined;
color?: string | undefined;
maxHeight?: string | number | undefined;
maxWidth?: string | number | undefined;
minHeight?: string | number | undefined;
minWidth?: string | number | undefined;
position?: "fixed" | "absolute" | "static" | "sticky" | "relative" | undefined;
title?: string | undefined;
class?: any;
elevation?: string | number | undefined;
theme?: string | undefined;
rounded?: string | number | boolean | undefined;
bgColor?: string | undefined;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
header?: (() => vue.VNodeChild) | undefined;
default?: (() => vue.VNodeChild) | undefined;
actions?: (() => vue.VNodeChild) | undefined;
title?: (() => vue.VNodeChild) | undefined;
};
'v-slots'?: {
header?: false | (() => vue.VNodeChild) | undefined;
default?: false | (() => vue.VNodeChild) | undefined;
actions?: false | (() => vue.VNodeChild) | undefined;
title?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:header"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:actions"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:title"?: false | (() => vue.VNodeChild) | undefined;
}, {
style: vue.StyleValue;
tag: string;
landscape: boolean;
rounded: string | number | boolean;
hideHeader: boolean;
}, true, {}, vue.SlotsType<Partial<{
header: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
actions: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
title: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
}>>, {
P: {};
B: {};
D: {};
C: {};
M: {};
Defaults: {};
}, {
style: vue.StyleValue;
tag: string;
landscape: boolean;
hideHeader: boolean;
} & {
location?: Anchor | undefined;
height?: string | number | undefined;
width?: string | number | undefined;
border?: string | number | boolean | undefined;
color?: string | undefined;
maxHeight?: string | number | undefined;
maxWidth?: string | number | undefined;
minHeight?: string | number | undefined;
minWidth?: string | number | undefined;
position?: "fixed" | "absolute" | "static" | "sticky" | "relative" | undefined;
title?: string | undefined;
class?: any;
elevation?: string | number | undefined;
theme?: string | undefined;
rounded?: string | number | boolean | undefined;
bgColor?: string | undefined;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
header?: (() => vue.VNodeChild) | undefined;
default?: (() => vue.VNodeChild) | undefined;
actions?: (() => vue.VNodeChild) | undefined;
title?: (() => vue.VNodeChild) | undefined;
};
'v-slots'?: {
header?: false | (() => vue.VNodeChild) | undefined;
default?: false | (() => vue.VNodeChild) | undefined;
actions?: false | (() => vue.VNodeChild) | undefined;
title?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:header"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:actions"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:title"?: false | (() => vue.VNodeChild) | undefined;
}, {}, {}, {}, {}, {
style: vue.StyleValue;
tag: string;
landscape: boolean;
rounded: string | number | boolean;
hideHeader: boolean;
}>;
__isFragment?: undefined;
__isTeleport?: undefined;
__isSuspense?: undefined;
} & vue.ComponentOptionsBase<{
style: vue.StyleValue;
tag: string;
landscape: boolean;
hideHeader: boolean;
} & {
location?: Anchor | undefined;
height?: string | number | undefined;
width?: string | number | undefined;
border?: string | number | boolean | undefined;
color?: string | undefined;
maxHeight?: string | number | undefined;
maxWidth?: string | number | undefined;
minHeight?: string | number | undefined;
minWidth?: string | number | undefined;
position?: "fixed" | "absolute" | "static" | "sticky" | "relative" | undefined;
title?: string | undefined;
class?: any;
elevation?: string | number | undefined;
theme?: string | undefined;
rounded?: string | number | boolean | undefined;
bgColor?: string | undefined;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
header?: (() => vue.VNodeChild) | undefined;
default?: (() => vue.VNodeChild) | undefined;
actions?: (() => vue.VNodeChild) | undefined;
title?: (() => vue.VNodeChild) | undefined;
};
'v-slots'?: {
header?: false | (() => vue.VNodeChild) | undefined;
default?: false | (() => vue.VNodeChild) | undefined;
actions?: false | (() => vue.VNodeChild) | undefined;
title?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:header"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:actions"?: false | (() => vue.VNodeChild) | undefined;
"v-slot:title"?: false | (() => vue.VNodeChild) | undefined;
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
style: vue.StyleValue;
tag: string;
landscape: boolean;
rounded: string | number | boolean;
hideHeader: boolean;
}, {}, string, vue.SlotsType<Partial<{
header: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
actions: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
title: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
theme: StringConstructor;
tag: {
type: StringConstructor;
default: string;
};
rounded: {
type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
default: undefined;
};
position: {
type: vue.PropType<"fixed" | "absolute" | "static" | "sticky" | "relative">;
validator: (v: any) => boolean;
};
location: vue.PropType<Anchor>;
elevation: {
type: (StringConstructor | NumberConstructor)[];
validator(v: any): boolean;
};
height: (StringConstructor | NumberConstructor)[];
maxHeight: (StringConstructor | NumberConstructor)[];
maxWidth: (StringConstructor | NumberConstructor)[];
minHeight: (StringConstructor | NumberConstructor)[];
minWidth: (StringConstructor | NumberConstructor)[];
width: (StringConstructor | NumberConstructor)[];
class: vue.PropType<any>;
style: {
type: vue.PropType<vue.StyleValue>;
default: null;
};
border: (StringConstructor | BooleanConstructor | NumberConstructor)[];
color: StringConstructor;
bgColor: StringConstructor;
landscape: BooleanConstructor;
title: StringConstructor;
hideHeader: BooleanConstructor;
}, vue.ExtractPropTypes<{
theme: StringConstructor;
tag: {
type: StringConstructor;
default: string;
};
rounded: {
type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
default: undefined;
};
position: {
type: vue.PropType<"fixed" | "absolute" | "static" | "sticky" | "relative">;
validator: (v: any) => boolean;
};
location: vue.PropType<Anchor>;
elevation: {
type: (StringConstructor | NumberConstructor)[];
validator(v: any): boolean;
};
height: (StringConstructor | NumberConstructor)[];
maxHeight: (StringConstructor | NumberConstructor)[];
maxWidth: (StringConstructor | NumberConstructor)[];
minHeight: (StringConstructor | NumberConstructor)[];
minWidth: (StringConstructor | NumberConstructor)[];
width: (StringConstructor | NumberConstructor)[];
class: vue.PropType<any>;
style: {
type: vue.PropType<vue.StyleValue>;
default: null;
};
border: (StringConstructor | BooleanConstructor | NumberConstructor)[];
color: StringConstructor;
bgColor: StringConstructor;
landscape: BooleanConstructor;
title: StringConstructor;
hideHeader: BooleanConstructor;
}>>;
type VPicker = InstanceType<typeof VPicker>;
declare const VPickerTitle: {
new (...args: any[]): vue.CreateComponentPublicInstance<{
style: vue.StyleValue;
tag: string;
} & {
class?: any;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
default?: (() => vue.VNodeChild) | undefined;
};
'v-slots'?: {
default?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
}, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
style: vue.StyleValue;
tag: string;
} & {
class?: any;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
default?: (() => vue.VNodeChild) | undefined;
};
'v-slots'?: {
default?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
}, {
style: vue.StyleValue;
tag: string;
}, true, {}, vue.SlotsType<Partial<{
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
}>>, {
P: {};
B: {};
D: {};
C: {};
M: {};
Defaults: {};
}, {
style: vue.StyleValue;
tag: string;
} & {
class?: any;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
default?: (() => vue.VNodeChild) | undefined;
};
'v-slots'?: {
default?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
}, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>, {}, {}, {}, {
style: vue.StyleValue;
tag: string;
}>;
__isFragment?: undefined;
__isTeleport?: undefined;
__isSuspense?: undefined;
} & vue.ComponentOptionsBase<{
style: vue.StyleValue;
tag: string;
} & {
class?: any;
} & {
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
default?: (() => vue.VNodeChild) | undefined;
};
'v-slots'?: {
default?: false | (() => vue.VNodeChild) | undefined;
} | undefined;
} & {
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
}, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
style: vue.StyleValue;
tag: string;
}, {}, string, vue.SlotsType<Partial<{
default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
[key: string]: any;
}>[];
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
class: vue.PropType<any>;
style: {
type: vue.PropType<vue.StyleValue>;
default: null;
};
tag: {
type: StringConstructor;
default: string;
};
}, vue.ExtractPropTypes<{
class: vue.PropType<any>;
style: {
type: vue.PropType<vue.StyleValue>;
default: null;
};
tag: {
type: StringConstructor;
default: string;
};
}>>;
type VPickerTitle = InstanceType<typeof VPickerTitle>;
export { VPicker, VPickerTitle };

3
VApp/node_modules/vuetify/lib/labs/VPicker/index.mjs generated vendored Normal file
View File

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

View File

@ -0,0 +1 @@
{"version":3,"file":"index.mjs","names":["VPicker","VPickerTitle"],"sources":["../../../src/labs/VPicker/index.ts"],"sourcesContent":["export { VPicker } from './VPicker'\nexport { VPickerTitle } from './VPickerTitle'\n"],"mappings":"SAASA,OAAO;AAAA,SACPC,YAAY"}