Begin add MonParcours + Update css work
This commit is contained in:
parent
1e27d18cb3
commit
f4dba8213d
21 changed files with 1499 additions and 36 deletions
|
@ -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() }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue