diff --git a/lib/delta-theme/components/Button.astro b/lib/delta-theme/components/Button.astro
deleted file mode 100644
index 4c47eec8..00000000
--- a/lib/delta-theme/components/Button.astro
+++ /dev/null
@@ -1,139 +0,0 @@
----
-import type { HTMLAttributes } from "astro/types";
-import clsx from "clsx";
-
-interface Props {
- href?: HTMLAttributes<"a">["href"];
- id?: string;
- children: unknown;
- borderStyle?: "outlined" | "normal";
- className?: string;
- isDownload?: boolean;
- size?: "sm" | "md";
- target?: HTMLAttributes<"a">["target"];
- variant?: "primary" | "secondary" | "accent" | "more";
-}
-
-const {
- id,
- href,
- variant = "primary",
- borderStyle = "normal",
- isDownload,
- size = "md",
- target,
- className,
-} = Astro.props;
-
-const classNames = clsx(
- {
- "button-size-sm": size === "sm",
- "button-size-md": size === "md",
- "variant-primary": variant === "primary",
- "variant-secondary": variant === "secondary",
- "variant-accent": variant === "accent",
- "variant-more": variant === "more",
- "border-outlined": borderStyle === "outlined",
- },
- className,
-);
----
-
-{
- typeof href === "string" ? (
-
-
-
- ) : (
-
-
-
- )
-}
-
diff --git a/lib/delta-theme/components/Container.astro b/lib/delta-theme/components/Container.astro
deleted file mode 100644
index f4599135..00000000
--- a/lib/delta-theme/components/Container.astro
+++ /dev/null
@@ -1,37 +0,0 @@
----
-/**
- * Container
- *
- * Creates a centered "container" which will contain your HTML. This container
- * is responsive and will adjust depending on the screen size.
- */
----
-
-
-
-
-
diff --git a/lib/delta-theme/components/Dropdown.astro b/lib/delta-theme/components/Dropdown.astro
deleted file mode 100644
index 6294669e..00000000
--- a/lib/delta-theme/components/Dropdown.astro
+++ /dev/null
@@ -1,61 +0,0 @@
----
-import clsx from "clsx";
-
-interface Props {
- label: string;
- children: unknown;
- toggleClassName?: string;
-}
-const { label, toggleClassName } = Astro.props;
----
-
-
- {label}
-
-
-
-
-
-
diff --git a/lib/delta-theme/components/FormField.astro b/lib/delta-theme/components/FormField.astro
deleted file mode 100644
index dd6578c6..00000000
--- a/lib/delta-theme/components/FormField.astro
+++ /dev/null
@@ -1,66 +0,0 @@
----
-import clsx from "clsx";
-import type { ComponentProps } from "astro/types";
-import Icon from "./Icon.astro";
-
-type IconType = ComponentProps["icon"];
-
-interface Props {
- initialValue: string;
- label: string;
- name: string;
- type: "text" | "search";
- icon?: IconType;
- isCompact?: boolean;
- placeholder?: string;
- theme?: "dark" | "default";
- className?: string;
-}
-
-const {
- initialValue,
- label,
- name,
- type,
- icon,
- isCompact,
- placeholder,
- theme,
- className,
-} = Astro.props;
----
-
-
- {!isCompact &&
{label} }
-
- {
- icon && (
-
- )
- }
-
-
-
-
diff --git a/lib/delta-theme/components/Grid.astro b/lib/delta-theme/components/Grid.astro
deleted file mode 100644
index a470ba49..00000000
--- a/lib/delta-theme/components/Grid.astro
+++ /dev/null
@@ -1,143 +0,0 @@
----
-/*
- * Grid
- *
- * Constructs a grid container which puts each of its child elements into
- * a grid of rows and columns.
- *
- * Usage
- * =====
- *
- * Columns
- * -------
- * To use it, set columns using the `columns` prop. For example, `3` will create
- * 3 columns. Using an object `{ xs: 1, lg: 3 }` will create a responsive layout
- * with a single column layout on mobile devices and a 3 column layout on "lg"
- * or larger devices.
- *
- * Rows will automatically be created as the number of child elements exceeds
- * the number of columns.
- *
- * Column/row spacing
- * ------------------
- * By default, Grid has a predefined column spacing. Setting a column or row
- * spacing is not directly supported by this component. Instead, you will need
- * to provide your own styles, such as Tailwind classnames using the
- * `classNames` prop.
- */
-import clsx from "clsx";
-
-type ColumnRule = number | string | ColumnRule[];
-type Breakpoint = "xs" | "sm" | "md" | "lg" | "xl";
-
-interface Props {
- columns:
- | ColumnRule
- | {
- [key in Breakpoint]?: ColumnRule;
- };
- children: unknown;
- hasEvenRows?: boolean;
- className?: string;
-}
-
-const { columns, hasEvenRows, className } = Astro.props;
-
-/*
- * This may look a bit complicated, but all of this is necessary to work around
- * Astro and Tailwind's constraints. Tailwind has a number of CSS rules for
- * grid-template-columns, but due to these classnames being generated
- * dynamically, Astro cannot "tell" Tailwind to generate classnames on the fly,
- * so we have to resort to custom styles.
- *
- * This function spits out an object with grid-template-column rules mapped to
- * each breakpoint, and then we inject them as CSS variables to the container
- * div below.
- */
-const makeColumnVars = (
- columns: Props["columns"],
-): { [key in Breakpoint as `columns-${key}`]?: string } => {
- const columnMapping =
- typeof columns === "number" ||
- typeof columns === "string" ||
- Array.isArray(columns)
- ? { xs: columns }
- : columns;
-
- return Object.entries(columnMapping).reduce((acc, [breakpoint, cols]) => {
- let columnsRule;
-
- if (typeof cols === "number") {
- columnsRule = `repeat(${cols}, minmax(0, 1fr))`;
- }
-
- if (Array.isArray(cols)) {
- columnsRule = cols
- .map((col) => {
- if (typeof col === "number") {
- return `minmax(0, ${col}fr)`;
- }
-
- return col;
- })
- .join(" ");
- }
-
- return {
- ...acc,
- [`columns-${breakpoint}`]: columnsRule,
- };
- }, {});
-};
-
-const columnVars = makeColumnVars(columns);
----
-
-
-
-
-
diff --git a/lib/delta-theme/components/Icon.astro b/lib/delta-theme/components/Icon.astro
deleted file mode 100644
index 962a3f30..00000000
--- a/lib/delta-theme/components/Icon.astro
+++ /dev/null
@@ -1,81 +0,0 @@
----
-/**
- * Icon
- *
- * Creates an icon to be used in your page.
- *
- * How to add an icon
- * ------------------
- * Add the path(s) of your icon to the `iconPaths` object below. Each "path" is
- * the ` ` value of the SVG. You may need to flatten your SVG
- * in order to get the paths to work correctly.
- */
-import clsx from "clsx";
-
-const iconPaths = {
- close: [
- "M23.228 4.08785C24.1626 3.15327 24.1626 1.63551 23.228 0.700935C22.2935 -0.233645 20.7757 -0.233645 19.8411 0.700935L11.9682 8.58131L4.08785 0.708411C3.15327 -0.226168 1.63551 -0.226168 0.700935 0.708411C-0.233645 1.64299 -0.233645 3.16075 0.700935 4.09533L8.58131 11.9682L0.708411 19.8486C-0.226168 20.7832 -0.226168 22.3009 0.708411 23.2355C1.64299 24.1701 3.16075 24.1701 4.09533 23.2355L11.9682 15.3551L19.8486 23.228C20.7832 24.1626 22.3009 24.1626 23.2355 23.228C24.1701 22.2935 24.1701 20.7757 23.2355 19.8411L15.3551 11.9682L23.228 4.08785Z",
- ],
- copy: [
- "M19.8125 20.75H7.3125C7.06386 20.75 6.8254 20.6512 6.64959 20.4754C6.47377 20.2996 6.375 20.0611 6.375 19.8125V7C6.375 6.83424 6.44085 6.67527 6.55806 6.55806C6.67527 6.44085 6.83424 6.375 7 6.375H19.8125C20.0611 6.375 20.2996 6.47377 20.4754 6.64959C20.6512 6.8254 20.75 7.06386 20.75 7.3125V19.8125C20.75 20.0611 20.6512 20.2996 20.4754 20.4754C20.2996 20.6512 20.0611 20.75 19.8125 20.75Z",
- "M6.375 5.125H17.625V4.1875C17.625 3.93886 17.5262 3.7004 17.3504 3.52459C17.1746 3.34877 16.9361 3.25 16.6875 3.25H4.34375C4.05367 3.25 3.77547 3.36523 3.57035 3.57035C3.36523 3.77547 3.25 4.05367 3.25 4.34375V16.6875C3.25 16.9361 3.34877 17.1746 3.52459 17.3504C3.7004 17.5262 3.93886 17.625 4.1875 17.625H5.125V6.375C5.125 6.04348 5.2567 5.72554 5.49112 5.49112C5.72554 5.2567 6.04348 5.125 6.375 5.125Z",
- ],
- more: [
- "M14.2929 7.29289C14.6834 6.90237 15.3166 6.90237 15.7071 7.29289L19.7071 11.2929C20.0976 11.6834 20.0976 12.3166 19.7071 12.7071L15.7071 16.7071C15.3166 17.0976 14.6834 17.0976 14.2929 16.7071C13.9024 16.3166 13.9024 15.6834 14.2929 15.2929L16.5858 13H5C4.44772 13 4 12.5523 4 12C4 11.4477 4.44772 11 5 11H16.5858L14.2929 8.70711C13.9024 8.31658 13.9024 7.68342 14.2929 7.29289Z",
- ],
- menu: ["M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"],
- search: [
- "M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z",
- ],
- stackOverflow: [
- "M4.92,14.8888312 L4.92,20.6737662 L18.4098701,20.6737662 L18.4098701,14.8888312 L20.3298701,14.8888312 L20.3298701,22.5937662 L3,22.5937662 L3,14.8888312 L4.92,14.8888312 Z M16.4649351,16.8088312 L16.4649351,18.7288312 L6.84,18.7288312 L6.84,16.8088312 L16.4649351,16.8088312 Z M7.43844156,12.4451948 L16.8638961,14.4150649 L16.4649351,16.3101299 L7.03948052,14.3402597 L7.43844156,12.4451948 Z M9.08415584,8.08155844 L17.8114286,12.1709091 L17.0135065,13.9163636 L8.28623377,9.85194805 L9.08415584,8.08155844 Z M11.9267532,4.09194805 L19.3324675,10.2509091 L18.1106494,11.7220779 L10.7049351,5.56311688 L11.9267532,4.09194805 Z M15.4924675,1 L21.2275325,8.72987013 L19.6815584,9.87688312 L13.9464935,2.14701299 L15.4924675,1 Z",
- ],
- twitter: [
- "M22.46 6c-.77.35-1.6.58-2.46.69.88-.53 1.56-1.37 1.88-2.38-.83.5-1.75.85-2.72 1.05C18.37 4.5 17.26 4 16 4c-2.35 0-4.27 1.92-4.27 4.29 0 .34.04.67.11.98C8.28 9.09 5.11 7.38 3 4.79c-.37.63-.58 1.37-.58 2.15 0 1.49.75 2.81 1.91 3.56-.71 0-1.37-.2-1.95-.5v.03c0 2.08 1.48 3.82 3.44 4.21a4.22 4.22 0 0 1-1.93.07 4.28 4.28 0 0 0 4 2.98 8.521 8.521 0 0 1-5.33 1.84c-.34 0-.68-.02-1.02-.06C3.44 20.29 5.7 21 8.12 21 16 21 20.33 14.46 20.33 8.79c0-.19 0-.37-.01-.56.84-.6 1.56-1.36 2.14-2.23z",
- ],
- slack: [
- "M9.36156352,12.5374593 C10.5179153,12.5374593 11.4625407,13.4820847 11.4625407,14.6384365 L11.4625407,19.8990228 C11.4625407,21.0553746 10.5179153,22 9.36156352,22 C8.20521173,22 7.26058632,21.0553746 7.26058632,19.8990228 L7.26058632,14.6384365 L7.26058632,14.6384365 C7.26058632,13.4820847 8.20521173,12.5374593 9.36156352,12.5374593 Z M14.6384365,17.7980456 C15.7947883,17.7980456 16.7394137,18.742671 16.7394137,19.8990228 C16.7394137,21.0553746 15.7947883,22 14.6384365,22 C13.4820847,22 12.5374593,21.0553746 12.5374593,19.8990228 L12.5374593,17.7980456 L14.6384365,17.7980456 Z M19.8990228,12.5374593 C21.0553746,12.5374593 22,13.4820847 22,14.6384365 C22,15.7947883 21.0553746,16.7394137 19.8990228,16.7394137 L14.6384365,16.7394137 C13.4820847,16.7394137 12.5374593,15.7947883 12.5374593,14.6384365 C12.5374593,13.4820847 13.4820847,12.5374593 14.6384365,12.5374593 L19.8990228,12.5374593 Z M6.2019544,12.5374593 L6.2019544,14.6384365 C6.2019544,15.7947883 5.25732899,16.7394137 4.1009772,16.7394137 C2.94462541,16.7394137 2,15.7947883 2,14.6384365 C2,13.4820847 2.94462541,12.5374593 4.1009772,12.5374593 L6.2019544,12.5374593 Z M19.8990228,7.26058632 C21.0553746,7.26058632 22,8.20521173 22,9.36156352 C22,10.5179153 21.0553746,11.4625407 19.8990228,11.4625407 L17.7980456,11.4625407 L17.7980456,9.36156352 C17.7980456,8.20521173 18.742671,7.26058632 19.8990228,7.26058632 Z M14.6384365,2 C15.7947883,2 16.7394137,2.94462541 16.7394137,4.1009772 L16.7394137,9.36156352 C16.7394137,10.5179153 15.7947883,11.4625407 14.6384365,11.4625407 C13.4820847,11.4625407 12.5374593,10.5179153 12.5374593,9.36156352 L12.5374593,4.1009772 C12.5374593,2.94462541 13.4820847,2 14.6384365,2 Z M9.36156352,7.26058632 C10.5179153,7.26058632 11.4625407,8.20521173 11.4625407,9.36156352 C11.4625407,10.5179153 10.5179153,11.4625407 9.36156352,11.4625407 L4.1009772,11.4625407 C2.94462541,11.4625407 2,10.5179153 2,9.36156352 C2,8.20521173 2.94462541,7.26058632 4.1009772,7.26058632 L9.36156352,7.26058632 L9.36156352,7.26058632 Z M9.36156352,2 C10.5179153,2 11.4625407,2.94462541 11.4625407,4.1009772 L11.4625407,6.2019544 L9.36156352,6.2019544 C8.20521173,6.2019544 7.26058632,5.25732899 7.26058632,4.1009772 C7.26058632,2.94462541 8.20521173,2 9.36156352,2 Z",
- ],
- externalLink: [
- "M 3 3 L 3 21 L 21 21 L 21 12 L 19 12 L 19 19 L 5 19 L 5 5 L 12 5 L 12 3 L 3 3 z M 14 3 L 14 5 L 17.585938 5 L 8.2929688 14.292969 L 9.7070312 15.707031 L 19 6.4140625 L 19 10 L 21 10 L 21 3 L 14 3 z",
- ],
- linkedin: [
- "M19 19h-3v-5.3a1.5 1.5 0 0 0-1.5-1.5 1.5 1.5 0 0 0-1.5 1.5V19h-3v-9h3v1.2c.5-.84 1.59-1.4 2.5-1.4a3.5 3.5 0 0 1 3.5 3.5M6.5 8.31c-1 0-1.81-.81-1.81-1.81A1.81 1.81 0 0 1 6.5 4.69c1 0 1.81.81 1.81 1.81A1.81 1.81 0 0 1 6.5 8.31M8 19H5v-9h3m12-8H4c-1.11 0-2 .89-2 2v16a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V4c0-1.11-.9-2-2-2z",
- ],
- github: [
- "M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z",
- ],
- chevronRight: [
- "M19.0594 10.9406C19.6453 11.5266 19.6453 12.4781 19.0594 13.0641L10.0594 22.0641C9.47344 22.65 8.52188 22.65 7.93594 22.0641C7.35001 21.4781 7.35001 20.5266 7.93594 19.9406L15.8766 12L7.94063 4.05938C7.35469 3.47344 7.35469 2.52188 7.94063 1.93594C8.52657 1.35001 9.47813 1.35001 10.0641 1.93594L19.0641 10.9359L19.0594 10.9406Z",
- ],
- chevronLeft: [
- "M4.94063 10.9406C4.35469 11.5266 4.35469 12.4781 4.94063 13.0641L13.9406 22.0641C14.5266 22.65 15.4781 22.65 16.0641 22.0641C16.65 21.4781 16.65 20.5266 16.0641 19.9406L8.12344 12L16.0594 4.05937C16.6453 3.47344 16.6453 2.52187 16.0594 1.93594C15.4734 1.35 14.5219 1.35 13.9359 1.93594L4.93594 10.9359L4.94063 10.9406Z",
- ],
- rss: [
- "M5 3a1 1 0 000 2c5.523 0 10 4.477 10 10a1 1 0 102 0C17 8.373 11.627 3 5 3z",
- "M4 9a1 1 0 011-1 7 7 0 017 7 1 1 0 11-2 0 5 5 0 00-5-5 1 1 0 01-1-1z",
- "M3 15a2 2 0 114 0 2 2 0 01-4 0z",
- ],
-};
-
-interface Props {
- icon: keyof typeof iconPaths;
- alt: string;
- className?: string;
-}
-
-const { icon, className } = Astro.props;
-const paths = iconPaths[icon];
----
-
-
- {paths.map((path) => )}
-
diff --git a/lib/delta-theme/components/Menu/ListMenu.astro b/lib/delta-theme/components/Menu/ListMenu.astro
deleted file mode 100644
index 7b63357b..00000000
--- a/lib/delta-theme/components/Menu/ListMenu.astro
+++ /dev/null
@@ -1,97 +0,0 @@
----
-import clsx from "clsx";
-import type { MenuItem } from "../../types";
-import Dropdown from "../Dropdown.astro";
-import Icon from "../Icon.astro";
-
-interface Props {
- items: MenuItem[];
- theme: "header" | "default";
- direction: "horizontal" | "vertical";
- isIconMenu?: boolean;
- isNested?: boolean;
- className?: string | undefined;
- itemClassName?: string | undefined;
-}
-
-const {
- items,
- isIconMenu = false,
- isNested = false,
- theme,
- direction,
- className,
- itemClassName,
-} = Astro.props;
-
-const itemClassNames = [
- "text-inherit no-underline",
- {
- "lg:min-h-12": theme === "header" && !isNested,
- },
- itemClassName,
-];
----
-
-
diff --git a/lib/delta-theme/components/Menu/Menu.astro b/lib/delta-theme/components/Menu/Menu.astro
deleted file mode 100644
index 8e0ade22..00000000
--- a/lib/delta-theme/components/Menu/Menu.astro
+++ /dev/null
@@ -1,38 +0,0 @@
----
-import type { ComponentProps } from "astro/types";
-import type { MenuItem } from "../../types";
-import ListMenu from "./ListMenu.astro";
-
-type ListMenuProps = ComponentProps;
-
-interface Props {
- items: MenuItem[];
- theme?: ListMenuProps["theme"];
- direction?: ListMenuProps["direction"];
- isIconMenu?: boolean;
- className?: string;
- menuClassName?: string;
- itemClassName?: string;
-}
-
-const {
- items,
- theme = "default",
- direction = "vertical",
- isIconMenu = false,
- className,
- menuClassName,
- itemClassName,
-} = Astro.props;
----
-
-
-
-
diff --git a/lib/delta-theme/components/Menu/index.ts b/lib/delta-theme/components/Menu/index.ts
deleted file mode 100644
index c1cd2e87..00000000
--- a/lib/delta-theme/components/Menu/index.ts
+++ /dev/null
@@ -1,2 +0,0 @@
-export type { MenuItem } from "./ListMenu.astro";
-export { default as Menu } from "./Menu.astro";
diff --git a/lib/delta-theme/components/Modal.astro b/lib/delta-theme/components/Modal.astro
deleted file mode 100644
index 3d762563..00000000
--- a/lib/delta-theme/components/Modal.astro
+++ /dev/null
@@ -1,147 +0,0 @@
----
-import clsx from "clsx";
-import Icon from "./Icon.astro";
-
-interface Props {
- id: string;
- children: unknown;
- isOpen?: boolean;
- hideCloseButton?: boolean;
- className?: string;
-}
-
-const transitionDuration = "200ms";
-const slideAnimationDistance = "10px";
-
-const { id, isOpen, hideCloseButton, className } = Astro.props;
----
-
-
-
-
-
-
-
-
-
-
-
diff --git a/lib/delta-theme/components/PageLayout.astro b/lib/delta-theme/components/PageLayout.astro
deleted file mode 100644
index a7927dbb..00000000
--- a/lib/delta-theme/components/PageLayout.astro
+++ /dev/null
@@ -1,100 +0,0 @@
----
-import { getImage } from "astro:assets";
-
-interface Props {
- title?: string | undefined;
- description?: string | undefined;
- image?: string | Parameters[0]["src"] | undefined;
-}
-
-const { title, description, image } = Astro.props;
-const imageUrl =
- !image || typeof image === "string"
- ? image
- : (await getImage({ src: image })).src;
-
-// Define paths that should be excluded from search
-const excludedPaths = ["/", "/blog", "/sharing"];
-
-// Determine content type based on URL path
-const getContentType = (pathname: string) => {
- if (pathname.startsWith("/blog/")) return "Blog Post";
- if (pathname.startsWith("/user-stories/")) return "User Story";
- if (pathname.startsWith("/roadmap/")) return "Roadmap";
- if (pathname.startsWith("/community/")) return "Community";
- if (pathname.startsWith("/learn/")) return "Learning Material";
- if (pathname.startsWith("/profiles/")) return "Profile";
- return "Resources";
-};
-
-const contentType = getContentType(Astro.url.pathname);
-
-// Check if current path should be excluded
-const shouldExcludeFromSearch = excludedPaths.some(
- (path) =>
- Astro.url.pathname === path ||
- Astro.url.pathname.endsWith(path + "/") ||
- // Exclude pagination pages like /blog/2/, /blog/3/, etc.
- /^\/blog\/\d+\/?$/.test(Astro.url.pathname),
-);
----
-
-
-
-
-
-
-
-
-
-
-
-
- {title}
- {description && }
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/lib/delta-theme/components/Pagination.astro b/lib/delta-theme/components/Pagination.astro
deleted file mode 100644
index d96bf5c8..00000000
--- a/lib/delta-theme/components/Pagination.astro
+++ /dev/null
@@ -1,33 +0,0 @@
----
-import Icon from "./Icon.astro";
-
-interface Props {
- prevUrl?: string | undefined;
- nextUrl?: string | undefined;
- currentPage: number;
- lastPage: number;
-}
-
-const { prevUrl, nextUrl, currentPage, lastPage } = Astro.props;
----
-
-
- {
- prevUrl && (
-
-
-
- )
- }
- Page {currentPage} of {lastPage}
- {
- nextUrl && (
-
-
-
- )
- }
-
diff --git a/lib/delta-theme/components/Section.astro b/lib/delta-theme/components/Section.astro
deleted file mode 100644
index 6a1df24a..00000000
--- a/lib/delta-theme/components/Section.astro
+++ /dev/null
@@ -1,90 +0,0 @@
----
-/**
- * Section
- * =======
- * Creates a "section", which is a basic building-block style component for our layout.
- *
- * Slots
- * -----
- * Section has three slots:
- * - default: Section content
- * - before-header: Content to put before the section's header
- * - title: Content to put in the title (requries title to be set -- use " " as the title if you want it empty).
- * - subtitle: Content to put in the header, below the title (requries title to be set).
- */
-import clsx from "clsx";
-import Container from "./Container.astro";
-import type { HeaderVariant } from "./Typography.astro";
-import Typography from "./Typography.astro";
-
-interface Props {
- children: unknown;
- background?: "dark" | "light";
- className?: string;
- hasContainer?: boolean;
- isHeaderCentered?: boolean;
- isPrimary?: boolean;
- padding?: "none" | "xs" | "sm" | "md" | "lg" | "xl" | "xxl" | "xxxl";
- title?: string;
- titleSize?: HeaderVariant;
-}
-
-const {
- background,
- className,
- hasContainer = true,
- isHeaderCentered = false,
- isPrimary = false,
- padding,
- title,
- titleSize = "h2",
-} = Astro.props;
-
-const ContainerComponent = hasContainer ? Container : Fragment;
----
-
-
-
-
- {
- title && (
-
- )
- }
-
-
-
diff --git a/lib/delta-theme/components/Tag.astro b/lib/delta-theme/components/Tag.astro
deleted file mode 100644
index 351cf2ac..00000000
--- a/lib/delta-theme/components/Tag.astro
+++ /dev/null
@@ -1,48 +0,0 @@
----
-import clsx from "clsx";
-
-interface Props {
- label: string;
- href?: string;
- isDark?: boolean;
- className?: string;
-}
-
-const { label, href, isDark, className } = Astro.props;
-
-const classes = clsx("tag", { "tag-dark": isDark }, className);
----
-
-{
- href ? (
-
- {label}
-
- ) : (
- {label}
- )
-}
-
diff --git a/lib/delta-theme/components/Typography.astro b/lib/delta-theme/components/Typography.astro
deleted file mode 100644
index 90f34fc3..00000000
--- a/lib/delta-theme/components/Typography.astro
+++ /dev/null
@@ -1,286 +0,0 @@
----
-/*
- * Typography
- *
- * Used to render a single text element. If you need to render a lot of text,
- * wrap it with the Prose component instead.
- *
- * Note: the ".typography-prose" styles use the :where() selector to avoid adding
- * specificity to the styling. This allows other components to easily override
- * the prose styling if they wish.
- */
-import type { JSX } from "astro/jsx-runtime";
-import clsx from "clsx";
-
-export type HeaderVariant = "h1" | "h2" | "h3" | "h4" | "h5" | "h6";
-// for some reason prettier will mess up the build here
-// prettier-ignore
-export type BlockVariant = "p" | "p2" | "ol" | "ul" | "li" | "table" | "blockquote" | "cite";
-export type ChildlessVariant = "hr";
-
-interface ContainerProps {
- variant: HeaderVariant | BlockVariant | "prose";
- children: unknown;
- className?: string;
-}
-interface ChildlessProps {
- variant: ChildlessVariant;
- className?: string;
-}
-type Props = ContainerProps | ChildlessProps;
-
-interface VariantElementMap {
- tag: keyof JSX.DefinedIntrinsicElements;
- className?: string;
-}
-
-/**
- * If any variants need to change the HTML element they render, add the mapping
- * to this object.
- */
-const variantElements: { [key: string]: VariantElementMap } = {
- prose: {
- tag: "div",
- className: "typography-prose",
- },
- p2: {
- tag: "p",
- className: "p2",
- },
- callout: {
- tag: "div",
- className: "callout",
- },
-};
-
-const isChildless = (
- variant: Props["variant"],
-): variant is ChildlessProps["variant"] => {
- return variant === "hr";
-};
-
-const { variant, className } = Astro.props;
-const Element = variantElements[variant]?.tag ?? variant;
-const classNames = clsx(variantElements[variant]?.className, className);
----
-
-{
- isChildless(variant) ? (
-
- ) : (
-
-
-
- )
-}
-
diff --git a/lib/delta-theme/index.ts b/lib/delta-theme/index.ts
deleted file mode 100644
index d4fbf243..00000000
--- a/lib/delta-theme/index.ts
+++ /dev/null
@@ -1 +0,0 @@
-export { remarkPlugins } from "./remarkPlugins";
diff --git a/lib/delta-theme/theme.css b/lib/delta-theme/theme.css
deleted file mode 100644
index 99988c45..00000000
--- a/lib/delta-theme/theme.css
+++ /dev/null
@@ -1,527 +0,0 @@
-:root {
- /* Colors */
- --color-primary: #00add4;
- --color-primary-hover: #00bee9;
- --color-link: #00819e;
- --color-accent: #ffda47;
- --color-text: #002638;
- --color-text-secondary: #536974;
- --color-text-third: #4f4f4f;
- --color-bg-light: #f5f8f9;
- --color-bg-light-second: #f3fdff;
- --color-bg-dark: #042436;
- --color-border: #b9c0c1;
- --color-border-light: #d6dadb;
- --color-info: #00add4;
- --color-warning: #ffda47;
- --color-danger: red;
- --color-link-sub-menu: #dee2e6;
- --color-bg-dark-blue: #195162;
- --color-code: #d63384;
- --color-white: #ffffff;
-
- /* Theme color "mixins" */
- --color-dark-bg: #042436;
- --color-dark-color: #ffffff;
- --color-dark-text-secondary: #73828c;
- --color-dark-border: #2c4553;
- --color-light-bg: #f5f8f9;
- --color-light-color: #002638;
-
- /* Font families */
- --font-family-default:
- "Source Sans Pro", "-apple-system", "BlinkMacSystemFont", "Segoe UI",
- "Roboto", "Helvetica Neue", "Arial", "sans-serif", "Apple Color Emoji",
- "Segoe UI Emoji", "Segoe UI Symbol";
- --font-family-code:
- "Source Code Pro Variable", "Source Code Pro", "Consolas", "monospace";
-
- /* Font sizes */
- --font-size-small: 0.875rem;
- --font-size-primary: 1.125rem;
- --font-size-secondary: 1rem;
- --font-size-h1: 3.375rem;
- --font-size-h2: 2.625rem;
- --font-size-h3: 2rem;
- --font-size-h4: 1.5625rem;
- --font-size-h5: 1.25rem;
- --font-size-h6: 1rem;
- --font-size-code: 0.9rem;
-
- /* Font weights */
- --font-weight-normal: 400;
- --font-weight-bold: 600;
- --font-weight-code: normal;
-
- /* Line heights */
- --line-height-base: 1.5;
- --line-height-header: 1.2;
-
- /* Spacing - Map to standard Tailwind spacing scale */
- --spacing-0: 0rem;
- --spacing-1: 0.25rem;
- --spacing-2: 0.5rem;
- --spacing-3: 0.75rem;
- --spacing-4: 1rem;
- --spacing-5: 1.25rem;
- --spacing-6: 1.5rem;
- --spacing-8: 2rem;
- --spacing-10: 2.5rem;
- --spacing-12: 3rem;
- --spacing-16: 4rem;
- --spacing-20: 5rem;
- --spacing-24: 6rem;
- --spacing-32: 8rem;
-
- /* Custom spacing for backward compatibility */
- --spacing-none: 0rem;
- --spacing-xxs: 0.25rem;
- --spacing-xs: 0.375rem;
- --spacing-sm: 0.75rem;
- --spacing-md: 1.125rem;
- --spacing-lg: 1.5rem;
- --spacing-xl: 1.875rem;
- --spacing-xxl: 3.75rem;
- --spacing-xxxl: 6.25rem;
-
- /* Breakpoints */
- --breakpoint-sm: 576px;
- --breakpoint-md: 768px;
- --breakpoint-lg: 992px;
- --breakpoint-xl: 1200px;
-}
-
-@layer base {
- h1 {
- font-size: var(--font-size-h1);
- font-weight: var(--font-weight-bold);
- line-height: var(--line-height-header);
- }
- h2 {
- font-size: var(--font-size-h2);
- font-weight: var(--font-weight-bold);
- line-height: var(--line-height-header);
- }
- h3 {
- font-size: var(--font-size-h3);
- font-weight: var(--font-weight-bold);
- line-height: var(--line-height-header);
- }
- h4 {
- font-size: var(--font-size-h4);
- font-weight: var(--font-weight-bold);
- line-height: var(--line-height-header);
- }
- h5 {
- font-size: var(--font-size-h5);
- font-weight: var(--font-weight-bold);
- line-height: var(--line-height-header);
- }
- h6 {
- font-size: var(--font-size-h6);
- font-weight: var(--font-weight-bold);
- line-height: var(--line-height-header);
- }
-}
-
-@utility bg-bgDark {
- background-color: var(--color-bg-dark);
-}
-
-@utility text-darkColor {
- color: var(--color-dark-color);
-}
-
-@utility bg-darkBg {
- background-color: var(--color-dark-bg);
-}
-
-@utility text-darkTextSecondary {
- color: var(--color-dark-text-secondary);
- color: var(--color-dark-text-secondary);
-}
-
-@utility bg-darkBorder {
- background-color: var(--color-dark-border);
-}
-
-@utility border-darkBorder {
- border-color: var(--color-dark-border);
-}
-
-@utility text-darkTextSecondary75 {
- color: rgba(255, 255, 255, 0.75);
-}
-
-/* Width utilities */
-@utility w-full {
- width: 100%;
-}
-
-@utility w-auto {
- width: auto;
-}
-
-@utility w-fit {
- width: fit-content;
-}
-
-@utility w-max {
- width: max-content;
-}
-
-@utility w-min {
- width: min-content;
-}
-
-@utility w-1em {
- width: 1em;
-}
-
-@utility h-1em {
- height: 1em;
-}
-
-@utility px-sm {
- padding-left: var(--spacing-sm);
- padding-right: var(--spacing-sm);
-}
-
-@utility py-xs {
- padding-top: var(--spacing-xs);
- padding-bottom: var(--spacing-xs);
- padding-top: var(--spacing-xs);
- padding-bottom: var(--spacing-xs);
-}
-
-@utility ml-sm {
- margin-left: var(--spacing-sm);
-}
-
-@utility bg-lightBg {
- background-color: var(--color-light-bg);
-}
-
-@utility text-lightColor {
- color: var(--color-light-color);
-}
-
-@utility gap-xs {
- gap: var(--spacing-xs);
-}
-
-@utility gap-sm {
- gap: var(--spacing-sm);
-}
-
-@utility gap-md {
- gap: var(--spacing-md);
-}
-
-@utility gap-lg {
- gap: var(--spacing-lg);
-}
-
-@utility gap-xl {
- gap: var(--spacing-xl);
-}
-
-@utility py-sm {
- padding-top: var(--spacing-sm);
- padding-bottom: var(--spacing-sm);
-}
-
-@utility py-md {
- padding-top: var(--spacing-md);
- padding-bottom: var(--spacing-md);
-}
-
-@utility py-lg {
- padding-top: var(--spacing-lg);
- padding-bottom: var(--spacing-lg);
-}
-
-@utility py-xl {
- padding-top: var(--spacing-xl);
- padding-bottom: var(--spacing-xl);
-}
-
-@utility py-xxl {
- padding-top: var(--spacing-xxl);
- padding-bottom: var(--spacing-xxl);
-}
-
-@utility py-xxxl {
- padding-top: var(--spacing-xxxl);
- padding-bottom: var(--spacing-xxxl);
-}
-
-@utility py-none {
- padding-top: 0;
- padding-bottom: 0;
-}
-
-@utility mb-xs {
- margin-bottom: var(--spacing-xs);
-}
-
-@utility mb-sm {
- margin-bottom: var(--spacing-sm);
-}
-
-@utility mb-md {
- margin-bottom: var(--spacing-md);
-}
-
-@utility mb-lg {
- margin-bottom: var(--spacing-lg);
-}
-
-@utility mb-xl {
- margin-bottom: var(--spacing-xl);
-}
-
-@utility mb-xxl {
- margin-bottom: var(--spacing-xxl);
-}
-
-@utility mb-xxxl {
- margin-bottom: var(--spacing-xxxl);
-}
-
-@utility m-none {
- margin: 0;
-}
-
-@utility font-default {
- font-family: var(--font-family-default);
-}
-
-@utility leading-base {
- line-height: var(--line-height-base);
-}
-
-@utility leading-header {
- line-height: var(--line-height-header);
-}
-
-@utility font-bold {
- font-weight: var(--font-weight-bold);
-}
-
-@utility font-normal {
- font-weight: var(--font-weight-normal);
-}
-
-@utility text-small {
- font-size: var(--font-size-small);
-}
-
-@utility text-primary {
- font-size: var(--font-size-primary);
-}
-
-@utility text-secondary {
- font-size: var(--font-size-secondary);
-}
-
-@utility text-h1 {
- font-size: var(--font-size-h1);
-}
-
-@utility text-h2 {
- font-size: var(--font-size-h2);
-}
-
-@utility text-h3 {
- font-size: var(--font-size-h3);
-}
-
-@utility text-h5 {
- font-size: var(--font-size-h5);
-}
-
-@utility text-h6 {
- font-size: var(--font-size-h6);
-}
-
-@utility text-code {
- font-size: var(--font-size-code);
-}
-
-@utility text-white {
- color: var(--color-white);
-}
-
-.hero-description {
- font-size: 1.35rem;
-}
-
-.hero-description .description-link {
- color: var(--color-accent);
- text-decoration: underline;
- text-decoration-color: var(--color-accent);
-}
-
-.hero-description .description-link:hover {
- color: var(--color-accent);
- text-decoration-color: var(--color-accent);
-}
-
-@media (min-width: 576px) {
- .sm\:flex {
- display: flex;
- }
- .sm\:hidden {
- display: none;
- }
- .sm\:block {
- display: block;
- }
- .sm\:left-neg-1em {
- left: -1em;
- }
- .sm\:right-neg-1em {
- right: -1em;
- }
-}
-
-@media (min-width: 768px) {
- .md\:flex {
- display: flex;
- }
- .md\:hidden {
- display: none;
- }
- .md\:block {
- display: block;
- }
-}
-
-@media (min-width: 992px) {
- .lg\:flex {
- display: flex;
- }
- .lg\:hidden {
- display: none;
- }
- .lg\:block {
- display: block;
- }
- .lg\:items-center {
- align-items: center;
- }
- .lg\:bg-darkBorder {
- background-color: var(--color-dark-border);
- }
- .lg\:border {
- border-width: 1px;
- }
- .lg\:border-darkBorder {
- border-color: var(--color-dark-border);
- }
- .lg\:w-full {
- width: 100%;
- }
- .lg\:text-left {
- text-align: left;
- }
- .lg\:px-sm {
- padding-left: var(--spacing-sm);
- padding-right: var(--spacing-sm);
- }
- .lg\:h-32px {
- height: 32px;
- }
- .lg\:rounded {
- border-radius: 0.25rem;
- }
- .lg\:text-rgba-255-255-255-75 {
- color: rgba(255, 255, 255, 0.75);
- }
- .lg\:hover\:text-white:hover {
- color: white;
- }
- .lg\:hover\:border-white:hover {
- border-color: white;
- }
- .lg\:mr-sm {
- margin-right: var(--spacing-sm);
- }
- .lg\:w-1-25em {
- width: 1.25em;
- }
- .lg\:h-1-25em {
- height: 1.25em;
- }
- .lg\:min-h-48px {
- min-height: 48px;
- }
-}
-
-@media (max-width: 991px) {
- .max-lg\:flex-col {
- flex-direction: column;
- }
- .max-lg\:items-start {
- align-items: flex-start;
- }
- .max-lg\:mt-xs {
- margin-top: var(--spacing-xs);
- }
- .max-lg\:ml-sm {
- margin-left: var(--spacing-sm);
- }
-}
-
-@layer utilities {
- .text-h4 {
- font-size: var(--font-size-h4);
- }
-}
-
-a.no-underline {
- text-decoration: none;
-}
-
-a.text-inherit {
- color: inherit;
-}
-
-a.text-white {
- color: var(--color-white);
-}
-
-.subtitle-container > :first-child {
- margin-top: 1.125rem;
-}
-
-.subtitle-container > :last-child,
-.subtitle-container > p:last-child {
- margin-bottom: 3.75rem;
-}
-
-@media (hover: hover) {
- a.hover\:underline:hover {
- text-decoration: underline;
- }
-}
-
-/* Responsive utilities */
-@media (max-width: 991px) {
- .max-lg\\:flex-col {
- flex-direction: column;
- }
-
- .max-lg\\:items-start {
- align-items: flex-start;
- }
-
- .max-lg\\:mt-xs {
- margin-top: var(--spacing-xs);
- }
-
- .max-lg\\:ml-sm {
- margin-left: var(--spacing-sm);
- }
-}
diff --git a/lib/delta-theme/types.ts b/lib/delta-theme/types.ts
deleted file mode 100644
index 0f307bd5..00000000
--- a/lib/delta-theme/types.ts
+++ /dev/null
@@ -1,24 +0,0 @@
-import type { ComponentProps } from "astro/types";
-import Icon from "./components/Icon.astro";
-
-/*
- * Compnoents
- */
-type IconType = ComponentProps["icon"];
-
-/*
- * Menus
- */
-interface SingleMenuItem {
- label: string;
- url: string;
- icon?: IconType;
-}
-
-interface GroupMenuItem {
- label: string;
- items: SingleMenuItem[];
- icon?: IconType;
-}
-
-export type MenuItem = SingleMenuItem | GroupMenuItem;
diff --git a/package.json b/package.json
index 2c36d266..b6d4580d 100644
--- a/package.json
+++ b/package.json
@@ -40,7 +40,7 @@
"@types/mdast": "^4.0.4",
"astro-config": "^0.2.1",
"astro-favicons": "^3.1.5",
- "astro-orbit": "^0.1.0",
+ "astro-orbit": "^0.2.0",
"astro": "^5.14.7",
"googleapis": "^164.1.0",
"pagefind": "^1.4.0",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2429fc76..de9c8639 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -39,8 +39,8 @@ importers:
specifier: ^3.1.5
version: 3.1.5(astro@5.14.7(@netlify/blobs@10.1.0)(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.5)(typescript@5.9.3)(yaml@2.8.1))
astro-orbit:
- specifier: ^0.1.0
- version: 0.1.0(astro@5.14.7(@netlify/blobs@10.1.0)(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.5)(typescript@5.9.3)(yaml@2.8.1))(vite@7.1.11(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))
+ specifier: ^0.2.0
+ version: 0.2.0(astro@5.14.7(@netlify/blobs@10.1.0)(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.5)(typescript@5.9.3)(yaml@2.8.1))(vite@7.1.11(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))
googleapis:
specifier: ^164.1.0
version: 164.1.0
@@ -1620,6 +1620,12 @@ packages:
peerDependencies:
astro: ^5.0.0
+ astro-orbit@0.2.0:
+ resolution: {integrity: sha512-He5tTJVaQpuzFGO5W7OSlswF+eq3GUNCfMLAdu/rre5f6a1L/+wRghYrR+V2AW10JXQEzyx260tVd79SkhzSyA==}
+ engines: {node: '>=18.0.0'}
+ peerDependencies:
+ astro: ^5.0.0
+
astro@5.14.7:
resolution: {integrity: sha512-vdZmRN2MFf60ZTjFkZNrQQkrmeeZzTI1c6N3ZRQN55rPGHjywM2VplJwJ68q496DfpaoDoAroDBpdm+eTgHUtQ==}
engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'}
@@ -6398,6 +6404,15 @@ snapshots:
transitivePeerDependencies:
- vite
+ astro-orbit@0.2.0(astro@5.14.7(@netlify/blobs@10.1.0)(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.5)(typescript@5.9.3)(yaml@2.8.1))(vite@7.1.11(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1)):
+ dependencies:
+ '@tailwindcss/vite': 4.1.17(vite@7.1.11(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(yaml@2.8.1))
+ astro: 5.14.7(@netlify/blobs@10.1.0)(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.5)(typescript@5.9.3)(yaml@2.8.1)
+ clsx: 2.1.1
+ tailwindcss: 4.1.17
+ transitivePeerDependencies:
+ - vite
+
astro@5.14.7(@netlify/blobs@10.1.0)(@types/node@24.9.1)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.52.5)(typescript@5.9.3)(yaml@2.8.1):
dependencies:
'@astrojs/compiler': 2.13.0
diff --git a/src/components/AnnouncementSection.astro b/src/components/AnnouncementSection.astro
index 455abb60..db8ad85d 100644
--- a/src/components/AnnouncementSection.astro
+++ b/src/components/AnnouncementSection.astro
@@ -1,7 +1,5 @@
---
-import Icon from "../../lib/delta-theme/components/Icon.astro";
-import Section from "../../lib/delta-theme/components/Section.astro";
-import Typography from "../../lib/delta-theme/components/Typography.astro";
+import { Icon, Section, Typography } from "astro-orbit/components";
interface Props {
title: string;
diff --git a/src/components/BookDownloadSection/BookDownloadSection.astro b/src/components/BookDownloadSection/BookDownloadSection.astro
index f5e2edf5..36f44a2b 100644
--- a/src/components/BookDownloadSection/BookDownloadSection.astro
+++ b/src/components/BookDownloadSection/BookDownloadSection.astro
@@ -1,8 +1,6 @@
---
import { Image } from "astro:assets";
-import Button from "../../../lib/delta-theme/components/Button.astro";
-import Section from "../../../lib/delta-theme/components/Section.astro";
-import Typography from "../../../lib/delta-theme/components/Typography.astro";
+import { Button, Section, Typography } from "astro-orbit/components";
import dldgCoverImg from "./dldg-cover.jpg";
import downloadArrowImg from "./download-arrow.png";
---
@@ -20,6 +18,7 @@ import downloadArrowImg from "./download-arrow.png";
Download
+
-
+
@@ -77,7 +79,12 @@ import Search from "./Search.astro";
background-color: rgba(0, 0, 0, 0.35);
}
- @media (max-width: 991px) {
+ /* Hide menu wrapper by default on smaller screens */
+ .header-menu-wrapper {
+ display: none;
+ }
+
+ @media (max-width: 1023px) {
.header-menu-wrapper {
position: fixed;
top: 0;
@@ -97,6 +104,10 @@ import Search from "./Search.astro";
display: none;
}
+ .header-menu-wrapper[data-toggled="true"] {
+ display: block;
+ }
+
.header-menu-wrapper[data-toggled="true"] ~ .header-menu-backdrop {
display: block;
}
@@ -120,6 +131,30 @@ import Search from "./Search.astro";
display: none;
}
}
+
+ @media (min-width: 1024px) {
+ /* Show menu wrapper as horizontal menu on larger screens */
+ .header-menu-wrapper {
+ display: block;
+ position: static;
+ background-color: transparent;
+ color: inherit;
+ box-shadow: none;
+ padding: 0;
+ width: auto;
+ max-width: none;
+ overflow: visible;
+ }
+
+ .header-open-menu,
+ .header-close-menu {
+ display: none;
+ }
+
+ .header-menu-backdrop {
+ display: none !important;
+ }
+ }