diff options
| author | Leitwolf11 | 2026-11-09 01:18:34 +0300 |
|---|---|---|
| committer | Leitwolf11 | 2026-11-09 01:18:34 +0300 |
| commit | c0bafe9050161ea6ca0c49f54897f908ca16ce84 (patch) | |
| tree | 7496e782c0a82a9ff5ea9b59b85e3607fd7794d6 /apps/web/app | |
| parent | 66f3cc196a9b91d471a90e021b12630100181c4a (diff) | |
| parent | 3ac256e69f10a3bb78d394c77d03a88a72261597 (diff) | |
| download | progmaweb-security/cloudflare-real-ip.tar.gz | |
Merge remote-tracking branch 'origin/main' into security/cloudflare-real-ipsecurity/cloudflare-real-ip
Diffstat (limited to 'apps/web/app')
| -rw-r--r-- | apps/web/app/ides/layout.tsx | 11 | ||||
| -rw-r--r-- | apps/web/app/ides/page.tsx | 53 | ||||
| -rw-r--r-- | apps/web/app/ides/xide/page.tsx | 93 |
3 files changed, 0 insertions, 157 deletions
diff --git a/apps/web/app/ides/layout.tsx b/apps/web/app/ides/layout.tsx deleted file mode 100644 index 8b1c6b7..0000000 --- a/apps/web/app/ides/layout.tsx +++ /dev/null @@ -1,11 +0,0 @@ -// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> -// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.1 - -import type { ReactNode } from "react"; -import "../site.css"; - -export default function IdesLayout({ - children, -}: Readonly<{ children: ReactNode }>) { - return children; -} diff --git a/apps/web/app/ides/page.tsx b/apps/web/app/ides/page.tsx deleted file mode 100644 index 3a832a8..0000000 --- a/apps/web/app/ides/page.tsx +++ /dev/null @@ -1,53 +0,0 @@ -// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> -// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.1 - -import type { Metadata } from "next"; -import { Footer } from "@/components/Footer"; -import { SiteHeader } from "@/components/SiteHeader"; -import { getLocale } from "@/lib/locale.server"; -import { forwardArrow } from "@/lib/localization"; -import { getCatalogMessages, products } from "@/lib/products"; -import { getSitesMessages } from "@/lib/product-sites"; - -export async function generateMetadata(): Promise<Metadata> { - const { ides } = getSitesMessages(await getLocale()); - return { - title: ides.title, - description: ides.description, - alternates: { canonical: "https://ides.progmasoft.com/" }, - }; -} - -/** ides.progmasoft.com: the development environments of Progmasoft. */ -export default async function IdesPage() { - const locale = await getLocale(); - const { ides } = getSitesMessages(locale); - const xide = getCatalogMessages(locale).products.xide; - return ( - <div className="pm-page"> - <SiteHeader locale={locale} /> - <main> - <section className="pm-hero"> - <div className="pm-shell pm-product-hero"> - <h1>{ides.title}</h1> - <p className="pm-lede">{ides.description}</p> - </div> - </section> - <section className="pm-section"> - <div className="pm-shell pm-product-grid"> - <a className="pm-card pm-product-card" href="/xide"> - <span className={`pm-accent pm-accent-${products.xide.accent}`} /> - <span className="pm-tag">{xide.category}</span> - <h3>{products.xide.name}</h3> - <p>{xide.tagline}</p> - <span className="pm-more"> - {ides.open} {forwardArrow(locale)} - </span> - </a> - </div> - </section> - </main> - <Footer locale={locale} /> - </div> - ); -} diff --git a/apps/web/app/ides/xide/page.tsx b/apps/web/app/ides/xide/page.tsx deleted file mode 100644 index 86022e0..0000000 --- a/apps/web/app/ides/xide/page.tsx +++ /dev/null @@ -1,93 +0,0 @@ -// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com> -// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.1 - -import type { Metadata } from "next"; -import { Footer } from "@/components/Footer"; -import { SiteHeader } from "@/components/SiteHeader"; -import { getLocale } from "@/lib/locale.server"; -import { products } from "@/lib/products"; -import { getSitesMessages } from "@/lib/product-sites"; - -export async function generateMetadata(): Promise<Metadata> { - const { xide } = getSitesMessages(await getLocale()); - return { - title: `Xide · ${xide.tagline}`, - description: xide.description, - alternates: { canonical: "https://ides.progmasoft.com/xide" }, - }; -} - -/** ides.progmasoft.com/xide: the site of Xide. */ -export default async function XidePage() { - const locale = await getLocale(); - const { xide, common } = getSitesMessages(locale); - return ( - <div className="pm-page"> - <SiteHeader locale={locale} /> - <main> - <section className="pm-hero"> - <div className="pm-shell pm-hero-inner"> - <div> - <p className="eyebrow">{xide.eyebrow}</p> - <h1> - Xide <span>{xide.tagline}</span> - </h1> - <p className="pm-lede">{xide.description}</p> - <div className="pm-actions"> - <a className="button" href={products.xide.source}> - {common.source} - </a> - <a - className="button button-secondary" - href="https://product.progmasoft.com/xide" - > - {common.productPage} - </a> - </div> - </div> - <aside className="pm-aside"> - <span className="pm-tag">{common.status}</span> - <p>{xide.status}</p> - </aside> - </div> - </section> - - <section className="pm-section"> - <div className="pm-shell"> - <div className="pm-heading"> - <h2>{xide.layoutTitle}</h2> - </div> - <div className="pm-bento"> - {xide.layout.map(([title, description]) => ( - <article className="pm-card" key={title}> - <h3>{title}</h3> - <p>{description}</p> - </article> - ))} - </div> - </div> - </section> - - <section className="pm-section pm-section-muted"> - <div className="pm-shell pm-detail"> - <div className="pm-heading"> - <h2>{xide.languagesTitle}</h2> - <p>{xide.languagesDescription}</p> - </div> - <div> - <div className="pm-heading"> - <h2>{xide.architectureTitle}</h2> - </div> - <ul className="pm-features"> - {xide.architecture.map((item) => ( - <li key={item}>{item}</li> - ))} - </ul> - </div> - </div> - </section> - </main> - <Footer locale={locale} /> - </div> - ); -} |