@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.
- package/dist/components/anchor.js +2 -2
- package/dist/components/hive-footer/index.js +72 -49
- package/dist/components/hive-layout-config.d.mts +15 -0
- package/dist/components/hive-layout-config.js +9 -0
- package/dist/components/hive-navigation/index.d.mts +0 -2
- package/dist/components/hive-navigation/index.js +13 -3
- package/dist/components/index.d.mts +1 -2
- package/dist/components/index.js +2 -2
- package/dist/index.d.mts +1 -1
- package/dist/server/body.client.d.mts +6 -6
- package/dist/server/body.client.js +4 -3
- package/dist/server/hive-layout.d.mts +52 -0
- package/dist/server/hive-layout.js +97 -0
- package/dist/server/index.d.mts +2 -1
- package/dist/server/index.js +4 -1
- package/dist/server/mdx-components/mdx-components.d.mts +11 -11
- package/package.json +3 -3
- package/dist/components/hero/index.d.mts +0 -12
- package/dist/components/hero/index.js +0 -132
|
@@ -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
|
|
4
|
+
import { cn } from "../cn";
|
|
5
5
|
const Anchor = forwardRef(function Anchor2({ href = "", children, newWindow, className, ...props }, forwardedRef) {
|
|
6
|
-
const classes =
|
|
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(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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(
|
|
36
|
-
]
|
|
37
|
-
|
|
38
|
-
|
|
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
|
-
|
|
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
|
|
63
|
-
|
|
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';
|
package/dist/components/index.js
CHANGED
|
@@ -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 {
|
|
1
|
+
import { DetailedHTMLProps, HtmlHTMLAttributes, FC } from 'react';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
lightOnlyPages
|
|
5
|
-
|
|
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
|
-
|
|
4
|
+
import { cn } from "../cn";
|
|
5
|
+
const Body = ({ lightOnlyPages, children, className, ...rest }) => {
|
|
5
6
|
const pathname = usePathname();
|
|
6
|
-
const isLightOnlyPage = lightOnlyPages
|
|
7
|
-
return /* @__PURE__ */ jsx("body", { className: isLightOnlyPage
|
|
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
|
+
};
|
package/dist/server/index.d.mts
CHANGED
|
@@ -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';
|
package/dist/server/index.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
55
|
-
"nextra-theme-docs": "4.0.
|
|
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
|
-
};
|