@goldlabelapps/theme 3.2.8 → 3.6.0
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/README.md +2 -2
- package/dist/components/RenderMarkdown.js +7 -2
- package/dist/components/download/DownloadBanner.js +1 -8
- package/dist/components/footer/Footer.js +6 -3
- package/dist/components/footer/FooterWrapper.d.ts +7 -0
- package/dist/components/footer/FooterWrapper.js +15 -0
- package/dist/components/footer/NXContactColumn.d.ts +13 -0
- package/dist/components/footer/NXContactColumn.js +32 -0
- package/dist/components/footer/NXLiveApps.d.ts +22 -0
- package/dist/components/footer/NXLiveApps.js +87 -0
- package/dist/components/footer/NXSocialColumn.d.ts +14 -0
- package/dist/components/footer/NXSocialColumn.js +17 -0
- package/dist/components/footer/NXTagsColumn.d.ts +14 -0
- package/dist/components/footer/NXTagsColumn.js +31 -0
- package/dist/components/footer/footerHelpers.d.ts +4 -0
- package/dist/components/footer/footerHelpers.js +57 -0
- package/dist/components/footer/index.d.ts +7 -0
- package/dist/components/footer/index.js +7 -0
- package/dist/components/hero/HeroSection.js +1 -1
- package/dist/components/hero/VideoModal.js +1 -1
- package/dist/components/index.d.ts +11 -3
- package/dist/components/index.js +11 -3
- package/dist/components/layouts/GuideBreadcrumbs.d.ts +14 -0
- package/dist/components/layouts/GuideBreadcrumbs.js +15 -0
- package/dist/components/{guide → layouts}/MarkdownContent.js +1 -1
- package/dist/components/layouts/Standard.d.ts +10 -0
- package/dist/components/layouts/Standard.js +7 -0
- package/dist/components/navigation/DropdownMenu.js +1 -1
- package/dist/components/navigation/Header.js +3 -6
- package/dist/components/navigation/LayoutActions.d.ts +7 -0
- package/dist/components/navigation/LayoutActions.js +12 -0
- package/dist/components/navigation/LogoContextMenu.js +1 -1
- package/dist/components/navigation/MarkdownMenu.d.ts +9 -0
- package/dist/components/navigation/MarkdownMenu.js +12 -0
- package/dist/components/navigation/MobileMenu.js +1 -1
- package/dist/components/navigation/Waiting.d.ts +10 -0
- package/dist/components/navigation/Waiting.js +45 -0
- package/dist/components/search/HeroSearchBar.d.ts +16 -0
- package/dist/components/search/HeroSearchBar.js +38 -0
- package/dist/components/search/SearchDialog.d.ts +11 -0
- package/dist/components/search/SearchDialog.js +69 -0
- package/dist/components/search/SearchIconButton.d.ts +10 -0
- package/dist/components/search/SearchIconButton.js +10 -0
- package/dist/components/search/SearchResultsList.d.ts +13 -0
- package/dist/components/search/SearchResultsList.js +18 -0
- package/dist/components/search/index.d.ts +5 -0
- package/dist/components/search/index.js +5 -0
- package/dist/components/search/useSearch.d.ts +54 -0
- package/dist/components/search/useSearch.js +106 -0
- package/dist/components/shortcodes/PageLinkShortcode.d.ts +15 -0
- package/dist/components/shortcodes/PageLinkShortcode.js +51 -0
- package/dist/components/showcase/BlogSection.js +2 -2
- package/dist/components/showcase/FeatureExplorer.js +2 -2
- package/dist/components/showcase/FeaturedCard.d.ts +13 -0
- package/dist/components/showcase/FeaturedCard.js +6 -0
- package/dist/components/showcase/SolutionsSection.js +2 -2
- package/dist/components/showcase/StatementSection.js +1 -1
- package/dist/components/showcase/VideoSection.js +2 -2
- package/dist/components/ui/Bash.d.ts +16 -0
- package/dist/components/ui/Bash.js +30 -0
- package/dist/components/ui/Button.js +1 -1
- package/dist/components/ui/ThemeToggle.d.ts +5 -1
- package/dist/components/ui/ThemeToggle.js +32 -2
- package/dist/components/video/VideoLayout.js +2 -2
- package/dist/context/ThemeContext.d.ts +4 -0
- package/dist/context/ThemeContext.js +22 -17
- package/dist/data/og-images.json +205 -151
- package/dist/design-system/components/DesignSystemProvider/DesignSystemProvider.js +3 -8
- package/dist/design-system/components/buttons/Button/Button.js +6 -3
- package/dist/design-system/components/buttons/IconButton/IconButton.js +6 -3
- package/dist/design-system/components/feedback/Alert/Alert.js +3 -2
- package/dist/design-system/components/feedback/Card/Card.js +5 -3
- package/dist/design-system/components/headings/Heading/Heading.js +2 -1
- package/dist/design-system/components/images/FeaturedImage/FeaturedImage.js +6 -6
- package/dist/design-system/components/layout/index.d.ts +1 -0
- package/dist/design-system/components/layout/index.js +1 -0
- package/dist/design-system/components/navigation/SiteNav/SiteNav.js +1 -1
- package/dist/design-system/components/nxStyle.d.ts +0 -21
- package/dist/design-system/components/nxStyle.js +0 -14
- package/dist/design-system/types.d.ts +1 -0
- package/dist/design-system/types.js +1 -0
- package/dist/index.d.ts +4 -3
- package/dist/index.js +1 -0
- package/dist/styles/globals.css +10 -12
- package/dist/styles/theme.js +30 -3
- package/dist/types/index.d.ts +220 -0
- package/package.json +3 -2
- package/dist/components/guide/GuideLayout.d.ts +0 -8
- package/dist/components/guide/GuideLayout.js +0 -12
- /package/dist/components/{guide → layouts}/MarkdownContent.d.ts +0 -0
|
@@ -3,8 +3,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import ErrorOutlineRoundedIcon from '@mui/icons-material/ErrorOutlineRounded';
|
|
4
4
|
import { Box } from '@mui/material';
|
|
5
5
|
import { alpha, useTheme as useMuiTheme } from '@mui/material/styles';
|
|
6
|
-
import { useState } from 'react';
|
|
7
|
-
import {
|
|
6
|
+
import { useContext, useState } from 'react';
|
|
7
|
+
import { ThemeContext } from '../../../../context/ThemeContext';
|
|
8
8
|
import defaultOgManifest from '../../../../data/og-images.json';
|
|
9
9
|
function findOgImageItem(manifest, slug) {
|
|
10
10
|
if (!slug || !manifest?.items)
|
|
@@ -24,9 +24,9 @@ function findOgImageItem(manifest, slug) {
|
|
|
24
24
|
return undefined;
|
|
25
25
|
}
|
|
26
26
|
export default function FeaturedImage({ image, slug = 'nx', alt, width = '100%', height, objectFit: propObjectFit, manifest = defaultOgManifest, borderRadius: propBorderRadius, flushTop = false, }) {
|
|
27
|
-
const
|
|
27
|
+
const themeContext = useContext(ThemeContext);
|
|
28
28
|
const muiTheme = useMuiTheme();
|
|
29
|
-
const activeTheme =
|
|
29
|
+
const activeTheme = themeContext ? themeContext.theme : (muiTheme?.palette?.mode ?? 'dark');
|
|
30
30
|
let resolvedSrc = image?.src;
|
|
31
31
|
let resolvedAlt = typeof alt === 'string' ? alt : (typeof image?.alt === 'string' ? image.alt : null);
|
|
32
32
|
let resolvedImageWidth = image?.width;
|
|
@@ -44,7 +44,7 @@ export default function FeaturedImage({ image, slug = 'nx', alt, width = '100%',
|
|
|
44
44
|
if (version) {
|
|
45
45
|
resolvedSrc = version.path;
|
|
46
46
|
if (resolvedAlt == null) {
|
|
47
|
-
resolvedAlt = ogItem.name;
|
|
47
|
+
resolvedAlt = ogItem.name ?? null;
|
|
48
48
|
}
|
|
49
49
|
if (resolvedImageWidth == null && version.dimensions?.width) {
|
|
50
50
|
resolvedImageWidth = version.dimensions.width;
|
|
@@ -78,7 +78,7 @@ export default function FeaturedImage({ image, slug = 'nx', alt, width = '100%',
|
|
|
78
78
|
...(resolvedPaddingTop ? { paddingTop: resolvedPaddingTop } : {}),
|
|
79
79
|
overflow: 'hidden',
|
|
80
80
|
borderRadius: propBorderRadius ?? defaultRadius,
|
|
81
|
-
bgcolor: '
|
|
81
|
+
bgcolor: 'transparent',
|
|
82
82
|
position: 'relative',
|
|
83
83
|
}, children: [status === 'error' ? (_jsxs(Box, { "data-testid": "featured-image-error", sx: {
|
|
84
84
|
position: 'absolute',
|
|
@@ -3,5 +3,6 @@ export { default as PageSection } from './PageSection/PageSection';
|
|
|
3
3
|
export { default as SectionTitle } from './SectionTitle/SectionTitle';
|
|
4
4
|
export { default as SiteFooter } from './Footer/Footer';
|
|
5
5
|
export { default as Header } from './Header/Header';
|
|
6
|
+
export { LayoutActions } from '../../../components/navigation/LayoutActions';
|
|
6
7
|
export { default as MenuDrawer } from './MenuDrawer/MenuDrawer';
|
|
7
8
|
export { default as SiteMain } from './Main/Main';
|
|
@@ -3,5 +3,6 @@ export { default as PageSection } from './PageSection/PageSection';
|
|
|
3
3
|
export { default as SectionTitle } from './SectionTitle/SectionTitle';
|
|
4
4
|
export { default as SiteFooter } from './Footer/Footer';
|
|
5
5
|
export { default as Header } from './Header/Header';
|
|
6
|
+
export { LayoutActions } from '../../../components/navigation/LayoutActions';
|
|
6
7
|
export { default as MenuDrawer } from './MenuDrawer/MenuDrawer';
|
|
7
8
|
export { default as SiteMain } from './Main/Main';
|
|
@@ -78,5 +78,5 @@ export default function SiteNav({ items, navigateTo }) {
|
|
|
78
78
|
const pathname = window.location.pathname;
|
|
79
79
|
setCurrentPath(pathname.endsWith('/') && pathname !== '/' ? pathname.slice(0, -1) : pathname);
|
|
80
80
|
}, []);
|
|
81
|
-
return renderNavItems(items, navigateTo, 0, 'nav', currentPath);
|
|
81
|
+
return renderNavItems(items ?? [], navigateTo, 0, 'nav', currentPath);
|
|
82
82
|
}
|
|
@@ -40,13 +40,6 @@ export declare const nxLightStyle: {
|
|
|
40
40
|
color: string;
|
|
41
41
|
transition: string;
|
|
42
42
|
};
|
|
43
|
-
a: {
|
|
44
|
-
color: string;
|
|
45
|
-
textDecoration: string;
|
|
46
|
-
'&:hover': {
|
|
47
|
-
color: string;
|
|
48
|
-
};
|
|
49
|
-
};
|
|
50
43
|
code: {
|
|
51
44
|
backgroundColor: string;
|
|
52
45
|
color: string;
|
|
@@ -103,13 +96,6 @@ export declare const nxDarkStyle: {
|
|
|
103
96
|
color: string;
|
|
104
97
|
transition: string;
|
|
105
98
|
};
|
|
106
|
-
a: {
|
|
107
|
-
color: string;
|
|
108
|
-
textDecoration: string;
|
|
109
|
-
'&:hover': {
|
|
110
|
-
color: string;
|
|
111
|
-
};
|
|
112
|
-
};
|
|
113
99
|
code: {
|
|
114
100
|
backgroundColor: string;
|
|
115
101
|
color: string;
|
|
@@ -166,13 +152,6 @@ export declare function getNxStyle(mode: 'light' | 'dark'): {
|
|
|
166
152
|
color: string;
|
|
167
153
|
transition: string;
|
|
168
154
|
};
|
|
169
|
-
a: {
|
|
170
|
-
color: string;
|
|
171
|
-
textDecoration: string;
|
|
172
|
-
'&:hover': {
|
|
173
|
-
color: string;
|
|
174
|
-
};
|
|
175
|
-
};
|
|
176
155
|
code: {
|
|
177
156
|
backgroundColor: string;
|
|
178
157
|
color: string;
|
|
@@ -40,13 +40,6 @@ export const nxLightStyle = {
|
|
|
40
40
|
color: '#1E1E1E',
|
|
41
41
|
transition: 'background-color 0.2s ease',
|
|
42
42
|
},
|
|
43
|
-
a: {
|
|
44
|
-
color: '#012867',
|
|
45
|
-
textDecoration: 'none',
|
|
46
|
-
'&:hover': {
|
|
47
|
-
color: '#011f52',
|
|
48
|
-
},
|
|
49
|
-
},
|
|
50
43
|
code: {
|
|
51
44
|
backgroundColor: '#F1F5F9',
|
|
52
45
|
color: '#0F172A',
|
|
@@ -103,13 +96,6 @@ export const nxDarkStyle = {
|
|
|
103
96
|
color: '#F8FAFC',
|
|
104
97
|
transition: 'background-color 0.2s ease',
|
|
105
98
|
},
|
|
106
|
-
a: {
|
|
107
|
-
color: '#F8FAFC',
|
|
108
|
-
textDecoration: 'none',
|
|
109
|
-
'&:hover': {
|
|
110
|
-
color: '#E2E8F0',
|
|
111
|
-
},
|
|
112
|
-
},
|
|
113
99
|
code: {
|
|
114
100
|
backgroundColor: '#1E293B',
|
|
115
101
|
color: '#F8FAFC',
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../types';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../types';
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,9 @@ export * from "./types";
|
|
|
2
2
|
export * from "./lib/utils";
|
|
3
3
|
export * from "./context";
|
|
4
4
|
export * from "./components";
|
|
5
|
+
export type { ButtonProps } from "./components/ui/Button";
|
|
6
|
+
export type { CardProps } from "./components/ui/Card";
|
|
7
|
+
export type { BashProps, BashCommand } from "./components/ui/Bash";
|
|
5
8
|
export { default as DesignSystemProvider } from "./design-system/components/DesignSystemProvider/DesignSystemProvider";
|
|
6
9
|
export { default as Heading } from "./design-system/components/headings/Heading/Heading";
|
|
7
10
|
export { default as Logo } from "./design-system/components/brand/Logo/Logo";
|
|
@@ -12,8 +15,6 @@ export { default as ListItemText } from "./design-system/components/lists/ListIt
|
|
|
12
15
|
export { default as ListSubheader } from "./design-system/components/lists/ListSubheader/ListSubheader";
|
|
13
16
|
export { default as Alert } from "./design-system/components/feedback/Alert/Alert";
|
|
14
17
|
export { default as Field } from "./design-system/components/feedback/Field/Field";
|
|
15
|
-
export type { AlertProps } from "./design-system/components/feedback/Alert/types";
|
|
16
|
-
export type { FieldProps } from "./design-system/components/feedback/Field/types";
|
|
17
18
|
export { default as NxButton } from "./design-system/components/buttons/Button/Button";
|
|
18
19
|
export { Button } from "./components/ui/Button";
|
|
19
20
|
export { default as IconButton } from "./design-system/components/buttons/IconButton/IconButton";
|
|
@@ -25,6 +26,6 @@ export { default as Swatch } from "./design-system/components/surfaces/Swatch/Sw
|
|
|
25
26
|
export { default as SwatchGroup } from "./design-system/components/surfaces/SwatchGroup/SwatchGroup";
|
|
26
27
|
export { default as Icon, ICON_NAMES } from "./design-system/components/icons/Icon/Icon";
|
|
27
28
|
export { DesktopOnly, MobileOnly, useIsMobile } from "./design-system/components/responsive/Viewport/Viewport";
|
|
29
|
+
export { Waiting, type WaitingProps } from "./components/navigation/Waiting";
|
|
28
30
|
export { createAppTheme } from "./styles/theme";
|
|
29
31
|
export type { IconName, IconProps } from "./design-system/components/icons/Icon/Icon";
|
|
30
|
-
export type { DesignSystemMode, DesignSystemProviderProps, DesignSystemThemeConfig } from "./design-system/types";
|
package/dist/index.js
CHANGED
|
@@ -23,4 +23,5 @@ export { default as Swatch } from "./design-system/components/surfaces/Swatch/Sw
|
|
|
23
23
|
export { default as SwatchGroup } from "./design-system/components/surfaces/SwatchGroup/SwatchGroup";
|
|
24
24
|
export { default as Icon, ICON_NAMES } from "./design-system/components/icons/Icon/Icon";
|
|
25
25
|
export { DesktopOnly, MobileOnly, useIsMobile } from "./design-system/components/responsive/Viewport/Viewport";
|
|
26
|
+
export { Waiting } from "./components/navigation/Waiting";
|
|
26
27
|
export { createAppTheme } from "./styles/theme";
|
package/dist/styles/globals.css
CHANGED
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
--background: #0F172A;
|
|
25
25
|
--background-secondary: #1E293B;
|
|
26
26
|
--paper: #1E293B;
|
|
27
|
-
--primary: #
|
|
28
|
-
--primary-hover: #
|
|
27
|
+
--primary: #ffffff;
|
|
28
|
+
--primary-hover: #38BDF8;
|
|
29
29
|
--secondary: #F8FAFC;
|
|
30
30
|
--foreground: #F8FAFC;
|
|
31
31
|
--foreground-muted: #CBD5E1;
|
|
@@ -85,19 +85,17 @@
|
|
|
85
85
|
color: var(--foreground);
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
h1, h2, h3, h4, h5, h6,
|
|
89
|
+
:where(.dark, .dark *) h1,
|
|
90
|
+
:where(.dark, .dark *) h2,
|
|
91
|
+
:where(.dark, .dark *) h3,
|
|
92
|
+
:where(.dark, .dark *) h4,
|
|
93
|
+
:where(.dark, .dark *) h5,
|
|
94
|
+
:where(.dark, .dark *) h6 {
|
|
95
|
+
font-weight: 400 !important;
|
|
90
96
|
}
|
|
91
97
|
|
|
92
|
-
a {
|
|
93
|
-
color: var(--primary);
|
|
94
|
-
text-decoration: none;
|
|
95
|
-
transition: color 0.15s ease;
|
|
96
|
-
}
|
|
97
98
|
|
|
98
|
-
a:hover {
|
|
99
|
-
color: var(--primary-hover);
|
|
100
|
-
}
|
|
101
99
|
|
|
102
100
|
html {
|
|
103
101
|
scroll-behavior: smooth;
|
package/dist/styles/theme.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { createTheme } from '@mui/material/styles';
|
|
2
|
-
export function createAppTheme(mode = '
|
|
2
|
+
export function createAppTheme(mode = 'dark', themeConfig) {
|
|
3
3
|
const isDark = mode === 'dark';
|
|
4
4
|
const resolvedPrimary = themeConfig?.primary ?? (isDark ? '#FFFFFF' : '#5A5A5A');
|
|
5
5
|
const resolvedSecondary = themeConfig?.secondary ?? (isDark ? '#F5F5F5' : '#7A7A7A');
|
|
6
|
-
const
|
|
6
|
+
const paletteMap = {
|
|
7
7
|
dark: {
|
|
8
8
|
primary: resolvedPrimary,
|
|
9
9
|
secondary: resolvedSecondary,
|
|
@@ -76,7 +76,8 @@ export function createAppTheme(mode = 'light', themeConfig) {
|
|
|
76
76
|
contrastText: '#FFFFFF',
|
|
77
77
|
},
|
|
78
78
|
},
|
|
79
|
-
}
|
|
79
|
+
};
|
|
80
|
+
const palette = paletteMap[mode && mode in paletteMap ? mode : 'light'];
|
|
80
81
|
const resolvedPalette = {
|
|
81
82
|
...palette,
|
|
82
83
|
background: themeConfig?.background ?? palette.background,
|
|
@@ -134,6 +135,32 @@ export function createAppTheme(mode = 'light', themeConfig) {
|
|
|
134
135
|
fontSize: '1.5rem',
|
|
135
136
|
color: resolvedPalette.secondary,
|
|
136
137
|
},
|
|
138
|
+
h4: {
|
|
139
|
+
fontFamily: 'var(--font-title)',
|
|
140
|
+
fontWeight: 400,
|
|
141
|
+
fontSize: '1.25rem',
|
|
142
|
+
color: resolvedPalette.secondary,
|
|
143
|
+
},
|
|
144
|
+
h5: {
|
|
145
|
+
fontFamily: 'var(--font-title)',
|
|
146
|
+
fontWeight: 400,
|
|
147
|
+
fontSize: '1.1rem',
|
|
148
|
+
color: resolvedPalette.secondary,
|
|
149
|
+
},
|
|
150
|
+
h6: {
|
|
151
|
+
fontFamily: 'var(--font-title)',
|
|
152
|
+
fontWeight: 400,
|
|
153
|
+
fontSize: '1rem',
|
|
154
|
+
color: resolvedPalette.secondary,
|
|
155
|
+
},
|
|
156
|
+
subtitle1: {
|
|
157
|
+
fontFamily: 'var(--font-title)',
|
|
158
|
+
fontWeight: 400,
|
|
159
|
+
},
|
|
160
|
+
subtitle2: {
|
|
161
|
+
fontFamily: 'var(--font-title)',
|
|
162
|
+
fontWeight: 400,
|
|
163
|
+
},
|
|
137
164
|
button: {
|
|
138
165
|
textTransform: 'none',
|
|
139
166
|
fontWeight: 400,
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { TextFieldProps } from '@mui/material';
|
|
1
2
|
export interface SiteMetadata {
|
|
2
3
|
title: string;
|
|
3
4
|
description: string;
|
|
@@ -317,3 +318,222 @@ export interface GuideArticle extends GuideMeta {
|
|
|
317
318
|
content: string;
|
|
318
319
|
rawMarkdown: string;
|
|
319
320
|
}
|
|
321
|
+
export type DesignSystemMode = 'light' | 'dark';
|
|
322
|
+
export interface DesignSystemThemeConfig {
|
|
323
|
+
primary?: string;
|
|
324
|
+
secondary?: string;
|
|
325
|
+
background?: string;
|
|
326
|
+
paper?: string;
|
|
327
|
+
text?: string;
|
|
328
|
+
textSecondary?: string;
|
|
329
|
+
}
|
|
330
|
+
export interface DesignSystemProviderProps {
|
|
331
|
+
children: React.ReactNode;
|
|
332
|
+
mode?: DesignSystemMode;
|
|
333
|
+
themeConfig?: DesignSystemThemeConfig;
|
|
334
|
+
}
|
|
335
|
+
export type ButtonSize = 'sm' | 'md' | 'lg';
|
|
336
|
+
export type ButtonTone = 'primary' | 'neutral' | 'danger';
|
|
337
|
+
export type ButtonVariant = 'solid' | 'outline' | 'ghost' | 'text';
|
|
338
|
+
export interface NxButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'color'> {
|
|
339
|
+
variant?: ButtonVariant;
|
|
340
|
+
tone?: ButtonTone;
|
|
341
|
+
size?: ButtonSize;
|
|
342
|
+
fullWidth?: boolean;
|
|
343
|
+
href?: string;
|
|
344
|
+
startIcon?: React.ReactNode;
|
|
345
|
+
endIcon?: React.ReactNode;
|
|
346
|
+
ariaLabel?: string;
|
|
347
|
+
sx?: unknown;
|
|
348
|
+
}
|
|
349
|
+
export type ButtonProps = NxButtonProps;
|
|
350
|
+
export interface IconButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'color'> {
|
|
351
|
+
icon?: React.ReactNode;
|
|
352
|
+
variant?: ButtonVariant;
|
|
353
|
+
tone?: ButtonTone;
|
|
354
|
+
size?: ButtonSize;
|
|
355
|
+
href?: string;
|
|
356
|
+
ariaLabel?: string;
|
|
357
|
+
color?: string;
|
|
358
|
+
sx?: unknown;
|
|
359
|
+
}
|
|
360
|
+
export interface AlertProps {
|
|
361
|
+
children?: React.ReactNode;
|
|
362
|
+
title?: string;
|
|
363
|
+
severity?: 'info' | 'success' | 'warning' | 'error';
|
|
364
|
+
dismissible?: boolean;
|
|
365
|
+
}
|
|
366
|
+
export interface NxCardProps {
|
|
367
|
+
children?: React.ReactNode;
|
|
368
|
+
padding?: 'sm' | 'md' | 'lg';
|
|
369
|
+
variant?: 'paper' | 'glass' | 'tile' | 'ink';
|
|
370
|
+
hoverLift?: boolean;
|
|
371
|
+
mode?: DesignSystemMode;
|
|
372
|
+
}
|
|
373
|
+
export type CardProps = NxCardProps;
|
|
374
|
+
export interface FieldProps extends Omit<TextFieldProps, 'label' | 'error' | 'helperText'> {
|
|
375
|
+
label?: string;
|
|
376
|
+
error?: string;
|
|
377
|
+
helperText?: string;
|
|
378
|
+
hint?: string;
|
|
379
|
+
}
|
|
380
|
+
export type HeadingTone = 'clay' | 'ink' | 'primary' | 'secondary';
|
|
381
|
+
export type HeadingVariant = 'label' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
382
|
+
export interface HeadingProps extends React.HTMLAttributes<HTMLHeadingElement> {
|
|
383
|
+
tone?: HeadingTone;
|
|
384
|
+
as?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'span';
|
|
385
|
+
variant?: HeadingVariant;
|
|
386
|
+
style?: React.CSSProperties;
|
|
387
|
+
sx?: unknown;
|
|
388
|
+
}
|
|
389
|
+
export interface FeaturedImageData {
|
|
390
|
+
src?: string;
|
|
391
|
+
alt?: string;
|
|
392
|
+
width?: number | string;
|
|
393
|
+
height?: number | string;
|
|
394
|
+
objectFit?: 'cover' | 'contain' | 'fill';
|
|
395
|
+
}
|
|
396
|
+
export interface OgImageVersion {
|
|
397
|
+
path: string;
|
|
398
|
+
dimensions?: {
|
|
399
|
+
width: number;
|
|
400
|
+
height: number;
|
|
401
|
+
};
|
|
402
|
+
}
|
|
403
|
+
export interface OgImageItem {
|
|
404
|
+
id?: string;
|
|
405
|
+
category?: string;
|
|
406
|
+
name?: string;
|
|
407
|
+
versions?: {
|
|
408
|
+
light?: OgImageVersion;
|
|
409
|
+
dark?: OgImageVersion;
|
|
410
|
+
[key: string]: OgImageVersion | undefined;
|
|
411
|
+
};
|
|
412
|
+
}
|
|
413
|
+
export interface OgImagesManifest {
|
|
414
|
+
items: OgImageItem[];
|
|
415
|
+
}
|
|
416
|
+
export interface FeaturedImageProps {
|
|
417
|
+
image?: FeaturedImageData;
|
|
418
|
+
slug?: string;
|
|
419
|
+
alt?: string;
|
|
420
|
+
width?: number | string;
|
|
421
|
+
height?: number | string;
|
|
422
|
+
objectFit?: 'cover' | 'contain' | 'fill';
|
|
423
|
+
manifest?: OgImagesManifest;
|
|
424
|
+
borderRadius?: string | number;
|
|
425
|
+
flushTop?: boolean;
|
|
426
|
+
}
|
|
427
|
+
export interface AppShellProps {
|
|
428
|
+
children: React.ReactNode;
|
|
429
|
+
header?: React.ReactNode;
|
|
430
|
+
footer?: React.ReactNode;
|
|
431
|
+
}
|
|
432
|
+
export interface SiteFooterLink {
|
|
433
|
+
title: string;
|
|
434
|
+
href: string;
|
|
435
|
+
}
|
|
436
|
+
export interface SiteFooterColumn {
|
|
437
|
+
title: string;
|
|
438
|
+
href: string;
|
|
439
|
+
children?: SiteFooterLink[];
|
|
440
|
+
}
|
|
441
|
+
export interface SiteFooterProps {
|
|
442
|
+
columns?: SiteFooterColumn[];
|
|
443
|
+
}
|
|
444
|
+
export interface SiteHeaderProps {
|
|
445
|
+
title?: string;
|
|
446
|
+
icon?: string;
|
|
447
|
+
iconSize?: number;
|
|
448
|
+
homeHref?: string;
|
|
449
|
+
logoSrc?: string;
|
|
450
|
+
logoAlt?: string;
|
|
451
|
+
logo?: React.ReactNode;
|
|
452
|
+
nav?: React.ReactNode;
|
|
453
|
+
actions?: React.ReactNode;
|
|
454
|
+
children?: React.ReactNode;
|
|
455
|
+
}
|
|
456
|
+
export interface SiteMainProps {
|
|
457
|
+
children?: React.ReactNode;
|
|
458
|
+
className?: string;
|
|
459
|
+
featuredImage?: string;
|
|
460
|
+
}
|
|
461
|
+
export interface MenuDrawerProps {
|
|
462
|
+
open: boolean;
|
|
463
|
+
onClose: () => void;
|
|
464
|
+
children?: React.ReactNode;
|
|
465
|
+
navItems?: React.ReactNode;
|
|
466
|
+
actions?: React.ReactNode;
|
|
467
|
+
toggleAriaLabel?: string;
|
|
468
|
+
}
|
|
469
|
+
export interface PageSectionProps {
|
|
470
|
+
children?: React.ReactNode;
|
|
471
|
+
id?: string;
|
|
472
|
+
className?: string;
|
|
473
|
+
title?: string;
|
|
474
|
+
subtitle?: string;
|
|
475
|
+
}
|
|
476
|
+
export interface SectionTitleProps {
|
|
477
|
+
title: string;
|
|
478
|
+
subtitle?: string;
|
|
479
|
+
align?: 'left' | 'center' | 'right';
|
|
480
|
+
}
|
|
481
|
+
export interface BreadcrumbItem {
|
|
482
|
+
label: string;
|
|
483
|
+
href?: string;
|
|
484
|
+
}
|
|
485
|
+
export interface BreadcrumbProps {
|
|
486
|
+
items: BreadcrumbItem[];
|
|
487
|
+
}
|
|
488
|
+
export type ShareSize = 'sm' | 'md' | 'lg' | 'small' | 'medium' | 'large';
|
|
489
|
+
export interface ShareProps {
|
|
490
|
+
url?: string;
|
|
491
|
+
title?: string;
|
|
492
|
+
description?: string;
|
|
493
|
+
size?: ShareSize;
|
|
494
|
+
}
|
|
495
|
+
export interface T_NavNode {
|
|
496
|
+
slug?: string;
|
|
497
|
+
path?: string;
|
|
498
|
+
title?: string;
|
|
499
|
+
label?: string;
|
|
500
|
+
href?: string;
|
|
501
|
+
children?: T_NavNode[];
|
|
502
|
+
items?: T_NavNode[];
|
|
503
|
+
[key: string]: unknown;
|
|
504
|
+
}
|
|
505
|
+
export interface SiteNavProps {
|
|
506
|
+
nodes?: T_NavNode[];
|
|
507
|
+
items?: T_NavNode[];
|
|
508
|
+
navigateTo?: (path: string) => void;
|
|
509
|
+
}
|
|
510
|
+
export interface UseIsMobileOptions {
|
|
511
|
+
breakpoint?: number;
|
|
512
|
+
maxWidth?: number | string;
|
|
513
|
+
}
|
|
514
|
+
export interface VisibilityProps {
|
|
515
|
+
children: React.ReactNode;
|
|
516
|
+
isMobile?: boolean;
|
|
517
|
+
maxWidth?: number | string;
|
|
518
|
+
fallback?: React.ReactNode;
|
|
519
|
+
}
|
|
520
|
+
export interface SwatchProps {
|
|
521
|
+
label: string;
|
|
522
|
+
value: string;
|
|
523
|
+
}
|
|
524
|
+
export interface SwatchGroupProps {
|
|
525
|
+
items: SwatchProps[];
|
|
526
|
+
}
|
|
527
|
+
export interface LogoProps {
|
|
528
|
+
href?: string;
|
|
529
|
+
name?: string;
|
|
530
|
+
text?: string;
|
|
531
|
+
subtitle?: string;
|
|
532
|
+
src?: string;
|
|
533
|
+
icon?: string;
|
|
534
|
+
favicon?: boolean;
|
|
535
|
+
faceColor?: string;
|
|
536
|
+
smileColor?: string;
|
|
537
|
+
iconSize?: number;
|
|
538
|
+
children?: React.ReactNode;
|
|
539
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goldlabelapps/theme",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"description": "NX° theme tokens, UI primitives, and layout showcase blocks",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"dist"
|
|
43
43
|
],
|
|
44
44
|
"scripts": {
|
|
45
|
-
"build": "
|
|
45
|
+
"build": "tsc -p tsconfig.build.json && mkdir -p dist/styles && cp src/styles/*.css dist/styles/",
|
|
46
46
|
"type-check": "tsc --noEmit",
|
|
47
47
|
"test": "vitest run",
|
|
48
48
|
"lint": "eslint .",
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"@goldlabelapps/flash": "workspace:*",
|
|
60
|
+
"@goldlabelapps/uberedux": "workspace:*",
|
|
60
61
|
"canvas-confetti": "^1.9.4",
|
|
61
62
|
"clsx": "^2.1.1",
|
|
62
63
|
"framer-motion": "^13.1.1",
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import type { GuideMeta } from "../../types";
|
|
3
|
-
export interface GuideLayoutProps {
|
|
4
|
-
guides: GuideMeta[];
|
|
5
|
-
currentGuide?: GuideMeta;
|
|
6
|
-
children: React.ReactNode;
|
|
7
|
-
}
|
|
8
|
-
export declare function GuideLayout({ guides, currentGuide, children, }: GuideLayoutProps): React.JSX.Element;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import Link from "next/link";
|
|
4
|
-
import { BookOpen } from "lucide-react";
|
|
5
|
-
export function GuideLayout({ guides, currentGuide, children, }) {
|
|
6
|
-
return (_jsx("div", { className: "min-h-screen pt-28 pb-20 bg-white", children: _jsx("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8", children: _jsxs("div", { className: "grid grid-cols-1 lg:grid-cols-12 gap-8", children: [_jsx("aside", { className: "lg:col-span-3 space-y-4", children: _jsxs("div", { className: "p-4 rounded-2xl bg-slate-50 border border-slate-200", children: [_jsxs("div", { className: "flex items-center gap-2 mb-4 text-[#012867] font-bold text-sm", children: [_jsx(BookOpen, { className: "h-4 w-4" }), _jsx("span", { children: "How To Guides" })] }), _jsx("ul", { className: "space-y-1", children: guides.map((g) => {
|
|
7
|
-
const isActive = currentGuide?.slug === g.slug;
|
|
8
|
-
return (_jsx("li", { children: _jsx(Link, { href: `/how-to${g.slug === "/" ? "" : g.slug}`, className: `block px-3 py-2 rounded-xl text-xs font-semibold transition-colors ${isActive
|
|
9
|
-
? "bg-[#012867] text-white"
|
|
10
|
-
: "text-slate-700 hover:bg-slate-200/70"}`, children: g.title }) }, g.slug));
|
|
11
|
-
}) })] }) }), _jsx("main", { className: "lg:col-span-9", children: children })] }) }) }));
|
|
12
|
-
}
|
|
File without changes
|