11< dialog id ="bottom-sidebar " onclick ="onBottomSidebarDialogClick(event) " class ="bg-transparent "
2- style ="position: fixed; left: 0px; top: 0px; transform: translate(0px, 58px); min-width: max-content; --radix-popper-transform-origin: 0% 0px; will-change: transform; z-index: 50; --radix-popper-available-width: 504px; --radix-popper-available-height: 857px; --radix-popper-anchor-width: 72.94999694824219px; --radix-popper-anchor-height: 32px; ">
2+ style ="position: fixed; left: 0px; top: 0px; transform: translate(0px, 58px); min-width: max-content; --radix-popper-transform-origin: 0% 0px; will-change: transform; z-index: 50; ">
33 < div data-side ="bottom " data-align ="start " data-state ="open " role ="dialog " data-slot ="popover-content "
4- class ="text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 origin-(--radix-popover-content-transform-origin) border outline-hidden bg-background/90 no-scrollbar h-(--radix-popper-available-height) w-(--radix-popper-available-width) overflow-y-auto rounded-none border-none p-0 shadow-none backdrop-blur duration-100 "
5- style ="--radix-popover-content-transform-origin: var(--radix-popper-transform-origin); --radix-popover-content-available-width: var(--radix-popper-available-width); --radix-popover-content-available- height: var(--radix-popper-available-height); --radix-popover-trigger-width: var(--radix-popper-anchor-width); --radix-popover-trigger-height: var(--radix-popper-anchor-height); "
4+ class ="text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 bg-background no-scrollbar z-50 w-64 overflow-y-auto rounded-lg border shadow-lg outline-hidden duration-100 "
5+ style ="max- height: calc(100vh - 80px) "
66 tabindex ="-1 ">
7- < div class ="flex flex-col gap-12 overflow-auto px-6 py-6 ">
7+ < div class ="flex flex-col p-2 ">
88 {% if nav|length > 1 %}
9- {% set top_items = nav|selectattr("is_page")|sort(attribute="meta.order") %}
10- {% set other_items = nav|rejectattr("is_page")|list %}
9+ {% set top_items = nav|selectattr("is_page")|list %}
10+ {% set top_links = nav|selectattr("is_link")|list %}
11+ {% set other_items = nav|rejectattr("is_page")|rejectattr("is_link")|list %}
1112
13+ {# Top level pages #}
1214 {% if top_items|length > 0 %}
13- < div class ="flex flex-col gap-4 ">
14- < div class ="text-muted-foreground text-sm font-medium "> Menu</ div >
15- < div class ="flex flex-col gap-3 ">
16- {% for top_item in top_items %}
17- < a class ="text-2xl font-medium " href ="{{ top_item.url | url }} ">
18- {% if top_item.meta and top_item.meta.sidebar_title %}
19- {{ top_item.meta.sidebar_title }}
20- {% else %}
21- {{ top_item.title }}
22- {% endif %}
23- </ a >
24- {% endfor %}
25- </ div >
15+ < div class ="mb-2 flex flex-col gap-0.5 ">
16+ {% for top_item in top_items %}
17+ < a class ="hover:bg-accent {% if top_item.active %}bg-accent text-accent-foreground{% endif %} flex items-center gap-2 rounded-md p-2 text-sm font-medium "
18+ href ="{{ top_item.url | url }} ">
19+ {% if top_item.meta and top_item.meta.sidebar_title %}
20+ {{ top_item.meta.sidebar_title }}
21+ {% else %}
22+ {{ top_item.title }}
23+ {% endif %}
24+ </ a >
25+ {% endfor %}
2626 </ div >
2727 {% endif %}
2828
29- {% if other_items|length > 0 %}
30- < div class ="flex flex-col gap-8 ">
31- {% for top_item in other_items %}
32- < div class ="flex flex-col gap-4 ">
33- < div class ="text-muted-foreground text-sm font-medium "> {{ top_item.title }}</ div >
34- {% if top_item.children %}
35- < div class ="flex flex-col gap-3 ">
36- {% for sidebar_item in top_item.children|selectattr("is_page")|sort(attribute="meta.order") %}
37- < a class ="text-2xl font-medium " href ="{{ sidebar_item.url | url}} ">
38- {% if sidebar_item.meta and sidebar_item.meta.sidebar_title %}
39- {{ sidebar_item.meta.sidebar_title }}
29+ {# Sections #}
30+ {% for section in other_items %}
31+ {% if section.children %}
32+ < div class ="flex flex-col p-2 ">
33+ < div class ="text-muted-foreground flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium ">
34+ {{ section.title }}
35+ </ div >
36+ < ul class ="flex flex-col gap-0.5 ">
37+ {% for item in section.children %}
38+ {% if item.is_page or item.is_link %}
39+ < li >
40+ < a class ="hover:bg-accent {% if item.active %}bg-accent text-accent-foreground{% endif %} flex items-center gap-2 rounded-md p-2 text-sm font-medium "
41+ href ="{% if item.is_link %}{{ item.url }}{% else %}{{ item.url | url }}{% endif %} "
42+ {% if item.is_link %}target ="_blank " rel ="noopener noreferrer "{% endif %} >
43+ {% if item.meta and item.meta.sidebar_title %}
44+ {{ item.meta.sidebar_title }}
4045 {% else %}
41- {{ sidebar_item.title }}
46+ {{ item.title }}
47+ {% endif %}
48+ {% if item.is_link %}
49+ < svg xmlns ="http://www.w3.org/2000/svg " width ="12 " height ="12 " viewBox ="0 0 24 24 "
50+ fill ="none " stroke ="currentColor " stroke-width ="2 " stroke-linecap ="round "
51+ stroke-linejoin ="round " class ="opacity-50 ">
52+ < path d ="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6 " />
53+ < polyline points ="15 3 21 3 21 9 " />
54+ < line x1 ="10 " y1 ="14 " x2 ="21 " y2 ="3 " />
55+ </ svg >
4256 {% endif %}
4357 </ a >
44- {% endfor %}
45- </ div >
58+ </ li >
59+ {% else %}
60+ {# Nested section #}
61+ < li > {% include "components/bottom_sidebar_section.html" %}</ li >
4662 {% endif %}
47- </ div >
63+ {% endfor %}
64+ </ ul >
65+ </ div >
66+ {% endif %}
67+ {% endfor %}
68+
69+ {# Top level links #}
70+ {% if top_links|length > 0 %}
71+ < div class ="mt-2 flex flex-col gap-0.5 ">
72+ {% for top_link in top_links %}
73+ < a class ="hover:bg-accent flex items-center gap-2 rounded-md p-2 text-sm font-medium "
74+ href ="{{ top_link.url }} " target ="_blank " rel ="noopener noreferrer ">
75+ {{ top_link.title }}
76+ < svg xmlns ="http://www.w3.org/2000/svg " width ="12 " height ="12 " viewBox ="0 0 24 24 " fill ="none "
77+ stroke ="currentColor " stroke-width ="2 " stroke-linecap ="round " stroke-linejoin ="round "
78+ class ="opacity-50 ">
79+ < path d ="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6 " />
80+ < polyline points ="15 3 21 3 21 9 " />
81+ < line x1 ="10 " y1 ="14 " x2 ="21 " y2 ="3 " />
82+ </ svg >
83+ </ a >
4884 {% endfor %}
4985 </ div >
5086 {% endif %}
5187 {% endif %}
52-
5388 </ div >
5489 </ div >
55- </ dialog >
90+ </ dialog >
0 commit comments