Compare commits
No commits in common. "84703e3117eb2829e0ed6b4a995f1025359fb57b" and "bc01642fa4e1fa6c0aa82e6bd9ffb89c1e362e40" have entirely different histories.
84703e3117
...
bc01642fa4
10 changed files with 114 additions and 37 deletions
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
import { ThemeSelect } from "@components/hooks/ThemeSwitch";
|
import { ThemeSelect } from "@components/hooks/ThemeSwitch";
|
||||||
import { getTypeData } from "@config/io/generateTypeData";
|
import { getTypeData } from "@config/io/generateTypeData";
|
||||||
import Nav from "@components/navigation/sidebars/nav/index.astro";
|
import Nav from "@components/navigation/sidebars/Nav.astro";
|
||||||
import TOC from "@components/navigation/sidebars/TOC.astro";
|
import TOC from "@components/navigation/sidebars/TOC.astro";
|
||||||
import type { TypeTOC } from "./navigation/sidebars/types";
|
import type { TypeTOC } from "./navigation/sidebars/types";
|
||||||
import Search from "./navigation/Search.astro";
|
import Search from "./navigation/Search.astro";
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
import Accordion from "@components/Accordion.astro";
|
import Accordion from "./Accordion.astro";
|
||||||
import navMarker from "@icons/nav-marker.svg?raw";
|
import navMarker from "@icons/nav-marker.svg?raw";
|
||||||
|
|
||||||
interface Props {
|
interface Props {
|
|
@ -94,6 +94,53 @@ export const MenuToX: VoidComponent<{
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const ShevronSmallDown: VoidComponent<{
|
||||||
|
class?: string;
|
||||||
|
}> = props => {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="1em"
|
||||||
|
height="1em"
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
class={props.class}
|
||||||
|
>
|
||||||
|
<title>Open</title>
|
||||||
|
<g transform="rotate(-90 12 12)">
|
||||||
|
<path
|
||||||
|
stroke="currentColor"
|
||||||
|
stroke-dasharray="8"
|
||||||
|
stroke-dashoffset="0"
|
||||||
|
stroke-linecap="round"
|
||||||
|
stroke-width="2"
|
||||||
|
d="M9 12L14 7M9 12L14 17"
|
||||||
|
fill="currentColor"
|
||||||
|
></path>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export const CaretCircleRight: VoidComponent<{
|
||||||
|
class?: string;
|
||||||
|
}> = props => {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="1em"
|
||||||
|
height="1em"
|
||||||
|
viewBox="0 0 256 256"
|
||||||
|
class={props.class}
|
||||||
|
>
|
||||||
|
<title>Open</title>
|
||||||
|
<path
|
||||||
|
fill="currentColor"
|
||||||
|
d="M128 24a104 104 0 1 0 104 104A104.11 104.11 0 0 0 128 24m0 192a88 88 0 1 1 88-88a88.1 88.1 0 0 1-88 88m29.66-93.66a8 8 0 0 1 0 11.32l-40 40a8 8 0 0 1-11.32-11.32L140.69 128l-34.35-34.34a8 8 0 0 1 11.32-11.32Z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
export const Clipboard: VoidComponent<{
|
export const Clipboard: VoidComponent<{
|
||||||
class?: string;
|
class?: string;
|
||||||
}> = props => {
|
}> = props => {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
import SidebarWrapper from "./SidebarWrapper.tsx";
|
import SidebarWrapper from "./nav/SidebarWrapper.tsx";
|
||||||
import RootNav from "./RootNav.astro";
|
import RootNav from "./nav/RootNav.astro";
|
||||||
|
|
||||||
const url = Astro.url.pathname.split("/");
|
const url = Astro.url.pathname.split("/");
|
||||||
const currentRoute = url[2];
|
const currentRoute = url[2];
|
|
@ -1,5 +1,5 @@
|
||||||
---
|
---
|
||||||
import NavCollapsible from "./NavCollapsible.astro";
|
import NavCollapsible from "@components/NavCollapsible.astro";
|
||||||
import Self from "./Tree.astro";
|
import Self from "./Tree.astro";
|
||||||
import Link from "./Link.astro";
|
import Link from "./Link.astro";
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ import CreateCopyButtons from "@components/hooks/CreateCopyButtons.astro";
|
||||||
import PreTheme from "@config/PreTheme.astro";
|
import PreTheme from "@config/PreTheme.astro";
|
||||||
import Header from "@components/Header.astro";
|
import Header from "@components/Header.astro";
|
||||||
import Head from "@config/Head.astro";
|
import Head from "@config/Head.astro";
|
||||||
import Nav from "@components/navigation/sidebars/nav/index.astro";
|
import Nav from "@components/navigation/sidebars/Nav.astro";
|
||||||
import type { ConfigHeading } from "@src/components/navigation/sidebars/types";
|
import type { ConfigHeading } from "@src/components/navigation/sidebars/types";
|
||||||
import Footer from "@src/components/Footer.astro";
|
import Footer from "@src/components/Footer.astro";
|
||||||
|
|
||||||
|
|
|
@ -31,7 +31,7 @@ const details = route.data.details
|
||||||
---
|
---
|
||||||
|
|
||||||
<DocsLayout
|
<DocsLayout
|
||||||
title={route.type + " Module Types"}
|
title={route.type + " Type Documentation"}
|
||||||
description="Quickshell Type Documentation"
|
description="Quickshell Type Documentation"
|
||||||
>
|
>
|
||||||
<div class="docs-content">
|
<div class="docs-content">
|
||||||
|
|
|
@ -6,26 +6,20 @@ const routes = await getTypeData();
|
||||||
|
|
||||||
const modules = [...new Set(routes.map(route => route.type))];
|
const modules = [...new Set(routes.map(route => route.type))];
|
||||||
---
|
---
|
||||||
<DocsLayout title="Quickshell Module Listing" description="Quickshell Type Documentation">
|
<DocsLayout title="Quickshell Type Definitions" description="Quickshell Type Documentation">
|
||||||
<div class="docs-content">
|
<h2>Type Definitions</h2>
|
||||||
<hr/>
|
<div class="root-nav">
|
||||||
<h2>Module Listing</h2>
|
{modules.map(moduleEntry => {
|
||||||
<section>
|
const indexData = routes.filter(route => route.name === "index")
|
||||||
<span>All modules included with Quickshell</span>
|
const indexSingled = indexData.filter(indexEntry => indexEntry.type === moduleEntry)[0]
|
||||||
<div class="root-nav" data-pagefind-ignore>
|
const description = indexSingled.data.description
|
||||||
{modules.map(moduleEntry => {
|
return (
|
||||||
const indexData = routes.filter(route => route.name === "index")
|
<div class="root-nav-entry">
|
||||||
const indexSingled = indexData.filter(indexEntry => indexEntry.type === moduleEntry)[0]
|
<a class="root-nav-link" href={`/docs/types/${moduleEntry}`}>
|
||||||
const description = indexSingled.data.description
|
{moduleEntry}
|
||||||
return (
|
</a>
|
||||||
<div class="root-nav-entry">
|
<span class="root-nav-desc">{description}</span>
|
||||||
<a class="root-nav-link" href={`/docs/types/${moduleEntry}`}>
|
</div>)
|
||||||
{moduleEntry}
|
})}
|
||||||
</a>
|
|
||||||
<span class="root-nav-desc">{description}</span>
|
|
||||||
</div>)
|
|
||||||
})}
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</div>
|
</div>
|
||||||
</DocsLayout>
|
</DocsLayout>
|
||||||
|
|
|
@ -19,6 +19,29 @@
|
||||||
&:not(:last-child) {
|
&:not(:last-child) {
|
||||||
border-bottom: 1px solid hsla(var(--blue) 10 15 / 0.6);
|
border-bottom: 1px solid hsla(var(--blue) 10 15 / 0.6);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
& .root-nav-link {
|
||||||
|
font-size: 1.137rem;
|
||||||
|
max-height: 2rem;
|
||||||
|
position: relative;
|
||||||
|
text-decoration: none;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 1px;
|
||||||
|
background: linear-gradient(
|
||||||
|
90deg,
|
||||||
|
transparent 25%,
|
||||||
|
hsla(var(--accent-500) / 0.88) 50%,
|
||||||
|
transparent 75%
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -330,6 +353,27 @@ html.dark .typevariants {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: 0.60fr 1.40fr;
|
grid-template-columns: 0.60fr 1.40fr;
|
||||||
|
|
||||||
|
& .root-nav-link {
|
||||||
|
justify-self: start;
|
||||||
|
height: max-content;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
width: 0;
|
||||||
|
background: linear-gradient(
|
||||||
|
to right,
|
||||||
|
hsla(var(--accent-400) / 0.5) var(--percent),
|
||||||
|
hsla(var(--accent-400) / 0) 100%
|
||||||
|
);
|
||||||
|
animation: percentToZero 250ms ease-in-out forwards;
|
||||||
|
transition: width 0.25s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover::before {
|
||||||
|
animation: percentToFifty 250ms ease-in-out forwards;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
& .root-nav-desc {
|
& .root-nav-desc {
|
||||||
padding-left: 1rem;
|
padding-left: 1rem;
|
||||||
border-left: 1px solid hsl(var(--blue) 10 15 / 0.6);
|
border-left: 1px solid hsl(var(--blue) 10 15 / 0.6);
|
||||||
|
|
|
@ -28,10 +28,6 @@
|
||||||
&.nav-current {
|
&.nav-current {
|
||||||
color: hsl(var(--nav-selected-text));
|
color: hsl(var(--nav-selected-text));
|
||||||
background-color: hsl(var(--nav-selected-bkg));
|
background-color: hsl(var(--nav-selected-bkg));
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background-color: hsl(var(--nav-selected-hovered-bkg));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,16 +79,12 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
& .accordion-container > div {
|
& .accordion-container > div {
|
||||||
padding-left: 1.3em;
|
padding-left: 1.2em;
|
||||||
|
|
||||||
& p:first-child {
|
& p:first-child {
|
||||||
padding-top: 0;
|
padding-top: 0;
|
||||||
margin-top: 0;
|
margin-top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
& :last-child {
|
|
||||||
margin-bottom: 0rem;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue