feat(frontend): layout header + drawer + router (9 routes)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
123
frontend/src/components/AppDrawer.vue.js
Normal file
123
frontend/src/components/AppDrawer.vue.js
Normal file
@@ -0,0 +1,123 @@
|
||||
import { RouterLink } from 'vue-router';
|
||||
const __VLS_props = defineProps();
|
||||
const __VLS_emit = defineEmits(['close']);
|
||||
const links = [
|
||||
{ to: '/', label: 'Dashboard' },
|
||||
{ to: '/jardins', label: 'Jardins' },
|
||||
{ to: '/varietes', label: 'Variétés' },
|
||||
{ to: '/plantations', label: 'Plantations' },
|
||||
{ to: '/taches', label: 'Tâches' },
|
||||
{ to: '/planning', label: 'Planning' },
|
||||
{ to: '/lunaire', label: 'Calendrier lunaire' },
|
||||
{ to: '/reglages', label: 'Réglages' },
|
||||
];
|
||||
debugger; /* PartiallyEnd: #3632/scriptSetup.vue */
|
||||
const __VLS_ctx = {};
|
||||
let __VLS_components;
|
||||
let __VLS_directives;
|
||||
// CSS variable injection
|
||||
// CSS variable injection end
|
||||
const __VLS_0 = {}.Transition;
|
||||
/** @type {[typeof __VLS_components.Transition, typeof __VLS_components.Transition, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_1 = __VLS_asFunctionalComponent(__VLS_0, new __VLS_0({
|
||||
name: "slide",
|
||||
}));
|
||||
const __VLS_2 = __VLS_1({
|
||||
name: "slide",
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_1));
|
||||
__VLS_3.slots.default;
|
||||
if (__VLS_ctx.open) {
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.div, __VLS_intrinsicElements.div)({
|
||||
...{ onClick: (...[$event]) => {
|
||||
if (!(__VLS_ctx.open))
|
||||
return;
|
||||
__VLS_ctx.$emit('close');
|
||||
} },
|
||||
...{ class: "fixed inset-0 z-40 flex md:hidden" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.nav, __VLS_intrinsicElements.nav)({
|
||||
...{ class: "bg-bg-hard w-64 h-full p-6 flex flex-col gap-1 border-r border-bg-soft shadow-2xl" },
|
||||
});
|
||||
__VLS_asFunctionalElement(__VLS_intrinsicElements.span, __VLS_intrinsicElements.span)({
|
||||
...{ class: "text-green font-bold text-xl mb-6" },
|
||||
});
|
||||
for (const [l] of __VLS_getVForSourceType((__VLS_ctx.links))) {
|
||||
const __VLS_4 = {}.RouterLink;
|
||||
/** @type {[typeof __VLS_components.RouterLink, typeof __VLS_components.RouterLink, ]} */ ;
|
||||
// @ts-ignore
|
||||
const __VLS_5 = __VLS_asFunctionalComponent(__VLS_4, new __VLS_4({
|
||||
...{ 'onClick': {} },
|
||||
key: (l.to),
|
||||
to: (l.to),
|
||||
...{ class: "text-text-muted hover:text-text py-2 px-3 rounded-lg text-sm transition-colors" },
|
||||
activeClass: "bg-bg-soft text-green",
|
||||
}));
|
||||
const __VLS_6 = __VLS_5({
|
||||
...{ 'onClick': {} },
|
||||
key: (l.to),
|
||||
to: (l.to),
|
||||
...{ class: "text-text-muted hover:text-text py-2 px-3 rounded-lg text-sm transition-colors" },
|
||||
activeClass: "bg-bg-soft text-green",
|
||||
}, ...__VLS_functionalComponentArgsRest(__VLS_5));
|
||||
let __VLS_8;
|
||||
let __VLS_9;
|
||||
let __VLS_10;
|
||||
const __VLS_11 = {
|
||||
onClick: (...[$event]) => {
|
||||
if (!(__VLS_ctx.open))
|
||||
return;
|
||||
__VLS_ctx.$emit('close');
|
||||
}
|
||||
};
|
||||
__VLS_7.slots.default;
|
||||
(l.label);
|
||||
var __VLS_7;
|
||||
}
|
||||
}
|
||||
var __VLS_3;
|
||||
/** @type {__VLS_StyleScopedClasses['fixed']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['inset-0']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['z-40']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['md:hidden']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['bg-bg-hard']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['w-64']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['h-full']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['p-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['flex-col']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['gap-1']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-r']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['border-bg-soft']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['shadow-2xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-green']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['font-bold']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-xl']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['mb-6']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-text-muted']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['hover:text-text']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['py-2']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['px-3']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['rounded-lg']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['text-sm']} */ ;
|
||||
/** @type {__VLS_StyleScopedClasses['transition-colors']} */ ;
|
||||
var __VLS_dollars;
|
||||
const __VLS_self = (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {
|
||||
RouterLink: RouterLink,
|
||||
links: links,
|
||||
};
|
||||
},
|
||||
emits: {},
|
||||
__typeProps: {},
|
||||
});
|
||||
export default (await import('vue')).defineComponent({
|
||||
setup() {
|
||||
return {};
|
||||
},
|
||||
emits: {},
|
||||
__typeProps: {},
|
||||
});
|
||||
; /* PartiallyEnd: #4569/main.vue */
|
||||
Reference in New Issue
Block a user