feat: Adds ductulator button to logged in views.
All checks were successful
CI / Linux Tests (push) Successful in 5m46s

This commit is contained in:
2026-02-09 16:58:28 -05:00
parent 06b663052e
commit 980d99e40b
17 changed files with 148 additions and 122 deletions

View File

@@ -13,8 +13,6 @@
--color-black: #000; --color-black: #000;
--color-white: #fff; --color-white: #fff;
--spacing: 0.25rem; --spacing: 0.25rem;
--container-lg: 32rem;
--container-xl: 36rem;
--text-xs: 0.75rem; --text-xs: 0.75rem;
--text-xs--line-height: calc(1 / 0.75); --text-xs--line-height: calc(1 / 0.75);
--text-sm: 0.875rem; --text-sm: 0.875rem;
@@ -5305,15 +5303,9 @@
.-mx-2 { .-mx-2 {
margin-inline: calc(var(--spacing) * -2); margin-inline: calc(var(--spacing) * -2);
} }
.-mx-4 {
margin-inline: calc(var(--spacing) * -4);
}
.mx-10 { .mx-10 {
margin-inline: calc(var(--spacing) * 10); margin-inline: calc(var(--spacing) * 10);
} }
.mx-20 {
margin-inline: calc(var(--spacing) * 20);
}
.mx-auto { .mx-auto {
margin-inline: auto; margin-inline: auto;
} }
@@ -5403,18 +5395,12 @@
} }
} }
} }
.-my-4 {
margin-block: calc(var(--spacing) * -4);
}
.my-1\.5 { .my-1\.5 {
margin-block: calc(var(--spacing) * 1.5); margin-block: calc(var(--spacing) * 1.5);
} }
.my-6 { .my-6 {
margin-block: calc(var(--spacing) * 6); margin-block: calc(var(--spacing) * 6);
} }
.my-8 {
margin-block: calc(var(--spacing) * 8);
}
.my-auto { .my-auto {
margin-block: auto; margin-block: auto;
} }
@@ -5687,15 +5673,9 @@
.mt-6 { .mt-6 {
margin-top: calc(var(--spacing) * 6); margin-top: calc(var(--spacing) * 6);
} }
.mt-8 {
margin-top: calc(var(--spacing) * 8);
}
.mt-10 { .mt-10 {
margin-top: calc(var(--spacing) * 10); margin-top: calc(var(--spacing) * 10);
} }
.mt-20 {
margin-top: calc(var(--spacing) * 20);
}
.mt-30 { .mt-30 {
margin-top: calc(var(--spacing) * 30); margin-top: calc(var(--spacing) * 30);
} }
@@ -6556,9 +6536,6 @@
.min-h-14 { .min-h-14 {
min-height: calc(var(--spacing) * 14); min-height: calc(var(--spacing) * 14);
} }
.min-h-\[400px\] {
min-height: 400px;
}
.min-h-screen { .min-h-screen {
min-height: 100vh; min-height: 100vh;
} }
@@ -9745,11 +9722,6 @@
} }
} }
} }
.md\:mt-6 {
@media (width >= 48rem) {
margin-top: calc(var(--spacing) * 6);
}
}
.md\:mt-15 { .md\:mt-15 {
@media (width >= 48rem) { @media (width >= 48rem) {
margin-top: calc(var(--spacing) * 15); margin-top: calc(var(--spacing) * 15);

View File

@@ -17,8 +17,8 @@ struct DuctulatorView: HTML, Sendable {
var body: some HTML { var body: some HTML {
div { div {
Navbar( Navbar(
sidebarToggle: false, showSidebarToggle: false,
userProfile: isLoggedIn isLoggedIn: isLoggedIn
) )
div(.class("flex justify-center items-center px-10")) { div(.class("flex justify-center items-center px-10")) {
div( div(

View File

@@ -3,19 +3,19 @@ import ManualDCore
import Styleguide import Styleguide
struct Navbar: HTML, Sendable { struct Navbar: HTML, Sendable {
let sidebarToggle: Bool let showSidebarToggle: Bool
let userProfile: Bool let isLoggedIn: Bool
init( init(
sidebarToggle: Bool, showSidebarToggle: Bool,
userProfile: Bool = true isLoggedIn: Bool = true
) { ) {
self.sidebarToggle = sidebarToggle self.showSidebarToggle = showSidebarToggle
self.userProfile = userProfile self.isLoggedIn = isLoggedIn
} }
var homeRoute: SiteRoute.View { var homeRoute: SiteRoute.View {
if userProfile { if isLoggedIn {
return .project(.index) return .project(.index)
} }
return .home return .home
@@ -30,7 +30,7 @@ struct Navbar: HTML, Sendable {
) )
) { ) {
div(.class("flex flex-1 space-x-4 items-center")) { div(.class("flex flex-1 space-x-4 items-center")) {
if sidebarToggle { if showSidebarToggle {
label( label(
.for("my-drawer-1"), .for("my-drawer-1"),
.class("size-7"), .class("size-7"),
@@ -43,7 +43,7 @@ struct Navbar: HTML, Sendable {
} }
a( a(
.class("flex w-fit h-fit text-xl items-end px-4 py-2"), .class("flex w-fit h-fit text-2xl items-end px-4 py-2"),
.href(route: homeRoute) .href(route: homeRoute)
) { ) {
img( img(
@@ -52,10 +52,18 @@ struct Navbar: HTML, Sendable {
span { "Duct Calc" } span { "Duct Calc" }
} }
.navButton() .navButton()
.tooltip("Home", position: .right) .tooltip(isLoggedIn ? "Projects" : "Home", position: .right)
} }
if userProfile {
div(.class("flex-none dropdown dropdown-end dropdown-hover")) { div(.class("flex-none")) {
div(.class("flex items-end space-x-4")) {
DuctulatorButton()
.attributes(.class("btn-ghost btn-primary text-lg"))
.tooltip("Duct size calculator", position: .left)
if isLoggedIn {
div(.class("dropdown dropdown-end dropdown-hover")) {
div(.class("btn m-1"), .tabindex(0), .role("button")) { div(.class("btn m-1"), .tabindex(0), .role("button")) {
SVG(.circleUser) SVG(.circleUser)
} }
@@ -76,6 +84,8 @@ struct Navbar: HTML, Sendable {
} }
} }
} }
}
}
extension HTML where Tag: HTMLTrait.Attributes.Global { extension HTML where Tag: HTMLTrait.Attributes.Global {
func navButton() -> _AttributedElement<Self> { func navButton() -> _AttributedElement<Self> {

View File

@@ -35,7 +35,7 @@ struct ProjectView<Inner: HTML>: HTML, Sendable where Inner: Sendable {
input(.id("my-drawer-1"), .type(.checkbox), .class("drawer-toggle")) input(.id("my-drawer-1"), .type(.checkbox), .class("drawer-toggle"))
div(.class("drawer-content overflow-auto")) { div(.class("drawer-content overflow-auto")) {
Navbar(sidebarToggle: true) Navbar(showSidebarToggle: true)
div(.class("p-4")) { div(.class("p-4")) {
inner inner
.environment(ProjectViewValue.$projectID, projectID) .environment(ProjectViewValue.$projectID, projectID)

View File

@@ -17,7 +17,7 @@ struct ProjectsTable: HTML, Sendable {
var body: some HTML { var body: some HTML {
div { div {
Navbar(sidebarToggle: false) Navbar(showSidebarToggle: false)
div(.class("m-6")) { div(.class("m-6")) {
PageTitleRow { PageTitleRow {
PageTitle { "Projects" } PageTitle { "Projects" }

View File

@@ -10,7 +10,7 @@ struct TestPage: HTML, Sendable {
var body: some HTML { var body: some HTML {
div { div {
Navbar(sidebarToggle: false, userProfile: false) Navbar(showSidebarToggle: false, isLoggedIn: false)
div(.class("flex justify-center items-center px-10")) { div(.class("flex justify-center items-center px-10")) {
div( div(
.class( .class(

View File

@@ -8,7 +8,7 @@ struct UserView: HTML, Sendable {
var body: some HTML { var body: some HTML {
div { div {
Navbar(sidebarToggle: false, userProfile: false) Navbar(showSidebarToggle: false, isLoggedIn: false)
div(.class("p-4")) { div(.class("p-4")) {
Row { Row {

View File

@@ -4,16 +4,15 @@
- [x] Pdf generation - [x] Pdf generation
- [x] Add postgres / mysql support - [x] Add postgres / mysql support
- [x] Opensource / license ?? - [x] Opensource / license ??
- [ ] Figure out domain to host (currently thinking ductcalc.pro) - [x] Figure out domain to host (currently thinking ductcalc.pro)
- [ ] Logo / navbar name may have to change if it's not duct-calc.
- [ ] MainPage meta items will have to change also
- [x] Add ability for either sensible or total load while specifying a room load. - [x] Add ability for either sensible or total load while specifying a room load.
- CoolCalc current version specifies the sensible cooling for a room break down, - CoolCalc current version specifies the sensible cooling for a room break down,
and currently we require the total load and calculate sensible based on project and currently we require the total load and calculate sensible based on project
shr. shr.
- [x] Add ability to associate room load / airflow with another room. - [x] Add ability to associate room load / airflow with another room.
- [ ] Trunk size form, room / register selection is wonky when labels are long. - [x] Trunk size form, room / register selection is wonky when labels are long.
- They will overlap each other making it difficult to read / decipher which checkbox belongs - They will overlap each other making it difficult to read / decipher which checkbox belongs
to which label. to which label.
- [ ] Add select all rooms for trunks, useful for sizing main supply or return trunks. - [x] Add select all rooms for trunks, useful for sizing main supply or return trunks.
- [ ] Add optional level to room model.
- [ ] Add way to sponsor the project. - [ ] Add way to sponsor the project.

View File

@@ -35,11 +35,16 @@
<nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4"> <nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4">
<div class="flex flex-1 space-x-4 items-center"> <div class="flex flex-1 space-x-4 items-center">
<div class="tooltip tooltip-right" data-tip="Home"> <div class="tooltip tooltip-right" data-tip="Home">
<a class="flex w-fit h-fit text-xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/"> <a class="flex w-fit h-fit text-2xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/">
<img src="/images/mand_logo_sm.webp"> <img src="/images/mand_logo_sm.webp">
Duct Calc<span></span></a> Duct Calc<span></span></a>
</div> </div>
</div> </div>
<div class="flex-none">
<div class="flex items-end space-x-4">
<div class="tooltip tooltip-left" data-tip="Duct size calculator"><a class="btn btn-ghost btn-primary text-lg" href="/duct-size" target="_blank">Ductulator</a></div>
</div>
</div>
</nav> </nav>
<div class="flex justify-center items-center px-10"> <div class="flex justify-center items-center px-10">
<div class="bg-base-300 rounded-3xl shadow-3xl <div class="bg-base-300 rounded-3xl shadow-3xl

View File

@@ -37,19 +37,24 @@
<nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4"> <nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4">
<div class="flex flex-1 space-x-4 items-center"> <div class="flex flex-1 space-x-4 items-center">
<div class="tooltip tooltip-right" data-tip="Open sidebar"><label for="my-drawer-1" class="size-7 btn btn-square btn-ghost hover:bg-neutral hover:text-white" aria-label="open sidebar"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-linejoin="round" stroke-linecap="round" stroke-width="2" fill="none" stroke="currentColor" class="my-1.5 inline-block"><path d="M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z"></path><path d="M9 4v16"></path><path d="M14 10l2 2l-2 2"></path></svg></label></div> <div class="tooltip tooltip-right" data-tip="Open sidebar"><label for="my-drawer-1" class="size-7 btn btn-square btn-ghost hover:bg-neutral hover:text-white" aria-label="open sidebar"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-linejoin="round" stroke-linecap="round" stroke-width="2" fill="none" stroke="currentColor" class="my-1.5 inline-block"><path d="M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z"></path><path d="M9 4v16"></path><path d="M14 10l2 2l-2 2"></path></svg></label></div>
<div class="tooltip tooltip-right" data-tip="Home"> <div class="tooltip tooltip-right" data-tip="Projects">
<a class="flex w-fit h-fit text-xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/projects"> <a class="flex w-fit h-fit text-2xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/projects">
<img src="/images/mand_logo_sm.webp"> <img src="/images/mand_logo_sm.webp">
Duct Calc<span></span></a> Duct Calc<span></span></a>
</div> </div>
</div> </div>
<div class="flex-none dropdown dropdown-end dropdown-hover"> <div class="flex-none">
<div class="flex items-end space-x-4">
<div class="tooltip tooltip-left" data-tip="Duct size calculator"><a class="btn btn-ghost btn-primary text-lg" href="/duct-size" target="_blank">Ductulator</a></div>
<div class="dropdown dropdown-end dropdown-hover">
<div class="btn m-1 btn btn-square btn-ghost hover:bg-neutral hover:text-white" tabindex="0" role="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-user-icon lucide-circle-user"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="10" r="3"/><path d="M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662"/></svg></div> <div class="btn m-1 btn btn-square btn-ghost hover:bg-neutral hover:text-white" tabindex="0" role="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-user-icon lucide-circle-user"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="10" r="3"/><path d="M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662"/></svg></div>
<ul tabindex="-1" class="dropdown-content menu bg-base-200 rounded-box z-1 w-52 py-2 shadow-sm"> <ul tabindex="-1" class="dropdown-content menu bg-base-200 rounded-box z-1 w-52 py-2 shadow-sm">
<li><a href="/profile">Profile</a></li> <li><a href="/profile">Profile</a></li>
<li><a href="/logout">Logout</a></li> <li><a href="/logout">Logout</a></li>
</ul> </ul>
</div> </div>
</div>
</div>
</nav> </nav>
<div class="p-4"> <div class="p-4">
<div> <div>

View File

@@ -37,19 +37,24 @@
<nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4"> <nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4">
<div class="flex flex-1 space-x-4 items-center"> <div class="flex flex-1 space-x-4 items-center">
<div class="tooltip tooltip-right" data-tip="Open sidebar"><label for="my-drawer-1" class="size-7 btn btn-square btn-ghost hover:bg-neutral hover:text-white" aria-label="open sidebar"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-linejoin="round" stroke-linecap="round" stroke-width="2" fill="none" stroke="currentColor" class="my-1.5 inline-block"><path d="M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z"></path><path d="M9 4v16"></path><path d="M14 10l2 2l-2 2"></path></svg></label></div> <div class="tooltip tooltip-right" data-tip="Open sidebar"><label for="my-drawer-1" class="size-7 btn btn-square btn-ghost hover:bg-neutral hover:text-white" aria-label="open sidebar"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-linejoin="round" stroke-linecap="round" stroke-width="2" fill="none" stroke="currentColor" class="my-1.5 inline-block"><path d="M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z"></path><path d="M9 4v16"></path><path d="M14 10l2 2l-2 2"></path></svg></label></div>
<div class="tooltip tooltip-right" data-tip="Home"> <div class="tooltip tooltip-right" data-tip="Projects">
<a class="flex w-fit h-fit text-xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/projects"> <a class="flex w-fit h-fit text-2xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/projects">
<img src="/images/mand_logo_sm.webp"> <img src="/images/mand_logo_sm.webp">
Duct Calc<span></span></a> Duct Calc<span></span></a>
</div> </div>
</div> </div>
<div class="flex-none dropdown dropdown-end dropdown-hover"> <div class="flex-none">
<div class="flex items-end space-x-4">
<div class="tooltip tooltip-left" data-tip="Duct size calculator"><a class="btn btn-ghost btn-primary text-lg" href="/duct-size" target="_blank">Ductulator</a></div>
<div class="dropdown dropdown-end dropdown-hover">
<div class="btn m-1 btn btn-square btn-ghost hover:bg-neutral hover:text-white" tabindex="0" role="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-user-icon lucide-circle-user"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="10" r="3"/><path d="M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662"/></svg></div> <div class="btn m-1 btn btn-square btn-ghost hover:bg-neutral hover:text-white" tabindex="0" role="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-user-icon lucide-circle-user"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="10" r="3"/><path d="M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662"/></svg></div>
<ul tabindex="-1" class="dropdown-content menu bg-base-200 rounded-box z-1 w-52 py-2 shadow-sm"> <ul tabindex="-1" class="dropdown-content menu bg-base-200 rounded-box z-1 w-52 py-2 shadow-sm">
<li><a href="/profile">Profile</a></li> <li><a href="/profile">Profile</a></li>
<li><a href="/logout">Logout</a></li> <li><a href="/logout">Logout</a></li>
</ul> </ul>
</div> </div>
</div>
</div>
</nav> </nav>
<div class="p-4"> <div class="p-4">
<div class="flex w-full flex-col"> <div class="flex w-full flex-col">

View File

@@ -37,19 +37,24 @@
<nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4"> <nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4">
<div class="flex flex-1 space-x-4 items-center"> <div class="flex flex-1 space-x-4 items-center">
<div class="tooltip tooltip-right" data-tip="Open sidebar"><label for="my-drawer-1" class="size-7 btn btn-square btn-ghost hover:bg-neutral hover:text-white" aria-label="open sidebar"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-linejoin="round" stroke-linecap="round" stroke-width="2" fill="none" stroke="currentColor" class="my-1.5 inline-block"><path d="M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z"></path><path d="M9 4v16"></path><path d="M14 10l2 2l-2 2"></path></svg></label></div> <div class="tooltip tooltip-right" data-tip="Open sidebar"><label for="my-drawer-1" class="size-7 btn btn-square btn-ghost hover:bg-neutral hover:text-white" aria-label="open sidebar"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-linejoin="round" stroke-linecap="round" stroke-width="2" fill="none" stroke="currentColor" class="my-1.5 inline-block"><path d="M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z"></path><path d="M9 4v16"></path><path d="M14 10l2 2l-2 2"></path></svg></label></div>
<div class="tooltip tooltip-right" data-tip="Home"> <div class="tooltip tooltip-right" data-tip="Projects">
<a class="flex w-fit h-fit text-xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/projects"> <a class="flex w-fit h-fit text-2xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/projects">
<img src="/images/mand_logo_sm.webp"> <img src="/images/mand_logo_sm.webp">
Duct Calc<span></span></a> Duct Calc<span></span></a>
</div> </div>
</div> </div>
<div class="flex-none dropdown dropdown-end dropdown-hover"> <div class="flex-none">
<div class="flex items-end space-x-4">
<div class="tooltip tooltip-left" data-tip="Duct size calculator"><a class="btn btn-ghost btn-primary text-lg" href="/duct-size" target="_blank">Ductulator</a></div>
<div class="dropdown dropdown-end dropdown-hover">
<div class="btn m-1 btn btn-square btn-ghost hover:bg-neutral hover:text-white" tabindex="0" role="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-user-icon lucide-circle-user"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="10" r="3"/><path d="M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662"/></svg></div> <div class="btn m-1 btn btn-square btn-ghost hover:bg-neutral hover:text-white" tabindex="0" role="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-user-icon lucide-circle-user"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="10" r="3"/><path d="M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662"/></svg></div>
<ul tabindex="-1" class="dropdown-content menu bg-base-200 rounded-box z-1 w-52 py-2 shadow-sm"> <ul tabindex="-1" class="dropdown-content menu bg-base-200 rounded-box z-1 w-52 py-2 shadow-sm">
<li><a href="/profile">Profile</a></li> <li><a href="/profile">Profile</a></li>
<li><a href="/logout">Logout</a></li> <li><a href="/logout">Logout</a></li>
</ul> </ul>
</div> </div>
</div>
</div>
</nav> </nav>
<div class="p-4"> <div class="p-4">
<div class="space-y-4" id="equipmentInfo"> <div class="space-y-4" id="equipmentInfo">

View File

@@ -37,19 +37,24 @@
<nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4"> <nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4">
<div class="flex flex-1 space-x-4 items-center"> <div class="flex flex-1 space-x-4 items-center">
<div class="tooltip tooltip-right" data-tip="Open sidebar"><label for="my-drawer-1" class="size-7 btn btn-square btn-ghost hover:bg-neutral hover:text-white" aria-label="open sidebar"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-linejoin="round" stroke-linecap="round" stroke-width="2" fill="none" stroke="currentColor" class="my-1.5 inline-block"><path d="M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z"></path><path d="M9 4v16"></path><path d="M14 10l2 2l-2 2"></path></svg></label></div> <div class="tooltip tooltip-right" data-tip="Open sidebar"><label for="my-drawer-1" class="size-7 btn btn-square btn-ghost hover:bg-neutral hover:text-white" aria-label="open sidebar"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-linejoin="round" stroke-linecap="round" stroke-width="2" fill="none" stroke="currentColor" class="my-1.5 inline-block"><path d="M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z"></path><path d="M9 4v16"></path><path d="M14 10l2 2l-2 2"></path></svg></label></div>
<div class="tooltip tooltip-right" data-tip="Home"> <div class="tooltip tooltip-right" data-tip="Projects">
<a class="flex w-fit h-fit text-xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/projects"> <a class="flex w-fit h-fit text-2xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/projects">
<img src="/images/mand_logo_sm.webp"> <img src="/images/mand_logo_sm.webp">
Duct Calc<span></span></a> Duct Calc<span></span></a>
</div> </div>
</div> </div>
<div class="flex-none dropdown dropdown-end dropdown-hover"> <div class="flex-none">
<div class="flex items-end space-x-4">
<div class="tooltip tooltip-left" data-tip="Duct size calculator"><a class="btn btn-ghost btn-primary text-lg" href="/duct-size" target="_blank">Ductulator</a></div>
<div class="dropdown dropdown-end dropdown-hover">
<div class="btn m-1 btn btn-square btn-ghost hover:bg-neutral hover:text-white" tabindex="0" role="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-user-icon lucide-circle-user"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="10" r="3"/><path d="M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662"/></svg></div> <div class="btn m-1 btn btn-square btn-ghost hover:bg-neutral hover:text-white" tabindex="0" role="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-user-icon lucide-circle-user"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="10" r="3"/><path d="M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662"/></svg></div>
<ul tabindex="-1" class="dropdown-content menu bg-base-200 rounded-box z-1 w-52 py-2 shadow-sm"> <ul tabindex="-1" class="dropdown-content menu bg-base-200 rounded-box z-1 w-52 py-2 shadow-sm">
<li><a href="/profile">Profile</a></li> <li><a href="/profile">Profile</a></li>
<li><a href="/logout">Logout</a></li> <li><a href="/logout">Logout</a></li>
</ul> </ul>
</div> </div>
</div>
</div>
</nav> </nav>
<div class="p-4"> <div class="p-4">
<div class="space-y-4"> <div class="space-y-4">

View File

@@ -37,19 +37,24 @@
<nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4"> <nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4">
<div class="flex flex-1 space-x-4 items-center"> <div class="flex flex-1 space-x-4 items-center">
<div class="tooltip tooltip-right" data-tip="Open sidebar"><label for="my-drawer-1" class="size-7 btn btn-square btn-ghost hover:bg-neutral hover:text-white" aria-label="open sidebar"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-linejoin="round" stroke-linecap="round" stroke-width="2" fill="none" stroke="currentColor" class="my-1.5 inline-block"><path d="M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z"></path><path d="M9 4v16"></path><path d="M14 10l2 2l-2 2"></path></svg></label></div> <div class="tooltip tooltip-right" data-tip="Open sidebar"><label for="my-drawer-1" class="size-7 btn btn-square btn-ghost hover:bg-neutral hover:text-white" aria-label="open sidebar"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-linejoin="round" stroke-linecap="round" stroke-width="2" fill="none" stroke="currentColor" class="my-1.5 inline-block"><path d="M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z"></path><path d="M9 4v16"></path><path d="M14 10l2 2l-2 2"></path></svg></label></div>
<div class="tooltip tooltip-right" data-tip="Home"> <div class="tooltip tooltip-right" data-tip="Projects">
<a class="flex w-fit h-fit text-xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/projects"> <a class="flex w-fit h-fit text-2xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/projects">
<img src="/images/mand_logo_sm.webp"> <img src="/images/mand_logo_sm.webp">
Duct Calc<span></span></a> Duct Calc<span></span></a>
</div> </div>
</div> </div>
<div class="flex-none dropdown dropdown-end dropdown-hover"> <div class="flex-none">
<div class="flex items-end space-x-4">
<div class="tooltip tooltip-left" data-tip="Duct size calculator"><a class="btn btn-ghost btn-primary text-lg" href="/duct-size" target="_blank">Ductulator</a></div>
<div class="dropdown dropdown-end dropdown-hover">
<div class="btn m-1 btn btn-square btn-ghost hover:bg-neutral hover:text-white" tabindex="0" role="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-user-icon lucide-circle-user"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="10" r="3"/><path d="M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662"/></svg></div> <div class="btn m-1 btn btn-square btn-ghost hover:bg-neutral hover:text-white" tabindex="0" role="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-user-icon lucide-circle-user"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="10" r="3"/><path d="M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662"/></svg></div>
<ul tabindex="-1" class="dropdown-content menu bg-base-200 rounded-box z-1 w-52 py-2 shadow-sm"> <ul tabindex="-1" class="dropdown-content menu bg-base-200 rounded-box z-1 w-52 py-2 shadow-sm">
<li><a href="/profile">Profile</a></li> <li><a href="/profile">Profile</a></li>
<li><a href="/logout">Logout</a></li> <li><a href="/logout">Logout</a></li>
</ul> </ul>
</div> </div>
</div>
</div>
</nav> </nav>
<div class="p-4"> <div class="p-4">
<div class="space-y-6"> <div class="space-y-6">

View File

@@ -37,19 +37,24 @@
<nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4"> <nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4">
<div class="flex flex-1 space-x-4 items-center"> <div class="flex flex-1 space-x-4 items-center">
<div class="tooltip tooltip-right" data-tip="Open sidebar"><label for="my-drawer-1" class="size-7 btn btn-square btn-ghost hover:bg-neutral hover:text-white" aria-label="open sidebar"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-linejoin="round" stroke-linecap="round" stroke-width="2" fill="none" stroke="currentColor" class="my-1.5 inline-block"><path d="M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z"></path><path d="M9 4v16"></path><path d="M14 10l2 2l-2 2"></path></svg></label></div> <div class="tooltip tooltip-right" data-tip="Open sidebar"><label for="my-drawer-1" class="size-7 btn btn-square btn-ghost hover:bg-neutral hover:text-white" aria-label="open sidebar"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-linejoin="round" stroke-linecap="round" stroke-width="2" fill="none" stroke="currentColor" class="my-1.5 inline-block"><path d="M4 4m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z"></path><path d="M9 4v16"></path><path d="M14 10l2 2l-2 2"></path></svg></label></div>
<div class="tooltip tooltip-right" data-tip="Home"> <div class="tooltip tooltip-right" data-tip="Projects">
<a class="flex w-fit h-fit text-xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/projects"> <a class="flex w-fit h-fit text-2xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/projects">
<img src="/images/mand_logo_sm.webp"> <img src="/images/mand_logo_sm.webp">
Duct Calc<span></span></a> Duct Calc<span></span></a>
</div> </div>
</div> </div>
<div class="flex-none dropdown dropdown-end dropdown-hover"> <div class="flex-none">
<div class="flex items-end space-x-4">
<div class="tooltip tooltip-left" data-tip="Duct size calculator"><a class="btn btn-ghost btn-primary text-lg" href="/duct-size" target="_blank">Ductulator</a></div>
<div class="dropdown dropdown-end dropdown-hover">
<div class="btn m-1 btn btn-square btn-ghost hover:bg-neutral hover:text-white" tabindex="0" role="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-user-icon lucide-circle-user"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="10" r="3"/><path d="M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662"/></svg></div> <div class="btn m-1 btn btn-square btn-ghost hover:bg-neutral hover:text-white" tabindex="0" role="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-user-icon lucide-circle-user"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="10" r="3"/><path d="M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662"/></svg></div>
<ul tabindex="-1" class="dropdown-content menu bg-base-200 rounded-box z-1 w-52 py-2 shadow-sm"> <ul tabindex="-1" class="dropdown-content menu bg-base-200 rounded-box z-1 w-52 py-2 shadow-sm">
<li><a href="/profile">Profile</a></li> <li><a href="/profile">Profile</a></li>
<li><a href="/logout">Logout</a></li> <li><a href="/logout">Logout</a></li>
</ul> </ul>
</div> </div>
</div>
</div>
</nav> </nav>
<div class="p-4"> <div class="p-4">
<div class="space-y-4"> <div class="space-y-4">

View File

@@ -34,19 +34,24 @@
<div> <div>
<nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4"> <nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4">
<div class="flex flex-1 space-x-4 items-center"> <div class="flex flex-1 space-x-4 items-center">
<div class="tooltip tooltip-right" data-tip="Home"> <div class="tooltip tooltip-right" data-tip="Projects">
<a class="flex w-fit h-fit text-xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/projects"> <a class="flex w-fit h-fit text-2xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/projects">
<img src="/images/mand_logo_sm.webp"> <img src="/images/mand_logo_sm.webp">
Duct Calc<span></span></a> Duct Calc<span></span></a>
</div> </div>
</div> </div>
<div class="flex-none dropdown dropdown-end dropdown-hover"> <div class="flex-none">
<div class="flex items-end space-x-4">
<div class="tooltip tooltip-left" data-tip="Duct size calculator"><a class="btn btn-ghost btn-primary text-lg" href="/duct-size" target="_blank">Ductulator</a></div>
<div class="dropdown dropdown-end dropdown-hover">
<div class="btn m-1 btn btn-square btn-ghost hover:bg-neutral hover:text-white" tabindex="0" role="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-user-icon lucide-circle-user"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="10" r="3"/><path d="M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662"/></svg></div> <div class="btn m-1 btn btn-square btn-ghost hover:bg-neutral hover:text-white" tabindex="0" role="button"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-user-icon lucide-circle-user"><circle cx="12" cy="12" r="10"/><circle cx="12" cy="10" r="3"/><path d="M7 20.662V19a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v1.662"/></svg></div>
<ul tabindex="-1" class="dropdown-content menu bg-base-200 rounded-box z-1 w-52 py-2 shadow-sm"> <ul tabindex="-1" class="dropdown-content menu bg-base-200 rounded-box z-1 w-52 py-2 shadow-sm">
<li><a href="/profile">Profile</a></li> <li><a href="/profile">Profile</a></li>
<li><a href="/logout">Logout</a></li> <li><a href="/logout">Logout</a></li>
</ul> </ul>
</div> </div>
</div>
</div>
</nav> </nav>
<div class="m-6"> <div class="m-6">
<div class="flex justify-between bg-secondary border-2 border-primary rounded-sm shadow-sm <div class="flex justify-between bg-secondary border-2 border-primary rounded-sm shadow-sm

View File

@@ -35,11 +35,16 @@
<nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4"> <nav class="navbar w-full bg-base-300 text-base-content shadow-sm mb-4">
<div class="flex flex-1 space-x-4 items-center"> <div class="flex flex-1 space-x-4 items-center">
<div class="tooltip tooltip-right" data-tip="Home"> <div class="tooltip tooltip-right" data-tip="Home">
<a class="flex w-fit h-fit text-xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/"> <a class="flex w-fit h-fit text-2xl items-end px-4 py-2 btn btn-square btn-ghost hover:bg-neutral hover:text-white" href="/">
<img src="/images/mand_logo_sm.webp"> <img src="/images/mand_logo_sm.webp">
Duct Calc<span></span></a> Duct Calc<span></span></a>
</div> </div>
</div> </div>
<div class="flex-none">
<div class="flex items-end space-x-4">
<div class="tooltip tooltip-left" data-tip="Duct size calculator"><a class="btn btn-ghost btn-primary text-lg" href="/duct-size" target="_blank">Ductulator</a></div>
</div>
</div>
</nav> </nav>
<div class="p-4"> <div class="p-4">
<div class="flex justify-between"> <div class="flex justify-between">