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:
@@ -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;
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
function copyToClipboard(text) {
|
||||
document.addEventListener('click', function(e) {
|
||||
const btn = e.target.closest('[data-copy]');
|
||||
if (!btn) return;
|
||||
const text = btn.getAttribute('data-copy');
|
||||
if (!text) return;
|
||||
if (navigator.clipboard && navigator.clipboard.writeText) {
|
||||
navigator.clipboard.writeText(text).catch(() => fallbackCopy(text));
|
||||
} else {
|
||||
fallbackCopy(text);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
function fallbackCopy(text) {
|
||||
const ta = document.createElement('textarea');
|
||||
|
||||
Reference in New Issue
Block a user