+
+
+ {showIntegrationIcons ? INTEGRATION_ICONS : null}
+
+ );
+}
+
+const INTEGRATION_ICONS = (
+
+
+
+
+
+);
+
+/** The lead product of a section: an icon tile and title on the page background. */
+function ProductLead({
+ icon: Icon,
+ title,
+ description,
+ actions,
+}: {
+ icon: LucideIcon;
+ title: string;
+ description?: string;
+ actions?: React.ReactNode;
+}) {
+ return (
+
+
+
+
+
+
+
{title}
+ {description ? (
+
{description}
+ ) : null}
+
+
+ {actions ?
{actions}
: null}
+
+ );
+}
+
+/** A small card: icon and title on one line, the blurb below, an optional action last. */
+function FeatureCard({
+ icon: Icon,
+ title,
+ description,
+ children,
+}: {
+ icon: LucideIcon;
+ title: string;
+ description: string;
+ children?: React.ReactNode;
+}) {
+ return (
+
+
+
+
{title}
+
+
{description}
+ {children ?
{children}
: null}
);
}
@@ -797,41 +837,14 @@ function ExtensibleSection() {
title="Extend it with plugins"
description="Add new panels and functionality that work in desktop, web and mobile"
>
-
-
-
-
+
+
+
+ {PLUGIN_CAPABILITIES.map((capability) => (
+
+ ))}
-
-
-
- {PLUGIN_CAPABILITIES.map((capability) => (
-
- ))}
-
-
-
-
+
Paseo is Apache 2.0.
+
+ Browse plugins
+
+
+
+ Plugin docs
+
+ >
+);
+
const PLUGIN_CAPABILITIES: ReadonlyArray<{
icon: LucideIcon;
title: string;
@@ -876,26 +908,6 @@ const PLUGIN_CAPABILITIES: ReadonlyArray<{
},
];
-function PluginCapabilityCard({
- icon: Icon,
- title,
- description,
-}: {
- icon: LucideIcon;
- title: string;
- description: string;
-}) {
- return (
-
-
-
-
-
{title}
-
{description}
-
- );
-}
-
const PRINCIPLES: ReadonlyArray<{ icon: LucideIcon; title: string; description: string }> = [
{
icon: Lock,
@@ -937,16 +949,7 @@ function PhilosophySection() {
>
{PRINCIPLES.map((principle) => (
-
-
-
{principle.description}
-
+
))}
diff --git a/packages/website/src/components/sponsorship.tsx b/packages/website/src/components/sponsorship.tsx
index 0693f1877b..9d42b1e95d 100644
--- a/packages/website/src/components/sponsorship.tsx
+++ b/packages/website/src/components/sponsorship.tsx
@@ -285,7 +285,7 @@ export function SponsorsSection({ placement }: SponsorsSectionProps) {
![]()