Begin add MonParcours + Update css work

This commit is contained in:
Florian RICHER 2023-10-10 22:59:08 +02:00
parent 1e27d18cb3
commit f4dba8213d
21 changed files with 1499 additions and 36 deletions

View file

@ -4,11 +4,11 @@ use leptos_icons::*;
#[component]
pub fn Timeline(
#[prop(default=vec![])] elements: Vec<TimelineElement>,
#[prop(default = vec![])] elements: Vec<TimelineElement>,
) -> impl IntoView {
view! {
<div class="w-full px-5">
<ul class="list-none py-5 px-0 relative w-full max-w-5xl mx-auto before:top-0 before:bottom-0 before:left-0 before:md:left-1/2 before:absolute before:content-[\"\"] before:w-2 before:bg-primary/10 before:dark:bg-dark_primary/10 before:shadow-md before:shadow-primary/5 before:dark:shadow-dark_primary/5">
<div class="timeline">
<ul>
{ elements.collect_view() }
</ul>
</div>
@ -16,11 +16,11 @@ pub fn Timeline(
}
#[slot]
pub struct TimelineElementLabel {
pub struct TimelineLabel {
children: ChildrenFn,
}
impl IntoView for TimelineElementLabel {
impl IntoView for TimelineLabel {
fn into_view(self) -> View {
let view = view! { <>{ (self.children)() }</> };
view.into_view()
@ -29,8 +29,8 @@ impl IntoView for TimelineElementLabel {
#[slot]
pub struct TimelineElement {
#[prop(default=vec![])] labels: Vec<TimelineElementLabel>,
#[prop(default=vec![])] cards: Vec<TimelineCard>,
#[prop(default = vec![])] labels: Vec<TimelineLabel>,
#[prop(default = vec![])] cards: Vec<TimelineCard>,
}
impl IntoView for TimelineElement {
@ -62,9 +62,25 @@ impl IntoView for TimelineCardContent {
}
#[slot]
pub struct TimelineCardSummary {
pub struct TimelineCardTag {
children: ChildrenFn,
}
impl IntoView for TimelineCardTag {
fn into_view(self) -> View {
let view = view! {
<>
{ (self.children)() }
</>
};
view.into_view()
}
}
#[slot]
pub struct TimelineCardSummary {
#[prop(default = vec![])] tags: Vec<TimelineCardTag>,
children: ChildrenFn,
tags: ChildrenFn,
}
impl IntoView for TimelineCardSummary {
@ -75,7 +91,7 @@ impl IntoView for TimelineCardSummary {
{
view! {
<div class="flex flex-wrap gap-2 mt-2">
{ (self.tags)() }
{ self.tags.collect_view() }
</div>
}
}
@ -87,13 +103,13 @@ impl IntoView for TimelineCardSummary {
#[slot]
pub struct TimelineCard {
#[prop(default=vec![])] titles: Vec<TimelineCardSummary>,
#[prop(default=vec![])] cards: Vec<TimelineCardContent>,
#[prop(default = vec![])] titles: Vec<TimelineCardSummary>,
#[prop(default = vec![])] cards: Vec<TimelineCardContent>,
}
impl IntoView for TimelineCard {
fn into_view(self) -> View {
let view = view! {
let view = view! {
<details>
<summary>
{ self.titles.collect_view() }