@sp-days-framework/docusaurus-frontpage-collection 1.0.2
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/LICENSE +21 -0
- package/README.md +339 -0
- package/lib/components/Block/index.d.ts +22 -0
- package/lib/components/Block/index.d.ts.map +1 -0
- package/lib/components/Block/index.js +32 -0
- package/lib/components/Block/index.js.map +1 -0
- package/lib/components/Block/styles.module.css +26 -0
- package/lib/components/Columns/index.d.ts +68 -0
- package/lib/components/Columns/index.d.ts.map +1 -0
- package/lib/components/Columns/index.js +119 -0
- package/lib/components/Columns/index.js.map +1 -0
- package/lib/components/Columns/styles.module.css +196 -0
- package/lib/components/CourseFeature/index.d.ts +99 -0
- package/lib/components/CourseFeature/index.d.ts.map +1 -0
- package/lib/components/CourseFeature/index.js +188 -0
- package/lib/components/CourseFeature/index.js.map +1 -0
- package/lib/components/CourseFeature/styles.module.css +204 -0
- package/lib/components/FancyHeader/index.d.ts +24 -0
- package/lib/components/FancyHeader/index.d.ts.map +1 -0
- package/lib/components/FancyHeader/index.js +32 -0
- package/lib/components/FancyHeader/index.js.map +1 -0
- package/lib/components/FancyHeader/styles.module.css +23 -0
- package/lib/components/GetStarted/index.d.ts +99 -0
- package/lib/components/GetStarted/index.d.ts.map +1 -0
- package/lib/components/GetStarted/index.js +127 -0
- package/lib/components/GetStarted/index.js.map +1 -0
- package/lib/components/GetStarted/styles.module.css +174 -0
- package/lib/components/HeroBanner/DotCrossGrid.d.ts +25 -0
- package/lib/components/HeroBanner/DotCrossGrid.d.ts.map +1 -0
- package/lib/components/HeroBanner/DotCrossGrid.js +283 -0
- package/lib/components/HeroBanner/DotCrossGrid.js.map +1 -0
- package/lib/components/HeroBanner/DotCrossGrid.module.css +9 -0
- package/lib/components/HeroBanner/index.d.ts +42 -0
- package/lib/components/HeroBanner/index.d.ts.map +1 -0
- package/lib/components/HeroBanner/index.js +116 -0
- package/lib/components/HeroBanner/index.js.map +1 -0
- package/lib/components/HeroBanner/styles.module.css +204 -0
- package/lib/components/IconContainer/index.d.ts +76 -0
- package/lib/components/IconContainer/index.d.ts.map +1 -0
- package/lib/components/IconContainer/index.js +119 -0
- package/lib/components/IconContainer/index.js.map +1 -0
- package/lib/components/IconContainer/styles.module.css +147 -0
- package/lib/components/Iconify/index.d.ts +56 -0
- package/lib/components/Iconify/index.d.ts.map +1 -0
- package/lib/components/Iconify/index.js +88 -0
- package/lib/components/Iconify/index.js.map +1 -0
- package/lib/components/Iconify/styles.module.css +30 -0
- package/lib/index.d.ts +36 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +73 -0
- package/lib/index.js.map +1 -0
- package/lib/utils/IconifyIcon.d.ts +17 -0
- package/lib/utils/IconifyIcon.d.ts.map +1 -0
- package/lib/utils/IconifyIcon.js +26 -0
- package/lib/utils/IconifyIcon.js.map +1 -0
- package/lib/utils/InlineSvg.d.ts +29 -0
- package/lib/utils/InlineSvg.d.ts.map +1 -0
- package/lib/utils/InlineSvg.js +90 -0
- package/lib/utils/InlineSvg.js.map +1 -0
- package/lib/utils/ThemedIcon.d.ts +61 -0
- package/lib/utils/ThemedIcon.d.ts.map +1 -0
- package/lib/utils/ThemedIcon.js +128 -0
- package/lib/utils/ThemedIcon.js.map +1 -0
- package/lib/utils/constants.d.ts +23 -0
- package/lib/utils/constants.d.ts.map +1 -0
- package/lib/utils/constants.js +36 -0
- package/lib/utils/constants.js.map +1 -0
- package/lib/utils/index.d.ts +9 -0
- package/lib/utils/index.d.ts.map +1 -0
- package/lib/utils/index.js +19 -0
- package/lib/utils/index.js.map +1 -0
- package/lib/utils/logger.d.ts +21 -0
- package/lib/utils/logger.d.ts.map +1 -0
- package/lib/utils/logger.js +38 -0
- package/lib/utils/logger.js.map +1 -0
- package/lib/utils/types.d.ts +129 -0
- package/lib/utils/types.d.ts.map +1 -0
- package/lib/utils/types.js +6 -0
- package/lib/utils/types.js.map +1 -0
- package/package.json +73 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { WithChildren } from '../../utils/types';
|
|
3
|
+
export interface FancyHeaderProps extends WithChildren {
|
|
4
|
+
/** The heading level (default: 'h2') */
|
|
5
|
+
as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
6
|
+
/** Additional CSS class */
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* FancyHeader Component
|
|
11
|
+
*
|
|
12
|
+
* A header with an underline accent and section wrapper.
|
|
13
|
+
* Perfect for creating visually distinct section headers.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* <FancyHeader>IconContainers</FancyHeader>
|
|
18
|
+
*
|
|
19
|
+
* <FancyHeader as="h3">Getting Started</FancyHeader>
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare const FancyHeader: React.FC<FancyHeaderProps>;
|
|
23
|
+
export default FancyHeader;
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/FancyHeader/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,wCAAwC;IACxC,EAAE,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC7C,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAqBlD,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.FancyHeader = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const clsx_1 = __importDefault(require("clsx"));
|
|
9
|
+
const Heading_1 = __importDefault(require("@theme/Heading"));
|
|
10
|
+
const styles_module_css_1 = __importDefault(require("./styles.module.css"));
|
|
11
|
+
/**
|
|
12
|
+
* FancyHeader Component
|
|
13
|
+
*
|
|
14
|
+
* A header with an underline accent and section wrapper.
|
|
15
|
+
* Perfect for creating visually distinct section headers.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```tsx
|
|
19
|
+
* <FancyHeader>IconContainers</FancyHeader>
|
|
20
|
+
*
|
|
21
|
+
* <FancyHeader as="h3">Getting Started</FancyHeader>
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
const FancyHeader = ({ as = 'h2', className, children, ...props }) => {
|
|
25
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
26
|
+
react_1.default.createElement("div", { style: { display: 'block', marginTop: '1rem' } }),
|
|
27
|
+
react_1.default.createElement("div", { className: styles_module_css_1.default.section },
|
|
28
|
+
react_1.default.createElement(Heading_1.default, { as: as, className: (0, clsx_1.default)(styles_module_css_1.default.fancyHeader, className), ...props }, children))));
|
|
29
|
+
};
|
|
30
|
+
exports.FancyHeader = FancyHeader;
|
|
31
|
+
exports.default = exports.FancyHeader;
|
|
32
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/FancyHeader/index.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAC1B,gDAAwB;AACxB,6DAAqC;AAErC,4EAAyC;AASzC;;;;;;;;;;;;GAYG;AACI,MAAM,WAAW,GAA+B,CAAC,EACtD,EAAE,GAAG,IAAI,EACT,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,EAAE;IACH,OAAO,CACL;QACE,uCAAK,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAQ;QAE3D,uCAAK,SAAS,EAAE,2BAAM,CAAC,OAAO;YAC5B,8BAAC,iBAAO,IACN,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,IAAA,cAAI,EAAC,2BAAM,CAAC,WAAW,EAAE,SAAS,CAAC,KAC1C,KAAK,IAER,QAAQ,CACD,CACN,CACL,CACJ,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,WAAW,eAqBtB;AAEF,kBAAe,mBAAW,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FancyHeader component styles
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
.fancyHeader {
|
|
6
|
+
font-size: 1.8rem;
|
|
7
|
+
position: relative;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.fancyHeader:after {
|
|
11
|
+
content: '';
|
|
12
|
+
position: absolute;
|
|
13
|
+
bottom: -0.5rem;
|
|
14
|
+
left: 0;
|
|
15
|
+
width: 4rem;
|
|
16
|
+
height: 3px;
|
|
17
|
+
background-color: var(--ifm-color-primary);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.section {
|
|
21
|
+
margin-bottom: 3rem;
|
|
22
|
+
scroll-margin-top: 70px;
|
|
23
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { WithChildren } from '../../utils/types';
|
|
3
|
+
import type { IconifyConfig, CustomSvgConfig, CustomImageConfig, IconColorConfig, TitleColorConfig } from '../../utils/types';
|
|
4
|
+
export interface ExploreItemProps extends WithChildren {
|
|
5
|
+
/** Title of the explore item */
|
|
6
|
+
title: string;
|
|
7
|
+
/** Iconify icon configuration */
|
|
8
|
+
iconify?: IconifyConfig | string;
|
|
9
|
+
/** Custom SVG configuration (inline rendering, supports color override) */
|
|
10
|
+
customSvg?: CustomSvgConfig;
|
|
11
|
+
/** Custom image configuration (img tag, no color override) */
|
|
12
|
+
customImage?: CustomImageConfig;
|
|
13
|
+
/** Icon color configuration */
|
|
14
|
+
iconColors?: IconColorConfig;
|
|
15
|
+
/** Title color configuration */
|
|
16
|
+
titleColors?: TitleColorConfig;
|
|
17
|
+
/** Disable hover animations (default: false) */
|
|
18
|
+
disableAnimation?: boolean;
|
|
19
|
+
/** Link to navigate to when clicked */
|
|
20
|
+
link: string;
|
|
21
|
+
}
|
|
22
|
+
export interface ExploreProps extends WithChildren {
|
|
23
|
+
/** Minimum width for each explore item (default: '250px') */
|
|
24
|
+
minWidth?: string;
|
|
25
|
+
/** Fixed number of columns (0 for auto-responsive, default: 0) */
|
|
26
|
+
columns?: number;
|
|
27
|
+
}
|
|
28
|
+
export interface GetStartedProps extends WithChildren {
|
|
29
|
+
/** Text for the call-to-action button */
|
|
30
|
+
buttonText: string;
|
|
31
|
+
/** Link for the call-to-action button */
|
|
32
|
+
buttonLink: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* ExploreItem Component
|
|
36
|
+
*
|
|
37
|
+
* Individual card for exploration items.
|
|
38
|
+
* Must be used as a child of the Explore component.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```tsx
|
|
42
|
+
* <ExploreItem
|
|
43
|
+
* title="Documentation"
|
|
44
|
+
* iconify="mdi:book-open-page-variant"
|
|
45
|
+
* link="/docs"
|
|
46
|
+
* >
|
|
47
|
+
* Browse our comprehensive documentation
|
|
48
|
+
* </ExploreItem>
|
|
49
|
+
* ```
|
|
50
|
+
*/
|
|
51
|
+
export declare const ExploreItem: React.FC<ExploreItemProps>;
|
|
52
|
+
/**
|
|
53
|
+
* Explore Component
|
|
54
|
+
*
|
|
55
|
+
* Container for ExploreItem components in a responsive grid.
|
|
56
|
+
* Must be used as a child of GetStarted component.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```tsx
|
|
60
|
+
* <GetStarted buttonText="Get Started" buttonLink="/start">
|
|
61
|
+
* <Explore>
|
|
62
|
+
* <ExploreItem title="Docs" icon="mdi:book" link="/docs">
|
|
63
|
+
* Read the docs
|
|
64
|
+
* </ExploreItem>
|
|
65
|
+
* <ExploreItem title="Tutorial" icon="mdi:school" link="/tutorial">
|
|
66
|
+
* Follow tutorial
|
|
67
|
+
* </ExploreItem>
|
|
68
|
+
* </Explore>
|
|
69
|
+
* </GetStarted>
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export declare const Explore: React.FC<ExploreProps>;
|
|
73
|
+
/**
|
|
74
|
+
* GetStarted Component
|
|
75
|
+
*
|
|
76
|
+
* Call-to-action section with optional exploration items.
|
|
77
|
+
*
|
|
78
|
+
* @example
|
|
79
|
+
* ```tsx
|
|
80
|
+
* <GetStarted buttonText="Start Learning" buttonLink="/modules/module1">
|
|
81
|
+
* ## Ready for launch?
|
|
82
|
+
*
|
|
83
|
+
* Proceed to Module 1 to begin your journey!
|
|
84
|
+
*
|
|
85
|
+
* <Explore>
|
|
86
|
+
* <ExploreItem
|
|
87
|
+
* title="Documentation"
|
|
88
|
+
* icon="mdi:book"
|
|
89
|
+
* link="/docs"
|
|
90
|
+
* >
|
|
91
|
+
* Browse documentation
|
|
92
|
+
* </ExploreItem>
|
|
93
|
+
* </Explore>
|
|
94
|
+
* </GetStarted>
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
export declare const GetStarted: React.FC<GetStartedProps>;
|
|
98
|
+
export default GetStarted;
|
|
99
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/GetStarted/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG9H,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAAC;IACjC,2EAA2E;IAC3E,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,+BAA+B;IAC/B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,gCAAgC;IAChC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAa,SAAQ,YAAY;IAChD,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAgB,SAAQ,YAAY;IACnD,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAkDlD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAsB1C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAkChD,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.GetStarted = exports.Explore = exports.ExploreItem = void 0;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const react_2 = require("@mdx-js/react");
|
|
9
|
+
const Link_1 = __importDefault(require("@docusaurus/Link"));
|
|
10
|
+
const ThemedIcon_1 = require("../../utils/ThemedIcon");
|
|
11
|
+
const styles_module_css_1 = __importDefault(require("./styles.module.css"));
|
|
12
|
+
/**
|
|
13
|
+
* ExploreItem Component
|
|
14
|
+
*
|
|
15
|
+
* Individual card for exploration items.
|
|
16
|
+
* Must be used as a child of the Explore component.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* <ExploreItem
|
|
21
|
+
* title="Documentation"
|
|
22
|
+
* iconify="mdi:book-open-page-variant"
|
|
23
|
+
* link="/docs"
|
|
24
|
+
* >
|
|
25
|
+
* Browse our comprehensive documentation
|
|
26
|
+
* </ExploreItem>
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
const ExploreItem = ({ title, iconify, customSvg, customImage, iconColors, titleColors, disableAnimation = false, link, children }) => {
|
|
30
|
+
// Build iconify config with colors if provided
|
|
31
|
+
const iconifyWithColors = iconify && iconColors
|
|
32
|
+
? (typeof iconify === 'string'
|
|
33
|
+
? { icon: iconify, colors: iconColors }
|
|
34
|
+
: { ...iconify, colors: { ...iconify.colors, ...iconColors } })
|
|
35
|
+
: iconify;
|
|
36
|
+
// Build CSS custom properties for title colors
|
|
37
|
+
const titleCssVars = titleColors ? {
|
|
38
|
+
'--title-color': titleColors.light,
|
|
39
|
+
'--title-color-hover': titleColors.lightHover,
|
|
40
|
+
'--title-color-dark': titleColors.dark || titleColors.light,
|
|
41
|
+
'--title-color-hover-dark': titleColors.darkHover || titleColors.lightHover,
|
|
42
|
+
} : {};
|
|
43
|
+
return (react_1.default.createElement(Link_1.default, { to: link, className: styles_module_css_1.default.exploreLink },
|
|
44
|
+
react_1.default.createElement("div", { className: `${styles_module_css_1.default.exploreItem} ${disableAnimation ? styles_module_css_1.default.disableAnimation : ''}`.trim(), style: titleCssVars },
|
|
45
|
+
(iconify || customSvg || customImage) && (react_1.default.createElement(ThemedIcon_1.ThemedIcon, { iconify: iconifyWithColors, customSvg: customSvg, customImage: customImage, alt: title, className: styles_module_css_1.default.exploreItemIcon, supportsHover: true, disableAnimation: disableAnimation })),
|
|
46
|
+
react_1.default.createElement("h4", { className: styles_module_css_1.default.exploreItemTitle }, title),
|
|
47
|
+
react_1.default.createElement(react_2.MDXProvider, null, children))));
|
|
48
|
+
};
|
|
49
|
+
exports.ExploreItem = ExploreItem;
|
|
50
|
+
/**
|
|
51
|
+
* Explore Component
|
|
52
|
+
*
|
|
53
|
+
* Container for ExploreItem components in a responsive grid.
|
|
54
|
+
* Must be used as a child of GetStarted component.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```tsx
|
|
58
|
+
* <GetStarted buttonText="Get Started" buttonLink="/start">
|
|
59
|
+
* <Explore>
|
|
60
|
+
* <ExploreItem title="Docs" icon="mdi:book" link="/docs">
|
|
61
|
+
* Read the docs
|
|
62
|
+
* </ExploreItem>
|
|
63
|
+
* <ExploreItem title="Tutorial" icon="mdi:school" link="/tutorial">
|
|
64
|
+
* Follow tutorial
|
|
65
|
+
* </ExploreItem>
|
|
66
|
+
* </Explore>
|
|
67
|
+
* </GetStarted>
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
const Explore = ({ children, minWidth = '250px', columns = 0 }) => {
|
|
71
|
+
// Apply custom grid styles if needed
|
|
72
|
+
const gridStyle = columns > 0 ? {
|
|
73
|
+
gridTemplateColumns: `repeat(${columns}, 1fr)`
|
|
74
|
+
} : {
|
|
75
|
+
gridTemplateColumns: `repeat(auto-fit, minmax(${minWidth}, 1fr))`
|
|
76
|
+
};
|
|
77
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
78
|
+
react_1.default.createElement("div", { className: styles_module_css_1.default.exploreSectionTitle },
|
|
79
|
+
react_1.default.createElement("h3", null, "Explore")),
|
|
80
|
+
react_1.default.createElement("div", { className: styles_module_css_1.default.exploreGrid, style: gridStyle }, children)));
|
|
81
|
+
};
|
|
82
|
+
exports.Explore = Explore;
|
|
83
|
+
/**
|
|
84
|
+
* GetStarted Component
|
|
85
|
+
*
|
|
86
|
+
* Call-to-action section with optional exploration items.
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```tsx
|
|
90
|
+
* <GetStarted buttonText="Start Learning" buttonLink="/modules/module1">
|
|
91
|
+
* ## Ready for launch?
|
|
92
|
+
*
|
|
93
|
+
* Proceed to Module 1 to begin your journey!
|
|
94
|
+
*
|
|
95
|
+
* <Explore>
|
|
96
|
+
* <ExploreItem
|
|
97
|
+
* title="Documentation"
|
|
98
|
+
* icon="mdi:book"
|
|
99
|
+
* link="/docs"
|
|
100
|
+
* >
|
|
101
|
+
* Browse documentation
|
|
102
|
+
* </ExploreItem>
|
|
103
|
+
* </Explore>
|
|
104
|
+
* </GetStarted>
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
const GetStarted = ({ buttonText, buttonLink, children }) => {
|
|
108
|
+
// Extract Explore component if present
|
|
109
|
+
const mainContent = [];
|
|
110
|
+
let exploreContent = null;
|
|
111
|
+
react_1.default.Children.forEach(children, (child) => {
|
|
112
|
+
if (react_1.default.isValidElement(child) && child.type === exports.Explore) {
|
|
113
|
+
exploreContent = child;
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
mainContent.push(child);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
return (react_1.default.createElement("div", { className: styles_module_css_1.default.getStartedCta },
|
|
120
|
+
react_1.default.createElement(react_2.MDXProvider, null, mainContent),
|
|
121
|
+
react_1.default.createElement("div", { className: "margin-top--lg" },
|
|
122
|
+
react_1.default.createElement(Link_1.default, { className: "button button--primary button--lg", to: buttonLink }, buttonText)),
|
|
123
|
+
exploreContent));
|
|
124
|
+
};
|
|
125
|
+
exports.GetStarted = GetStarted;
|
|
126
|
+
exports.default = exports.GetStarted;
|
|
127
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/GetStarted/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GetStarted component styles
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
.getStartedCta {
|
|
6
|
+
text-align: center;
|
|
7
|
+
padding: 0.5rem 1rem 1rem 1rem;
|
|
8
|
+
border-radius: 8px;
|
|
9
|
+
background-color: var(--ifm-background-surface-color);
|
|
10
|
+
border: 1px solid var(--ifm-color-gray-300);
|
|
11
|
+
transition: border-color 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.getStartedCta:hover {
|
|
15
|
+
border-color: var(--ifm-color-primary-lightest);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
[data-theme="dark"] .getStartedCta {
|
|
19
|
+
border-color: var(--ifm-color-emphasis-300);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
[data-theme="dark"] .getStartedCta:hover {
|
|
23
|
+
border-color: var(--ifm-color-primary-darkest);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.getStartedCta h2 {
|
|
27
|
+
font-size: 1.5rem;
|
|
28
|
+
margin-bottom: 1rem;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/* Button animation */
|
|
32
|
+
.getStartedCta .button {
|
|
33
|
+
transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.getStartedCta .button:hover {
|
|
37
|
+
transform: scale(1.05) translateY(-2px);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.getStartedCta .button:active {
|
|
41
|
+
transform: scale(0.98);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.exploreSectionTitle {
|
|
45
|
+
margin: 3rem 0 1rem;
|
|
46
|
+
position: relative;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.exploreSectionTitle:before {
|
|
50
|
+
content: "";
|
|
51
|
+
position: absolute;
|
|
52
|
+
top: 50%;
|
|
53
|
+
left: 0;
|
|
54
|
+
right: 0;
|
|
55
|
+
border-top: 1px solid var(--ifm-color-gray-300);
|
|
56
|
+
z-index: 0;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.exploreSectionTitle h3 {
|
|
60
|
+
background-color: var(--ifm-background-surface-color);
|
|
61
|
+
font-size: 2rem;
|
|
62
|
+
display: inline-block;
|
|
63
|
+
position: relative;
|
|
64
|
+
padding: 0 1.5rem;
|
|
65
|
+
margin: 0;
|
|
66
|
+
z-index: 1;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.exploreGrid {
|
|
70
|
+
display: flex;
|
|
71
|
+
flex-wrap: wrap;
|
|
72
|
+
gap: 1.5rem;
|
|
73
|
+
padding: 0.5rem 0.25rem 1.5rem;
|
|
74
|
+
margin-top: 1.5rem;
|
|
75
|
+
width: 100%;
|
|
76
|
+
justify-content: space-between;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.exploreItem {
|
|
80
|
+
padding: 1.5rem;
|
|
81
|
+
border-radius: 8px;
|
|
82
|
+
background-color: var(--ifm-color-emphasis-100);
|
|
83
|
+
box-shadow: var(--ifm-global-shadow-lw);
|
|
84
|
+
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
|
85
|
+
height: 100%;
|
|
86
|
+
text-align: center;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.exploreItem:hover {
|
|
90
|
+
transform: translateY(-5px);
|
|
91
|
+
box-shadow: var(--ifm-global-shadow-md);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.exploreItemIcon {
|
|
95
|
+
width: 80px;
|
|
96
|
+
height: 80px;
|
|
97
|
+
margin: 0 auto 1rem;
|
|
98
|
+
color: var(--icon-color, var(--ifm-color-emphasis-600));
|
|
99
|
+
transition: color 0.3s cubic-bezier(0.34, 1.56, 0.64, 1),
|
|
100
|
+
transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
101
|
+
display: flex;
|
|
102
|
+
align-items: center;
|
|
103
|
+
justify-content: center;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* Ensure SVG fills the container */
|
|
107
|
+
.exploreItemIcon svg {
|
|
108
|
+
width: 100%;
|
|
109
|
+
height: 100%;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.exploreItem:hover .exploreItemIcon {
|
|
113
|
+
color: var(--icon-color-hover, var(--ifm-color-primary));
|
|
114
|
+
transform: scale(1.05) translateY(-2px);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/* Dark theme support */
|
|
118
|
+
[data-theme="dark"] .exploreItemIcon {
|
|
119
|
+
color: var(
|
|
120
|
+
--icon-color-dark,
|
|
121
|
+
var(--icon-color, var(--ifm-color-emphasis-600))
|
|
122
|
+
);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
[data-theme="dark"] .exploreItem:hover .exploreItemIcon {
|
|
126
|
+
color: var(
|
|
127
|
+
--icon-color-hover-dark,
|
|
128
|
+
var(--icon-color-hover, var(--ifm-color-primary))
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/* Disable animation when requested */
|
|
133
|
+
.exploreItem.disableAnimation:hover .exploreItemIcon {
|
|
134
|
+
transform: none;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.exploreItemTitle {
|
|
138
|
+
font-size: 1.3rem;
|
|
139
|
+
color: var(--title-color, var(--ifm-color-emphasis-600));
|
|
140
|
+
margin-bottom: 0.5rem;
|
|
141
|
+
transition: color 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.exploreItem:hover .exploreItemTitle {
|
|
145
|
+
color: var(--title-color-hover, var(--ifm-color-primary));
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/* Dark theme support */
|
|
149
|
+
[data-theme="dark"] .exploreItemTitle {
|
|
150
|
+
color: var(
|
|
151
|
+
--title-color-dark,
|
|
152
|
+
var(--title-color, var(--ifm-color-emphasis-600))
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
[data-theme="dark"] .exploreItem:hover .exploreItemTitle {
|
|
157
|
+
color: var(
|
|
158
|
+
--title-color-hover-dark,
|
|
159
|
+
var(--title-color-hover, var(--ifm-color-primary))
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.exploreLink {
|
|
164
|
+
text-decoration: none !important;
|
|
165
|
+
color: inherit !important;
|
|
166
|
+
height: inherit;
|
|
167
|
+
display: flex;
|
|
168
|
+
flex-direction: column;
|
|
169
|
+
position: relative;
|
|
170
|
+
flex: 1 1;
|
|
171
|
+
min-width: 200px;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/* Responsive adjustments */
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface DotCrossGridProps {
|
|
3
|
+
dotSize?: number;
|
|
4
|
+
gap?: number;
|
|
5
|
+
color?: string;
|
|
6
|
+
pointerRadius?: number;
|
|
7
|
+
pointerInnerIntensity?: number;
|
|
8
|
+
pointerOuterIntensity?: number;
|
|
9
|
+
maxOpacity?: number;
|
|
10
|
+
minOpacity?: number;
|
|
11
|
+
randomOpacity?: boolean;
|
|
12
|
+
idleEnabled?: boolean;
|
|
13
|
+
idleAreaWidth?: number;
|
|
14
|
+
idleInterval?: number;
|
|
15
|
+
idleIntensity?: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* DotCrossGrid - Simple implementation
|
|
19
|
+
*
|
|
20
|
+
* User interaction: Mouse creates crosses that auto-fade after 500ms
|
|
21
|
+
* Idle animation: Crosses appear in edges, fade after 2500ms
|
|
22
|
+
*/
|
|
23
|
+
export declare const DotCrossGrid: React.FC<DotCrossGridProps>;
|
|
24
|
+
export default DotCrossGrid;
|
|
25
|
+
//# sourceMappingURL=DotCrossGrid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DotCrossGrid.d.ts","sourceRoot":"","sources":["../../../src/components/HeroBanner/DotCrossGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAIjD,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IAGxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAWD;;;;;GAKG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA8RpD,CAAC;AAEF,eAAe,YAAY,CAAC"}
|