@theguild/components 9.1.3 → 9.2.0-alpha-20250120155516-f6c928d42d6c65e4326439560d386eab1e950d46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
1
  import { Fragment, jsx } from "react/jsx-runtime";
2
2
  import { forwardRef } from "react";
3
3
  import NextLink from "next/link";
4
- import clsx from "clsx";
4
+ import { cn } from "../cn";
5
5
  const Anchor = forwardRef(function Anchor2({ href = "", children, newWindow, className, ...props }, forwardedRef) {
6
- const classes = clsx(className, "outline-none transition focus-visible:ring");
6
+ const classes = cn("outline-none focus-visible:ring", className);
7
7
  if (typeof href === "string") {
8
8
  if (href.startsWith("#")) {
9
9
  return /* @__PURE__ */ jsx("a", { ref: forwardedRef, href, className: classes, ...props, children });
@@ -5,6 +5,7 @@ import { HiveCombinationMark } from "../../logos";
5
5
  import { FOUR_MAIN_PRODUCTS, SIX_HIGHLIGHTED_PRODUCTS } from "../../products";
6
6
  import { Anchor } from "../anchor";
7
7
  import { ContactTextLink } from "../contact-us";
8
+ import { __LANDING_WIDTHS_ID } from "../hive-layout-config";
8
9
  import {
9
10
  CSAStarLevelOneIcon,
10
11
  DiscordIcon,
@@ -13,6 +14,13 @@ import {
13
14
  TwitterIcon,
14
15
  YouTubeIcon
15
16
  } from "../icons/index";
17
+ const INNER_BOX_WIDTH_STYLE = "max-w-[90rem] [body:has(#hive-l-widths)_&]:max-w-[75rem] [body:has(#hive-l-widths)_&]:mx-4";
18
+ if (process.env.NODE_ENV === "development") {
19
+ console.assert(
20
+ __LANDING_WIDTHS_ID === "hive-l-widths",
21
+ "__LANDING_WIDTHS_ID diverged from the className used in HiveFooter."
22
+ );
23
+ }
16
24
  function HiveFooter({
17
25
  className,
18
26
  logo = /* @__PURE__ */ jsx(HiveCombinationMark, { className: "h-8 w-auto" }),
@@ -21,58 +29,73 @@ function HiveFooter({
21
29
  items
22
30
  }) {
23
31
  items = { ...HiveFooter.DEFAULT_ITEMS, ...items };
24
- return /* @__PURE__ */ jsxs("footer", { className: cn("relative flex justify-center px-4 py-6 xl:px-[120px]", className), children: [
25
- /* @__PURE__ */ jsxs("div", { className: "mx-4 grid w-full max-w-[75rem] grid-cols-1 gap-x-6 text-green-800 max-lg:gap-y-16 sm:grid-cols-4 lg:gap-x-8 xl:gap-x-10 dark:text-neutral-400", children: [
26
- /* @__PURE__ */ jsxs("div", { className: "max-lg:col-span-full", children: [
27
- /* @__PURE__ */ jsx(
28
- Anchor,
32
+ return /* @__PURE__ */ jsxs(
33
+ "footer",
34
+ {
35
+ className: cn("relative flex justify-center px-4 pb-6 pt-[72px] xl:px-[120px]", className),
36
+ children: [
37
+ /* @__PURE__ */ jsxs(
38
+ "div",
29
39
  {
30
- href,
31
- className: "hive-focus -m-1.5 flex rounded p-1.5 text-green-1000 dark:text-white",
32
- children: logo
40
+ className: cn(
41
+ "grid w-full grid-cols-1 gap-x-6 text-green-800 max-lg:gap-y-16 sm:grid-cols-4 lg:gap-x-8 xl:gap-x-10 dark:text-neutral-400",
42
+ INNER_BOX_WIDTH_STYLE
43
+ ),
44
+ children: [
45
+ /* @__PURE__ */ jsxs("div", { className: "max-lg:col-span-full", children: [
46
+ /* @__PURE__ */ jsx(
47
+ Anchor,
48
+ {
49
+ href,
50
+ className: "hive-focus -m-1.5 flex rounded p-1.5 text-green-1000 dark:text-white",
51
+ children: logo
52
+ }
53
+ ),
54
+ /* @__PURE__ */ jsx("p", { className: "mt-6 lg:mt-8", children: description })
55
+ ] }),
56
+ /* @__PURE__ */ jsxs("div", { className: "col-span-full grid grid-flow-row grid-cols-2 justify-stretch gap-6 text-sm sm:col-span-4 sm:grid-cols-3 lg:col-span-3 lg:pb-12 lg:text-base", children: [
57
+ /* @__PURE__ */ jsx(List, { heading: "Products", links: productLinks }),
58
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-[inherit]", children: [
59
+ /* @__PURE__ */ jsx(List, { heading: "Developer", links: items.developer }),
60
+ /* @__PURE__ */ jsx(List, { heading: "Resources", links: items.resources })
61
+ ] }),
62
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-[inherit]", children: [
63
+ /* @__PURE__ */ jsx(List, { heading: "Company", links: items.company }),
64
+ items.links?.map((link, i) => /* @__PURE__ */ jsx(
65
+ Anchor,
66
+ {
67
+ className: "hive-focus -m-2 rounded p-2 font-medium hover:text-blue-700 hover:underline dark:hover:text-blue-100",
68
+ ...link
69
+ },
70
+ i
71
+ )),
72
+ /* @__PURE__ */ jsx(ContactTextLink, {})
73
+ ] }),
74
+ /* @__PURE__ */ jsx(CSAStarLink, { className: "sm:col-start-[-1] lg:col-start-[-2]" })
75
+ ] }),
76
+ /* @__PURE__ */ jsxs("div", { className: "col-span-full flex flex-wrap justify-between gap-x-[inherit] gap-y-8 lg:w-full lg:pb-2 lg:pt-8", children: [
77
+ /* @__PURE__ */ jsx("div", { className: "flex gap-6 lg:order-1", children: SOCIAL_ICONS.map(({ icon: Icon, ...iconProps }) => /* @__PURE__ */ jsx(
78
+ Anchor,
79
+ {
80
+ className: "hive-focus -m-1 rounded-md p-1 hover:text-blue-700 dark:hover:text-blue-100",
81
+ ...iconProps,
82
+ children: /* @__PURE__ */ jsx(Icon, { className: "h-5 w-auto" })
83
+ },
84
+ iconProps.title
85
+ )) }),
86
+ /* @__PURE__ */ jsxs("p", { className: "text-sm", children: [
87
+ "\xA9 ",
88
+ (/* @__PURE__ */ new Date()).getFullYear(),
89
+ " The Guild"
90
+ ] })
91
+ ] })
92
+ ]
33
93
  }
34
94
  ),
35
- /* @__PURE__ */ jsx("p", { className: "mt-6 lg:mt-8", children: description })
36
- ] }),
37
- /* @__PURE__ */ jsxs("div", { className: "col-span-full grid grid-flow-row grid-cols-2 justify-stretch gap-6 text-sm sm:col-span-4 sm:grid-cols-3 lg:col-span-3 lg:pb-12 lg:text-base", children: [
38
- /* @__PURE__ */ jsx(List, { heading: "Products", links: productLinks }),
39
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-[inherit]", children: [
40
- /* @__PURE__ */ jsx(List, { heading: "Developer", links: items.developer }),
41
- /* @__PURE__ */ jsx(List, { heading: "Resources", links: items.resources })
42
- ] }),
43
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-[inherit]", children: [
44
- /* @__PURE__ */ jsx(List, { heading: "Company", links: items.company }),
45
- items.links?.map((link, i) => /* @__PURE__ */ jsx(
46
- Anchor,
47
- {
48
- className: "hive-focus -m-2 rounded p-2 font-medium hover:text-blue-700 hover:underline dark:hover:text-blue-100",
49
- ...link
50
- },
51
- i
52
- )),
53
- /* @__PURE__ */ jsx(ContactTextLink, {})
54
- ] }),
55
- /* @__PURE__ */ jsx(CSAStarLink, { className: "sm:col-start-[-1] lg:col-start-[-2]" })
56
- ] }),
57
- /* @__PURE__ */ jsxs("div", { className: "col-span-full flex flex-wrap justify-between gap-x-[inherit] gap-y-8 lg:w-full lg:pb-2 lg:pt-8", children: [
58
- /* @__PURE__ */ jsx("div", { className: "flex gap-6 lg:order-1", children: SOCIAL_ICONS.map(({ icon: Icon, ...iconProps }) => /* @__PURE__ */ jsx(
59
- Anchor,
60
- {
61
- className: "hive-focus -m-1 rounded-md p-1 hover:text-blue-700 dark:hover:text-blue-100",
62
- ...iconProps,
63
- children: /* @__PURE__ */ jsx(Icon, { className: "h-5 w-auto" })
64
- },
65
- iconProps.title
66
- )) }),
67
- /* @__PURE__ */ jsxs("p", { className: "text-sm", children: [
68
- "\xA9 ",
69
- (/* @__PURE__ */ new Date()).getFullYear(),
70
- " The Guild"
71
- ] })
72
- ] })
73
- ] }),
74
- /* @__PURE__ */ jsx(DecorationArch, { className: "pointer-events-none absolute bottom-0 left-0 hidden mix-blend-multiply lg:block dark:opacity-5 dark:mix-blend-normal" })
75
- ] });
95
+ /* @__PURE__ */ jsx(DecorationArch, { className: "pointer-events-none absolute bottom-0 left-0 hidden mix-blend-multiply lg:block dark:opacity-5 dark:mix-blend-normal" })
96
+ ]
97
+ }
98
+ );
76
99
  }
77
100
  function List({
78
101
  heading,
@@ -0,0 +1,15 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ /**
4
+ * @internal Don't expose this to websites.
5
+ */
6
+ declare const __LANDING_WIDTHS_ID = "hive-l-widths";
7
+ interface HiveLayoutConfigProps {
8
+ widths: 'landing-narrow' | 'docs-wide';
9
+ }
10
+ /**
11
+ * @see {@link HiveLayout} from `@theguild/components/server` for documentation.
12
+ */
13
+ declare function HiveLayoutConfig({ widths }: HiveLayoutConfigProps): react_jsx_runtime.JSX.Element | null;
14
+
15
+ export { HiveLayoutConfig, type HiveLayoutConfigProps, __LANDING_WIDTHS_ID };
@@ -0,0 +1,9 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ const __LANDING_WIDTHS_ID = "hive-l-widths";
3
+ function HiveLayoutConfig({ widths }) {
4
+ return widths === "landing-narrow" ? /* @__PURE__ */ jsx("div", { id: __LANDING_WIDTHS_ID }) : null;
5
+ }
6
+ export {
7
+ HiveLayoutConfig,
8
+ __LANDING_WIDTHS_ID
9
+ };
@@ -1,6 +1,5 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import react__default, { ReactNode, ReactElement, ComponentProps } from 'react';
3
- import { Search } from 'nextra/components';
4
3
  export { GraphQLConfCard, GraphQLConfCardProps } from './graphql-conf-card.mjs';
5
4
  import 'next/image';
6
5
 
@@ -19,7 +18,6 @@ type HiveNavigationProps = {
19
18
  }[];
20
19
  developerMenu: DeveloperMenuProps['developerMenu'];
21
20
  search?: ReactElement;
22
- searchProps?: ComponentProps<typeof Search>;
23
21
  };
24
22
  /**
25
23
  *
@@ -18,6 +18,7 @@ import { GraphQLFoundationLogo, GuildLogo, HiveCombinationMark, TheGuild } from
18
18
  import { PRODUCTS, SIX_HIGHLIGHTED_PRODUCTS } from "../../products";
19
19
  import { Anchor } from "../anchor";
20
20
  import { CallToAction } from "../call-to-action";
21
+ import { __LANDING_WIDTHS_ID } from "../hive-layout-config";
21
22
  import {
22
23
  AccountBox,
23
24
  AppsIcon,
@@ -38,6 +39,13 @@ import {
38
39
  } from "./navigation-menu";
39
40
  export * from "./graphql-conf-card";
40
41
  const ENTERPRISE_MENU_HIDDEN = true;
42
+ const WIDTH_STYLE = "max-w-[90rem] [body:has(#hive-l-widths)_&]:max-w-[1392px]";
43
+ if (process.env.NODE_ENV === "development") {
44
+ console.assert(
45
+ __LANDING_WIDTHS_ID === "hive-l-widths",
46
+ "__LANDING_WIDTHS_ID diverged from the className used in HiveNavigation."
47
+ );
48
+ }
41
49
  function HiveNavigation({
42
50
  companyMenuChildren,
43
51
  children,
@@ -51,7 +59,9 @@ function HiveNavigation({
51
59
  }
52
60
  ],
53
61
  developerMenu,
54
- search = /* @__PURE__ */ jsx(Search, {})
62
+ // we need the background transition disabled to avoid an unpleasant flicker
63
+ // when navigating from a forced light mode page to a dark mode page
64
+ search = /* @__PURE__ */ jsx(Search, { className: "[&_input]:transition-none" })
55
65
  }) {
56
66
  const containerRef = useRef(null);
57
67
  return /* @__PURE__ */ jsxs(
@@ -59,8 +69,8 @@ function HiveNavigation({
59
69
  {
60
70
  ref: containerRef,
61
71
  className: cn(
62
- "sticky top-0 z-20 border-b border-beige-400/[var(--border-opacity)] bg-[rgb(var(--nextra-bg))] px-6 py-4 text-green-1000 transition-[border-color] duration-500 md:mb-[7px] md:mt-2 dark:border-neutral-700/[var(--border-opacity)] dark:text-neutral-200 [&.light]:border-beige-400/[var(--border-opacity)] [&.light]:bg-white [&.light]:text-green-1000",
63
- className?.includes("light") && "light"
72
+ "sticky top-0 z-20 border-b border-beige-400/[var(--border-opacity)] bg-[rgb(var(--nextra-bg))] px-6 py-4 text-green-1000 transition-[border-color] duration-500 md:mb-[7px] md:mt-2 dark:border-neutral-700/[var(--border-opacity)] dark:text-neutral-200",
73
+ WIDTH_STYLE
64
74
  ),
65
75
  style: { "--border-opacity": 0 },
66
76
  children: [
@@ -18,7 +18,6 @@ export { GetYourAPIGameRightSection } from './get-your-api-game-right-section.mj
18
18
  export { HiveNavigation, HiveNavigationProps } from './hive-navigation/index.mjs';
19
19
  export { HiveFooter } from './hive-footer/index.mjs';
20
20
  export { ToolsAndLibrariesCards } from './tools-and-libraries-cards/index.mjs';
21
- export { Hero } from './hero/index.mjs';
22
21
  export { AncillaryProductCard, MainProductCard, ProductCard, ProductCardProps } from './product-card/index.mjs';
23
22
  export { DecorationIsolation } from './decorations/index.mjs';
24
23
  export { CallToAction, CallToActionProps } from './call-to-action.mjs';
@@ -34,6 +33,7 @@ export { VersionDropdown, VersionDropdownProps } from './version-dropdown.mjs';
34
33
  export { Dropdown, DropdownContent, DropdownItem, DropdownTrigger } from './dropdown.mjs';
35
34
  export { FrequentlyAskedQuestions } from './faq/index.mjs';
36
35
  export { ComparisonTable } from './comparison-table/index.mjs';
36
+ export { HiveLayoutConfig } from './hive-layout-config.mjs';
37
37
  export { GraphQLConfCard, GraphQLConfCardProps } from './hive-navigation/graphql-conf-card.mjs';
38
38
  import 'react';
39
39
  import 'url';
@@ -42,7 +42,6 @@ import 'next/image';
42
42
  import 'next/link';
43
43
  import 'react-player';
44
44
  import 'react/jsx-runtime';
45
- import 'nextra/components';
46
45
  import '../products.mjs';
47
46
  import '@giscus/react';
48
47
  import './faq/attach-page-faq-schema.mjs';
@@ -17,7 +17,6 @@ import { GetYourAPIGameRightSection } from "./get-your-api-game-right-section";
17
17
  import { HiveNavigation, GraphQLConfCard } from "./hive-navigation";
18
18
  import { HiveFooter } from "./hive-footer";
19
19
  import { ToolsAndLibrariesCards } from "./tools-and-libraries-cards";
20
- import { Hero } from "./hero";
21
20
  export * from "./product-card";
22
21
  export * from "./decorations";
23
22
  export * from "./call-to-action";
@@ -34,6 +33,7 @@ export * from "./version-dropdown";
34
33
  export * from "./dropdown";
35
34
  import { FrequentlyAskedQuestions } from "./faq";
36
35
  import { ComparisonTable } from "./comparison-table";
36
+ import { HiveLayoutConfig } from "./hive-layout-config";
37
37
  export {
38
38
  Anchor,
39
39
  Button,
@@ -44,12 +44,12 @@ export {
44
44
  GetYourAPIGameRightSection,
45
45
  Giscus,
46
46
  GraphQLConfCard,
47
- Hero,
48
47
  HeroGradient,
49
48
  HeroIllustration,
50
49
  HeroMarketplace,
51
50
  HeroVideo,
52
51
  HiveFooter,
52
+ HiveLayoutConfig,
53
53
  HiveNavigation,
54
54
  Image,
55
55
  InfoList,
package/dist/index.d.mts CHANGED
@@ -21,7 +21,6 @@ export { GetYourAPIGameRightSection } from './components/get-your-api-game-right
21
21
  export { HiveNavigation, HiveNavigationProps } from './components/hive-navigation/index.mjs';
22
22
  export { HiveFooter } from './components/hive-footer/index.mjs';
23
23
  export { ToolsAndLibrariesCards } from './components/tools-and-libraries-cards/index.mjs';
24
- export { Hero } from './components/hero/index.mjs';
25
24
  export { AncillaryProductCard, MainProductCard, ProductCard, ProductCardProps } from './components/product-card/index.mjs';
26
25
  export { DecorationIsolation } from './components/decorations/index.mjs';
27
26
  export { CallToAction, CallToActionProps } from './components/call-to-action.mjs';
@@ -37,6 +36,7 @@ export { VersionDropdown, VersionDropdownProps } from './components/version-drop
37
36
  export { Dropdown, DropdownContent, DropdownItem, DropdownTrigger } from './components/dropdown.mjs';
38
37
  export { FrequentlyAskedQuestions } from './components/faq/index.mjs';
39
38
  export { ComparisonTable } from './components/comparison-table/index.mjs';
39
+ export { HiveLayoutConfig } from './components/hive-layout-config.mjs';
40
40
  export { PRODUCTS } from './products.mjs';
41
41
  export { IEditorProps, IFeatureListProps, IHeroGradientProps, IHeroIllustrationProps, IHeroMarketplaceProps, IHeroVideoProps, IInfoListProps, ILink, IMarketplaceItemProps, IMarketplaceItemsProps, IMarketplaceListProps, IMarketplaceSearchProps, ISchemaPageProps } from './types/components.mjs';
42
42
  export { AngularLettermark, ConductorLettermark, ConfigLettermark, EnvelopLettermark, FetsLettermark, GraphQLESlintLettermark, HeltinLettermark, InspectorLettermark, KitQLLettermark, ModulesLettermark, SSELettermark, ScalarsLettermark, SofaLettermark, StitchingLettermark, ToolsLettermark, WSLettermark, WhatsAppLettermark } from './logos/index.mjs';
@@ -1,8 +1,8 @@
1
- import { FC, ReactNode } from 'react';
1
+ import { DetailedHTMLProps, HtmlHTMLAttributes, FC } from 'react';
2
2
 
3
- declare const Body: FC<{
4
- lightOnlyPages: string[];
5
- children: ReactNode;
6
- }>;
3
+ interface BodyProps extends DetailedHTMLProps<HtmlHTMLAttributes<HTMLBodyElement>, HTMLBodyElement> {
4
+ lightOnlyPages?: string[];
5
+ }
6
+ declare const Body: FC<BodyProps>;
7
7
 
8
- export { Body };
8
+ export { Body, type BodyProps };
@@ -1,10 +1,11 @@
1
1
  "use client";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { usePathname } from "next/navigation";
4
- const Body = ({ lightOnlyPages, children }) => {
4
+ import { cn } from "../cn";
5
+ const Body = ({ lightOnlyPages, children, className, ...rest }) => {
5
6
  const pathname = usePathname();
6
- const isLightOnlyPage = lightOnlyPages.includes(pathname);
7
- return /* @__PURE__ */ jsx("body", { className: isLightOnlyPage ? "light text-green-1000" : void 0, children });
7
+ const isLightOnlyPage = lightOnlyPages?.includes(pathname);
8
+ return /* @__PURE__ */ jsx("body", { className: cn(className, isLightOnlyPage && "light text-green-1000"), ...rest, children });
8
9
  };
9
10
  export {
10
11
  Body
@@ -0,0 +1,52 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { DetailedHTMLProps, HtmlHTMLAttributes, ReactNode, ReactElement } from 'react';
3
+
4
+ interface HiveLayoutProps extends DetailedHTMLProps<HtmlHTMLAttributes<HTMLHtmlElement>, HTMLHtmlElement> {
5
+ children: ReactNode;
6
+ head: ReactNode;
7
+ navbar: ReactElement;
8
+ footer: ReactElement;
9
+ fontFamily: string;
10
+ lightOnlyPages: string[];
11
+ bodyProps?: DetailedHTMLProps<HtmlHTMLAttributes<HTMLBodyElement>, HTMLBodyElement>;
12
+ }
13
+ /**
14
+ * Alternative to `GuildLayout` for Hive-branded websites.
15
+ *
16
+ * Accepts navbar and footer as slots/children props, because they're highly customizable,
17
+ * and their defaults belong to HiveNavigation and HiveFooter component default props.
18
+ *
19
+ * ## Configuration
20
+ *
21
+ * Pages can differ by widths and supported color schemes:
22
+ *
23
+ * - The footer in docs has 90rem width, in landing pages it has 75rem.
24
+ * - The navbar in docs has 90rem width, in landing pages it has 1392px.
25
+ * - Landing pages only support light mode for _business and prioritization reasons_.
26
+ *
27
+ * TODO: Consider unifying this in design phase.
28
+ *
29
+ * For now, a page or a layout can configue these as follows:
30
+ *
31
+ * ### Light-only pages
32
+ *
33
+ * @example
34
+ * ```tsx
35
+ * <HiveLayout bodyProps={{ lightOnlyPages: ['/', '/friends'] }} />
36
+ * ```
37
+ *
38
+ * This will force light theme to the pages with paths `/` and `/friends`,
39
+ * by adding `.light` class to the <body /> element.
40
+ *
41
+ * ### Landing page widths
42
+ *
43
+ * @example
44
+ * ```tsx
45
+ * import { HiveLayoutConfig } from '@theguild/components'
46
+ *
47
+ * <HiveLayoutConfig widths="landing-narrow" />
48
+ * ```
49
+ */
50
+ declare const HiveLayout: ({ children, head, navbar, footer, className, fontFamily, lightOnlyPages, bodyProps, ...rest }: HiveLayoutProps) => Promise<react_jsx_runtime.JSX.Element>;
51
+
52
+ export { HiveLayout, type HiveLayoutProps };
@@ -0,0 +1,97 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { Layout } from "nextra-theme-docs";
3
+ import { Head } from "nextra/components";
4
+ import { getPageMap } from "nextra/page-map";
5
+ import { cn } from "../cn";
6
+ import { Body } from "./body.client";
7
+ const HiveLayout = async ({
8
+ children,
9
+ head,
10
+ navbar,
11
+ footer,
12
+ className,
13
+ fontFamily,
14
+ lightOnlyPages,
15
+ bodyProps,
16
+ ...rest
17
+ }) => {
18
+ const pageMap = await getPageMap();
19
+ return /* @__PURE__ */ jsxs(
20
+ "html",
21
+ {
22
+ lang: "en",
23
+ dir: "ltr",
24
+ suppressHydrationWarning: true,
25
+ className: cn("font-sans", className),
26
+ ...rest,
27
+ children: [
28
+ /* @__PURE__ */ jsxs(Head, { children: [
29
+ /* @__PURE__ */ jsx("style", {
30
+ /* css */
31
+ children: `
32
+ :root {
33
+ --font-sans: ${fontFamily};
34
+ }
35
+ :root.dark {
36
+ --nextra-primary-hue: 67.1deg;
37
+ --nextra-primary-saturation: 100%;
38
+ --nextra-primary-lightness: 55%;
39
+ --nextra-bg: 17, 17, 17;
40
+ }
41
+ :root.dark *::selection {
42
+ background-color: hsl(191deg 95% 72% / 0.25)
43
+ }
44
+ :root.light, :root.dark:has(body.light) {
45
+ --nextra-primary-hue: 191deg;
46
+ --nextra-primary-saturation: 40%;
47
+ --nextra-bg: 255, 255, 255;
48
+ }
49
+
50
+ .x\\:tracking-tight,
51
+ .nextra-steps :is(h2, h3, h4) {
52
+ letter-spacing: normal;
53
+ }
54
+
55
+ html:has(body.light) {
56
+ scroll-behavior: smooth;
57
+ background: #fff;
58
+ color-scheme: light !important;
59
+ }
60
+
61
+ html:has(body.light) .nextra-search-results mark {
62
+ background: oklch(0.611752 0.07807 214.47 / 0.8);
63
+ }
64
+
65
+ html:has(body.light) .nextra-sidebar-footer {
66
+ display: none;
67
+ }
68
+
69
+ #crisp-chatbox { z-index: 40 !important; }
70
+ `
71
+ }),
72
+ head
73
+ ] }),
74
+ /* @__PURE__ */ jsx(Body, { lightOnlyPages, ...bodyProps, children: /* @__PURE__ */ jsx(
75
+ Layout,
76
+ {
77
+ editLink: "Edit this page on GitHub",
78
+ docsRepositoryBase: "https://github.com/graphql-hive/platform/tree/main/packages/web/docs",
79
+ pageMap,
80
+ feedback: {
81
+ labels: "kind/docs"
82
+ },
83
+ sidebar: {
84
+ defaultMenuCollapseLevel: 1
85
+ },
86
+ navbar,
87
+ footer,
88
+ children
89
+ }
90
+ ) })
91
+ ]
92
+ }
93
+ );
94
+ };
95
+ export {
96
+ HiveLayout
97
+ };
@@ -8,9 +8,10 @@ export { convertToPageMap, createIndexPage, getPageMap, mergeMetaWithPageMap, no
8
8
  export { evaluate } from 'nextra/evaluate';
9
9
  export { fetchPackageInfo } from './npm.mjs';
10
10
  export { sharedMetaItems } from './shared-meta-items.mjs';
11
- export { Body } from './body.client.mjs';
11
+ export { Body, BodyProps } from './body.client.mjs';
12
12
  export { remarkLinkRewrite } from './remark-link-rewrite.mjs';
13
13
  export { GuildLayout, getDefaultMetadata } from './theme-layout.mjs';
14
+ export { HiveLayout } from './hive-layout.mjs';
14
15
  import 'next/image';
15
16
  import 'nextra';
16
17
  import 'nextra/mdx-components/pre/index';
@@ -12,12 +12,15 @@ import {
12
12
  import { evaluate } from "nextra/evaluate";
13
13
  import { fetchPackageInfo } from "./npm.js";
14
14
  import { sharedMetaItems } from "./shared-meta-items.js";
15
- import { Body } from "./body.client.js";
15
+ import { Body, BodyProps } from "./body.client.js";
16
16
  import { remarkLinkRewrite } from "./remark-link-rewrite.js";
17
17
  import { GuildLayout, getDefaultMetadata } from "./theme-layout.js";
18
+ import { HiveLayout } from "./hive-layout.js";
18
19
  export {
19
20
  Body,
21
+ BodyProps,
20
22
  GuildLayout,
23
+ HiveLayout,
21
24
  MDXRemote,
22
25
  compileMdx,
23
26
  convertToPageMap,
@@ -9,25 +9,27 @@ declare const useMDXComponents: (components?: object) => {
9
9
  object?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.ObjectHTMLAttributes<HTMLObjectElement>, HTMLObjectElement>, "ref">> | undefined;
10
10
  map?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.MapHTMLAttributes<HTMLMapElement>, HTMLMapElement>, "ref">> | undefined;
11
11
  filter?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.SVGProps<SVGFilterElement>, "ref">> | undefined;
12
- code: keyof react.JSX.IntrinsicElements | react.FC<react.ClassAttributes<HTMLElement> & react.HTMLAttributes<HTMLElement> & {
13
- "data-language"?: string;
14
- }> | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">>;
15
- path?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.SVGProps<SVGPathElement>, "ref">> | undefined;
16
12
  footer?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
17
- set?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.SVGProps<SVGSetElement>, "ref">> | undefined;
18
- search?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
13
+ article?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
19
14
  title?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLTitleElement>, HTMLTitleElement>, "ref">> | undefined;
15
+ menu?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.MenuHTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
16
+ search?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
20
17
  big?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
21
18
  link?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.LinkHTMLAttributes<HTMLLinkElement>, HTMLLinkElement>, "ref">> | undefined;
22
19
  small?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
23
20
  sub?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
24
21
  sup?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
25
- data?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.DataHTMLAttributes<HTMLDataElement>, HTMLDataElement>, "ref">> | undefined;
22
+ code: keyof react.JSX.IntrinsicElements | react.FC<react.ClassAttributes<HTMLElement> & react.HTMLAttributes<HTMLElement> & {
23
+ "data-language"?: string;
24
+ }> | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">>;
25
+ path?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.SVGProps<SVGPathElement>, "ref">> | undefined;
26
+ set?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.SVGProps<SVGSetElement>, "ref">> | undefined;
27
+ time?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.TimeHTMLAttributes<HTMLTimeElement>, HTMLTimeElement>, "ref">> | undefined;
28
+ span?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref">> | undefined;
26
29
  a: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref">>;
27
30
  abbr?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
28
31
  address?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
29
32
  area?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.AreaHTMLAttributes<HTMLAreaElement>, HTMLAreaElement>, "ref">> | undefined;
30
- article?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
31
33
  aside?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
32
34
  audio?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.AudioHTMLAttributes<HTMLAudioElement>, HTMLAudioElement>, "ref">> | undefined;
33
35
  b?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
@@ -44,6 +46,7 @@ declare const useMDXComponents: (components?: object) => {
44
46
  cite?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
45
47
  col?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.ColHTMLAttributes<HTMLTableColElement>, HTMLTableColElement>, "ref">> | undefined;
46
48
  colgroup?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.ColgroupHTMLAttributes<HTMLTableColElement>, HTMLTableColElement>, "ref">> | undefined;
49
+ data?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.DataHTMLAttributes<HTMLDataElement>, HTMLDataElement>, "ref">> | undefined;
47
50
  datalist?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLDataListElement>, HTMLDataListElement>, "ref">> | undefined;
48
51
  dd?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
49
52
  del?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.DelHTMLAttributes<HTMLModElement>, HTMLModElement>, "ref">> | undefined;
@@ -81,7 +84,6 @@ declare const useMDXComponents: (components?: object) => {
81
84
  li: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref">> | ((props: Omit<react.DetailedHTMLProps<react.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "ref">) => react_jsx_runtime.JSX.Element);
82
85
  main?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
83
86
  mark?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
84
- menu?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.MenuHTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
85
87
  menuitem?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
86
88
  meta?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.MetaHTMLAttributes<HTMLMetaElement>, HTMLMetaElement>, "ref">> | undefined;
87
89
  meter?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.MeterHTMLAttributes<HTMLMeterElement>, HTMLMeterElement>, "ref">> | undefined;
@@ -108,7 +110,6 @@ declare const useMDXComponents: (components?: object) => {
108
110
  section?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
109
111
  select?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.SelectHTMLAttributes<HTMLSelectElement>, HTMLSelectElement>, "ref">> | undefined;
110
112
  source?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.SourceHTMLAttributes<HTMLSourceElement>, HTMLSourceElement>, "ref">> | undefined;
111
- span?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref">> | undefined;
112
113
  strong?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
113
114
  style?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.StyleHTMLAttributes<HTMLStyleElement>, HTMLStyleElement>, "ref">> | undefined;
114
115
  summary: keyof react.JSX.IntrinsicElements | react.FC<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>> | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">>;
@@ -120,7 +121,6 @@ declare const useMDXComponents: (components?: object) => {
120
121
  tfoot?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>, "ref">> | undefined;
121
122
  th: keyof react.JSX.IntrinsicElements | react.FC<react.DetailedHTMLProps<react.ThHTMLAttributes<HTMLTableHeaderCellElement>, HTMLTableHeaderCellElement>> | react.FC<Omit<react.DetailedHTMLProps<react.ThHTMLAttributes<HTMLTableHeaderCellElement>, HTMLTableHeaderCellElement>, "ref">>;
122
123
  thead?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>, "ref">> | undefined;
123
- time?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.TimeHTMLAttributes<HTMLTimeElement>, HTMLTimeElement>, "ref">> | undefined;
124
124
  tr: keyof react.JSX.IntrinsicElements | react.FC<react.DetailedHTMLProps<react.HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>> | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, "ref">>;
125
125
  track?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.TrackHTMLAttributes<HTMLTrackElement>, HTMLTrackElement>, "ref">> | undefined;
126
126
  u?: keyof react.JSX.IntrinsicElements | react.FC<Omit<react.DetailedHTMLProps<react.HTMLAttributes<HTMLElement>, HTMLElement>, "ref">> | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theguild/components",
3
- "version": "9.1.3",
3
+ "version": "9.2.0-alpha-20250120155516-f6c928d42d6c65e4326439560d386eab1e950d46",
4
4
  "repository": {
5
5
  "url": "https://github.com/the-guild-org/docs",
6
6
  "directory": "packages/components"
@@ -51,8 +51,8 @@
51
51
  "@radix-ui/react-navigation-menu": "^1.2.0",
52
52
  "clsx": "2.1.1",
53
53
  "fuzzy": "0.1.3",
54
- "nextra": "4.0.4",
55
- "nextra-theme-docs": "4.0.4",
54
+ "nextra": "4.0.3",
55
+ "nextra-theme-docs": "4.0.3",
56
56
  "react-paginate": "8.2.0",
57
57
  "react-player": "2.16.0",
58
58
  "semver": "^7.3.8",
@@ -1,12 +0,0 @@
1
- import { FC, ReactElement, ComponentProps, ReactNode } from 'react';
2
-
3
- declare const Hero: FC<{
4
- className?: string;
5
- heading: string;
6
- text: string;
7
- checkmarks: string[];
8
- logo: ReactElement<ComponentProps<'svg'>>;
9
- children?: ReactNode;
10
- }>;
11
-
12
- export { Hero };
@@ -1,132 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { cloneElement, useId } from "react";
3
- import { cn } from "../../cn";
4
- import { DecorationIsolation } from "../decorations";
5
- import { Heading } from "../heading";
6
- import { CheckIcon } from "../icons";
7
- const Hero = (props) => {
8
- const gradientWhiteId = useId();
9
- const gradientWhiteId2 = useId();
10
- const greenBgId = useId();
11
- return /* @__PURE__ */ jsxs(
12
- "div",
13
- {
14
- className: cn(
15
- "relative isolate mx-4 flex max-w-[90rem] flex-col items-center justify-center gap-6 overflow-hidden rounded-3xl bg-blue-400 px-4 py-6 max-sm:mt-2 sm:py-12 md:mx-6 md:gap-8 lg:py-24",
16
- props.className
17
- ),
18
- children: [
19
- /* @__PURE__ */ jsxs(DecorationIsolation, { className: "-z-10", children: [
20
- cloneElement(props.logo, {
21
- className: cn(
22
- "absolute stroke-white/10 max-lg:hidden",
23
- "-left-1/2 top-1/2 -translate-y-1/2"
24
- ),
25
- fill: `url(#${gradientWhiteId2})`,
26
- strokeWidth: "0.1",
27
- width: "auto",
28
- height: "50%"
29
- }),
30
- cloneElement(props.logo, {
31
- className: cn(
32
- "absolute top-1/2 -translate-y-1/2 stroke-white/10",
33
- "-right-1/2 lg:-right-1/3",
34
- "h-2/3 lg:h-[calc(100%-5%)]"
35
- ),
36
- fill: `url(#${gradientWhiteId2})`,
37
- strokeWidth: "0.1",
38
- width: "auto"
39
- })
40
- ] }),
41
- /* @__PURE__ */ jsxs("div", { className: "relative", children: [
42
- cloneElement(props.logo, {
43
- fill: `url(#${gradientWhiteId})`,
44
- className: "absolute inset-1/2 -translate-x-1/2 -translate-y-1/2 size-1/2"
45
- }),
46
- /* @__PURE__ */ jsxs(
47
- "svg",
48
- {
49
- width: "96",
50
- height: "96",
51
- viewBox: "0 0 96 96",
52
- fill: "none",
53
- xmlns: "http://www.w3.org/2000/svg",
54
- children: [
55
- /* @__PURE__ */ jsx("rect", { width: "96", height: "96", rx: "24", fill: `url(#${greenBgId})` }),
56
- /* @__PURE__ */ jsx(
57
- "rect",
58
- {
59
- x: "0.5",
60
- y: "0.5",
61
- width: "95",
62
- height: "95",
63
- rx: "23.5",
64
- stroke: `url(#${gradientWhiteId})`
65
- }
66
- ),
67
- /* @__PURE__ */ jsx("path", { d: "M57.0264 32.1652H48.9577L53.8032 27.3197L48.4855 22L43.1658 27.3197L48.0114 32.1652H39.9427C38.9042 32.1652 37.9069 32.5786 37.1721 33.3134L23 47.4855L28.3197 52.8052L45.715 35.4099C47.2452 33.8797 49.7258 33.8797 51.2561 35.4099L68.6513 52.8052L73.971 47.4855L59.797 33.3114C59.0622 32.5767 58.0649 32.1632 57.0264 32.1632V32.1652ZM48.4854 63.3623L43.1665 68.6811L48.4854 74L53.8042 68.6811L48.4854 63.3623ZM39.9446 52.8054H48.4855H48.4894H57.0303C58.0688 52.8054 59.0661 53.2188 59.8008 53.9536L63.89 58.0428L58.5704 63.3625L51.258 56.0501C49.7277 54.5198 47.2472 54.5198 45.7169 56.0501L38.4045 63.3625L33.0848 58.0428L37.174 53.9536C37.9088 53.2188 38.9061 52.8054 39.9446 52.8054Z" }),
68
- /* @__PURE__ */ jsxs("defs", { children: [
69
- /* @__PURE__ */ jsxs(
70
- "linearGradient",
71
- {
72
- id: greenBgId,
73
- x1: "0",
74
- y1: "0",
75
- x2: "96",
76
- y2: "96",
77
- gradientUnits: "userSpaceOnUse",
78
- children: [
79
- /* @__PURE__ */ jsx("stop", { stopColor: "#3B736A" }),
80
- /* @__PURE__ */ jsx("stop", { offset: "1", stopColor: "#15433C" })
81
- ]
82
- }
83
- ),
84
- /* @__PURE__ */ jsxs(
85
- "linearGradient",
86
- {
87
- id: gradientWhiteId,
88
- x1: "0",
89
- y1: "0",
90
- x2: "96",
91
- y2: "96",
92
- gradientUnits: "userSpaceOnUse",
93
- children: [
94
- /* @__PURE__ */ jsx("stop", { stopColor: "white", stopOpacity: "0.8" }),
95
- /* @__PURE__ */ jsx("stop", { offset: "1", stopColor: "white", stopOpacity: "0.4" })
96
- ]
97
- }
98
- ),
99
- /* @__PURE__ */ jsxs(
100
- "linearGradient",
101
- {
102
- id: gradientWhiteId2,
103
- x1: "1",
104
- y1: "2",
105
- x2: "161",
106
- y2: "171",
107
- gradientUnits: "userSpaceOnUse",
108
- children: [
109
- /* @__PURE__ */ jsx("stop", { stopColor: "white", stopOpacity: "0.1" }),
110
- /* @__PURE__ */ jsx("stop", { offset: "1", stopColor: "white", stopOpacity: "0.5" })
111
- ]
112
- }
113
- )
114
- ] })
115
- ]
116
- }
117
- )
118
- ] }),
119
- /* @__PURE__ */ jsx(Heading, { as: "h1", size: "xl", className: "mx-auto max-w-3xl text-balance text-center", children: props.heading }),
120
- /* @__PURE__ */ jsx("p", { className: "mx-auto w-[512px] max-w-[80%] text-center leading-6 text-green-800", children: props.text }),
121
- /* @__PURE__ */ jsx("ul", { className: "mx-auto flex list-none gap-x-6 gap-y-2 text-sm font-medium max-md:flex-col", children: props.checkmarks.map((text) => /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2", children: [
122
- /* @__PURE__ */ jsx(CheckIcon, { className: "text-green-800" }),
123
- text
124
- ] }, text)) }),
125
- /* @__PURE__ */ jsx("div", { className: "flex w-full justify-center gap-2 px-0.5 max-sm:flex-col sm:gap-4", children: props.children })
126
- ]
127
- }
128
- );
129
- };
130
- export {
131
- Hero
132
- };