fix: add missing _content partial templates for HTMX nav (terminal, sftp, settings, brief)

- Create terminal_content.html, sftp_content.html, settings_content.html, brief_content.html
- Update full page templates to use partial templates via {{template}}
- Handlers already rendered these templates on HX-Request, but files were missing → 500
- All pages now return 200 for both full page and HTMX nav requests
This commit is contained in:
swanadiva
2026-07-07 15:36:12 +07:00
parent 8357d9d76e
commit e70b133073
18 changed files with 696 additions and 851 deletions
-172
View File
@@ -6,10 +6,8 @@
--font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif;
--font-mono: 'JetBrains Mono', ui-monospace, monospace;
--color-red-50: oklch(97.1% 0.013 17.38);
--color-red-200: oklch(88.5% 0.062 18.334);
--color-red-400: oklch(70.4% 0.191 22.216);
--color-red-500: oklch(63.7% 0.237 25.331);
--color-red-600: oklch(57.7% 0.245 27.325);
--color-amber-500: oklch(76.9% 0.188 70.08);
--color-yellow-500: oklch(79.5% 0.184 86.047);
--color-purple-50: oklch(97.7% 0.014 308.299);
@@ -17,7 +15,6 @@
--color-black: #000;
--color-white: #fff;
--spacing: 0.25rem;
--container-xs: 20rem;
--container-sm: 24rem;
--container-md: 28rem;
--container-lg: 32rem;
@@ -315,9 +312,6 @@
.mt-3 {
margin-top: calc(var(--spacing) * 3);
}
.mt-6 {
margin-top: calc(var(--spacing) * 6);
}
.mr-1 {
margin-right: var(--spacing);
}
@@ -330,18 +324,12 @@
.mb-2 {
margin-bottom: calc(var(--spacing) * 2);
}
.mb-3 {
margin-bottom: calc(var(--spacing) * 3);
}
.mb-4 {
margin-bottom: calc(var(--spacing) * 4);
}
.mb-6 {
margin-bottom: calc(var(--spacing) * 6);
}
.ml-0\.5 {
margin-left: calc(var(--spacing) * 0.5);
}
.ml-1 {
margin-left: var(--spacing);
}
@@ -465,27 +453,18 @@
.w-11 {
width: calc(var(--spacing) * 11);
}
.w-14 {
width: calc(var(--spacing) * 14);
}
.w-16 {
width: calc(var(--spacing) * 16);
}
.w-32 {
width: calc(var(--spacing) * 32);
}
.w-40 {
width: calc(var(--spacing) * 40);
}
.w-48 {
width: calc(var(--spacing) * 48);
}
.w-\[260px\] {
width: 260px;
}
.w-fit {
width: fit-content;
}
.w-full {
width: 100%;
}
@@ -510,9 +489,6 @@
.max-w-sm {
max-width: var(--container-sm);
}
.max-w-xs {
max-width: var(--container-xs);
}
.min-w-0 {
min-width: 0;
}
@@ -775,12 +751,6 @@
--tw-border-style: none;
border-style: none;
}
.border-\[\#58a6ff\] {
border-color: #58a6ff;
}
.border-\[\#30363d\] {
border-color: #30363d;
}
.border-error-container\/40 {
border-color: color-mix(in srgb, #f9dedc 40%, transparent);
@supports (color: color-mix(in lab, red, red)) {
@@ -847,9 +817,6 @@
.border-primary {
border-color: var(--color-primary);
}
.border-red-200 {
border-color: var(--color-red-200);
}
.border-secondary\/20 {
border-color: color-mix(in srgb, #006e2f 20%, transparent);
@supports (color: color-mix(in lab, red, red)) {
@@ -865,27 +832,6 @@
.border-transparent {
border-color: transparent;
}
.bg-\[\#0d1117\] {
background-color: #0d1117;
}
.bg-\[\#3fb950\] {
background-color: #3fb950;
}
.bg-\[\#8b949e\] {
background-color: #8b949e;
}
.bg-\[\#161b22\] {
background-color: #161b22;
}
.bg-\[\#191c1e\] {
background-color: #191c1e;
}
.bg-black\/30 {
background-color: color-mix(in srgb, #000 30%, transparent);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, var(--color-black) 30%, transparent);
}
}
.bg-black\/40 {
background-color: color-mix(in srgb, #000 40%, transparent);
@supports (color: color-mix(in lab, red, red)) {
@@ -967,9 +913,6 @@
.bg-red-50 {
background-color: var(--color-red-50);
}
.bg-red-500 {
background-color: var(--color-red-500);
}
.bg-secondary {
background-color: var(--color-secondary);
}
@@ -1006,24 +949,12 @@
.bg-surface-container-low {
background-color: var(--color-surface-container-low);
}
.bg-surface-container-low\/30 {
background-color: color-mix(in srgb, #f0f2f5 30%, transparent);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, var(--color-surface-container-low) 30%, transparent);
}
}
.bg-surface-container-low\/50 {
background-color: color-mix(in srgb, #f0f2f5 50%, transparent);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, var(--color-surface-container-low) 50%, transparent);
}
}
.bg-tertiary\/10 {
background-color: color-mix(in srgb, #7e23cc 10%, transparent);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, var(--color-tertiary) 10%, transparent);
}
}
.bg-tertiary\/20 {
background-color: color-mix(in srgb, #7e23cc 20%, transparent);
@supports (color: color-mix(in lab, red, red)) {
@@ -1048,12 +979,6 @@
background-color: color-mix(in oklab, var(--color-white) 40%, transparent);
}
}
.bg-white\/50 {
background-color: color-mix(in srgb, #fff 50%, transparent);
@supports (color: color-mix(in lab, red, red)) {
background-color: color-mix(in oklab, var(--color-white) 50%, transparent);
}
}
.bg-white\/70 {
background-color: color-mix(in srgb, #fff 70%, transparent);
@supports (color: color-mix(in lab, red, red)) {
@@ -1195,9 +1120,6 @@
.pb-4 {
padding-bottom: calc(var(--spacing) * 4);
}
.pb-16 {
padding-bottom: calc(var(--spacing) * 16);
}
.pl-2 {
padding-left: calc(var(--spacing) * 2);
}
@@ -1305,9 +1227,6 @@
.whitespace-pre-wrap {
white-space: pre-wrap;
}
.text-\[\#8b949e\] {
color: #8b949e;
}
.text-\[\#191c1e\] {
color: #191c1e;
}
@@ -1332,18 +1251,6 @@
.text-on-surface-variant {
color: var(--color-on-surface-variant);
}
.text-on-surface-variant\/40 {
color: color-mix(in srgb, #424656 40%, transparent);
@supports (color: color-mix(in lab, red, red)) {
color: color-mix(in oklab, var(--color-on-surface-variant) 40%, transparent);
}
}
.text-on-surface-variant\/50 {
color: color-mix(in srgb, #424656 50%, transparent);
@supports (color: color-mix(in lab, red, red)) {
color: color-mix(in oklab, var(--color-on-surface-variant) 50%, transparent);
}
}
.text-outline {
color: var(--color-outline);
}
@@ -1371,12 +1278,6 @@
.text-red-400 {
color: var(--color-red-400);
}
.text-red-500 {
color: var(--color-red-500);
}
.text-red-600 {
color: var(--color-red-600);
}
.text-secondary {
color: var(--color-secondary);
}
@@ -1523,10 +1424,6 @@
-webkit-user-select: all;
user-select: all;
}
.select-none {
-webkit-user-select: none;
user-select: none;
}
.group-hover\:scale-110 {
&:is(:where(.group):hover *) {
@media (hover: hover) {
@@ -1586,12 +1483,6 @@
scale: var(--tw-scale-x) var(--tw-scale-y);
}
}
.last\:border-0 {
&:last-child {
border-style: var(--tw-border-style);
border-width: 0px;
}
}
.hover\:border-error {
&:hover {
@media (hover: hover) {
@@ -1606,23 +1497,6 @@
}
}
}
.hover\:border-primary\/30 {
&:hover {
@media (hover: hover) {
border-color: color-mix(in srgb, #0050cb 30%, transparent);
@supports (color: color-mix(in lab, red, red)) {
border-color: color-mix(in oklab, var(--color-primary) 30%, transparent);
}
}
}
}
.hover\:bg-\[\#30363d\] {
&:hover {
@media (hover: hover) {
background-color: #30363d;
}
}
}
.hover\:bg-black\/10 {
&:hover {
@media (hover: hover) {
@@ -1697,13 +1571,6 @@
}
}
}
.hover\:bg-red-600 {
&:hover {
@media (hover: hover) {
background-color: var(--color-red-600);
}
}
}
.hover\:bg-surface-container {
&:hover {
@media (hover: hover) {
@@ -1718,13 +1585,6 @@
}
}
}
.hover\:text-\[\#c9d1d9\] {
&:hover {
@media (hover: hover) {
color: #c9d1d9;
}
}
}
.hover\:text-error {
&:hover {
@media (hover: hover) {
@@ -1753,16 +1613,6 @@
}
}
}
.hover\:text-primary\/50 {
&:hover {
@media (hover: hover) {
color: color-mix(in srgb, #0050cb 50%, transparent);
@supports (color: color-mix(in lab, red, red)) {
color: color-mix(in oklab, var(--color-primary) 50%, transparent);
}
}
}
}
.hover\:text-primary\/80 {
&:hover {
@media (hover: hover) {
@@ -1780,20 +1630,6 @@
}
}
}
.hover\:text-red-600 {
&:hover {
@media (hover: hover) {
color: var(--color-red-600);
}
}
}
.hover\:text-white {
&:hover {
@media (hover: hover) {
color: var(--color-white);
}
}
}
.hover\:underline {
&:hover {
@media (hover: hover) {
@@ -1850,14 +1686,6 @@
}
}
}
.focus\:ring-primary\/30 {
&:focus {
--tw-ring-color: color-mix(in srgb, #0050cb 30%, transparent);
@supports (color: color-mix(in lab, red, red)) {
--tw-ring-color: color-mix(in oklab, var(--color-primary) 30%, transparent);
}
}
}
.focus\:outline-none {
&:focus {
--tw-outline-style: none;