@goldlabelapps/theme 3.2.0 → 3.5.6
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.d.ts +7 -0
- package/dist/components/RenderMarkdown.js +123 -0
- 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/index.d.ts +6 -0
- package/dist/components/footer/index.js +6 -0
- package/dist/components/hero/HeroSection.js +1 -1
- package/dist/components/hero/VideoModal.js +1 -2
- 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/layouts/MarkdownContent.js +6 -0
- 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.d.ts +0 -1
- package/dist/components/navigation/LogoContextMenu.js +1 -2
- package/dist/components/navigation/MarkdownMenu.d.ts +9 -0
- package/dist/components/navigation/MarkdownMenu.js +12 -0
- package/dist/components/navigation/MobileMenu.js +16 -7
- package/dist/components/navigation/ShareMenu.d.ts +1 -1
- package/dist/components/navigation/ShareMenu.js +1 -2
- 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/Card.d.ts +2 -1
- package/dist/components/ui/Card.js +29 -7
- 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/ConfigContext.js +1 -1
- package/dist/context/ThemeContext.d.ts +4 -0
- package/dist/context/ThemeContext.js +23 -18
- package/dist/data/og-images.json +530 -0
- package/dist/design-system/components/DesignSystemProvider/DesignSystemProvider.js +4 -9
- 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 +45 -7
- package/dist/design-system/components/feedback/Card/Card.d.ts +1 -1
- package/dist/design-system/components/feedback/Card/Card.js +15 -9
- package/dist/design-system/components/headings/Heading/Heading.js +2 -1
- package/dist/design-system/components/icons/SVGIcons/BlokeyIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/BlokeyIcon.js +1 -1
- package/dist/design-system/components/icons/SVGIcons/ChromeIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/ChromeIcon.js +1 -1
- package/dist/design-system/components/icons/SVGIcons/DesktopIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/DesktopIcon.js +1 -1
- package/dist/design-system/components/icons/SVGIcons/EdgeIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/EdgeIcon.js +1 -1
- package/dist/design-system/components/icons/SVGIcons/FallmanagerIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/FirefoxIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/FirefoxIcon.js +1 -1
- package/dist/design-system/components/icons/SVGIcons/FlickrIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/FlickrIcon.js +1 -1
- package/dist/design-system/components/icons/SVGIcons/GatsbyIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/GoldenticketIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/GoldenticketIcon.js +1 -1
- package/dist/design-system/components/icons/SVGIcons/GoldlabelOutlined.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/GraphqlIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/GraphqlIcon.js +1 -1
- package/dist/design-system/components/icons/SVGIcons/IphoneIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/IphoneIcon.js +1 -1
- package/dist/design-system/components/icons/SVGIcons/LinuxIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/LinuxIcon.js +1 -1
- package/dist/design-system/components/icons/SVGIcons/MacIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/MacIcon.js +1 -1
- package/dist/design-system/components/icons/SVGIcons/MacromediaIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/MacromediaIcon.js +1 -1
- package/dist/design-system/components/icons/SVGIcons/OliverIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/OpenAIIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/PingpongballIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/SafariIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/SafariIcon.js +1 -1
- package/dist/design-system/components/icons/SVGIcons/WindowsIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/WindowsIcon.js +1 -1
- package/dist/design-system/components/icons/SVGIcons/WordpressIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/WordpressIcon.js +1 -1
- package/dist/design-system/components/icons/SVGIcons/XboxIcon.d.ts +2 -1
- package/dist/design-system/components/icons/SVGIcons/XboxIcon.js +1 -1
- package/dist/design-system/components/images/FeaturedImage/FeaturedImage.d.ts +1 -1
- package/dist/design-system/components/images/FeaturedImage/FeaturedImage.js +73 -25
- package/dist/design-system/components/images/FeaturedImage/types.d.ts +1 -1
- package/dist/design-system/components/layout/Footer/Footer.js +1 -1
- 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 +39 -0
- package/dist/design-system/components/nxStyle.js +40 -14
- package/dist/design-system/types.d.ts +1 -0
- package/dist/design-system/types.js +1 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.js +2 -0
- package/dist/styles/globals.css +150 -3
- package/dist/styles/site-layout.css +1 -1
- package/dist/styles/theme.js +106 -7
- package/dist/styles/tokens.css +65 -0
- package/dist/types/index.d.ts +220 -0
- package/package.json +5 -2
- package/dist/components/guide/GuideLayout.d.ts +0 -8
- package/dist/components/guide/GuideLayout.js +0 -12
- package/dist/components/guide/MarkdownContent.js +0 -6
- /package/dist/components/{guide → layouts}/MarkdownContent.d.ts +0 -0
package/dist/styles/theme.js
CHANGED
|
@@ -1,20 +1,44 @@
|
|
|
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
|
-
const resolvedPrimary = themeConfig?.primary ?? (isDark ? '#
|
|
5
|
-
const resolvedSecondary = themeConfig?.secondary ?? (isDark ? '#
|
|
6
|
-
const
|
|
4
|
+
const resolvedPrimary = themeConfig?.primary ?? (isDark ? '#FFFFFF' : '#5A5A5A');
|
|
5
|
+
const resolvedSecondary = themeConfig?.secondary ?? (isDark ? '#F5F5F5' : '#7A7A7A');
|
|
6
|
+
const paletteMap = {
|
|
7
7
|
dark: {
|
|
8
8
|
primary: resolvedPrimary,
|
|
9
9
|
secondary: resolvedSecondary,
|
|
10
10
|
background: '#111111',
|
|
11
11
|
paper: '#1C1C1C',
|
|
12
|
-
text: '#
|
|
13
|
-
textSecondary: '#
|
|
12
|
+
text: '#FFFFFF',
|
|
13
|
+
textSecondary: '#CBD5E1',
|
|
14
14
|
border: 'rgba(255, 255, 255, 0.16)',
|
|
15
15
|
borderSoft: 'rgba(255, 255, 255, 0.10)',
|
|
16
16
|
shadow: '0 12px 40px rgba(0, 0, 0, 0.35)',
|
|
17
17
|
buttonShadow: '0 12px 30px rgba(0, 0, 0, 0.4)',
|
|
18
|
+
error: {
|
|
19
|
+
main: '#F87171',
|
|
20
|
+
light: '#FCA5A5',
|
|
21
|
+
dark: '#EF4444',
|
|
22
|
+
contrastText: '#0F172A',
|
|
23
|
+
},
|
|
24
|
+
warning: {
|
|
25
|
+
main: '#FBBF24',
|
|
26
|
+
light: '#FDE047',
|
|
27
|
+
dark: '#F59E0B',
|
|
28
|
+
contrastText: '#0F172A',
|
|
29
|
+
},
|
|
30
|
+
info: {
|
|
31
|
+
main: '#38BDF8',
|
|
32
|
+
light: '#7DD3FC',
|
|
33
|
+
dark: '#0284C7',
|
|
34
|
+
contrastText: '#0F172A',
|
|
35
|
+
},
|
|
36
|
+
success: {
|
|
37
|
+
main: '#4ADE80',
|
|
38
|
+
light: '#86EFAC',
|
|
39
|
+
dark: '#22C55E',
|
|
40
|
+
contrastText: '#0F172A',
|
|
41
|
+
},
|
|
18
42
|
},
|
|
19
43
|
light: {
|
|
20
44
|
primary: resolvedPrimary,
|
|
@@ -27,8 +51,33 @@ export function createAppTheme(mode = 'light', themeConfig) {
|
|
|
27
51
|
borderSoft: 'rgba(31, 31, 31, 0.08)',
|
|
28
52
|
shadow: '0 12px 40px rgba(31, 31, 31, 0.12)',
|
|
29
53
|
buttonShadow: '0 12px 30px rgba(31, 31, 31, 0.18)',
|
|
54
|
+
error: {
|
|
55
|
+
main: '#DC2626',
|
|
56
|
+
light: '#EF4444',
|
|
57
|
+
dark: '#991B1B',
|
|
58
|
+
contrastText: '#FFFFFF',
|
|
59
|
+
},
|
|
60
|
+
warning: {
|
|
61
|
+
main: '#D97706',
|
|
62
|
+
light: '#F59E0B',
|
|
63
|
+
dark: '#92400E',
|
|
64
|
+
contrastText: '#FFFFFF',
|
|
65
|
+
},
|
|
66
|
+
info: {
|
|
67
|
+
main: '#2563EB',
|
|
68
|
+
light: '#3B82F6',
|
|
69
|
+
dark: '#1E40AF',
|
|
70
|
+
contrastText: '#FFFFFF',
|
|
71
|
+
},
|
|
72
|
+
success: {
|
|
73
|
+
main: '#16A34A',
|
|
74
|
+
light: '#22C55E',
|
|
75
|
+
dark: '#166534',
|
|
76
|
+
contrastText: '#FFFFFF',
|
|
77
|
+
},
|
|
30
78
|
},
|
|
31
|
-
}
|
|
79
|
+
};
|
|
80
|
+
const palette = paletteMap[mode && mode in paletteMap ? mode : 'light'];
|
|
32
81
|
const resolvedPalette = {
|
|
33
82
|
...palette,
|
|
34
83
|
background: themeConfig?.background ?? palette.background,
|
|
@@ -47,6 +96,10 @@ export function createAppTheme(mode = 'light', themeConfig) {
|
|
|
47
96
|
main: resolvedPalette.secondary,
|
|
48
97
|
contrastText: isDark ? '#111111' : '#FFFFFF',
|
|
49
98
|
},
|
|
99
|
+
error: palette.error,
|
|
100
|
+
warning: palette.warning,
|
|
101
|
+
info: palette.info,
|
|
102
|
+
success: palette.success,
|
|
50
103
|
background: {
|
|
51
104
|
default: resolvedPalette.background,
|
|
52
105
|
paper: resolvedPalette.paper,
|
|
@@ -82,6 +135,32 @@ export function createAppTheme(mode = 'light', themeConfig) {
|
|
|
82
135
|
fontSize: '1.5rem',
|
|
83
136
|
color: resolvedPalette.secondary,
|
|
84
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
|
+
},
|
|
85
164
|
button: {
|
|
86
165
|
textTransform: 'none',
|
|
87
166
|
fontWeight: 400,
|
|
@@ -89,6 +168,26 @@ export function createAppTheme(mode = 'light', themeConfig) {
|
|
|
89
168
|
}
|
|
90
169
|
},
|
|
91
170
|
components: {
|
|
171
|
+
MuiFormHelperText: {
|
|
172
|
+
styleOverrides: {
|
|
173
|
+
root: {
|
|
174
|
+
'&.Mui-error': {
|
|
175
|
+
color: isDark ? '#FCA5A5' : '#DC2626',
|
|
176
|
+
fontWeight: 500,
|
|
177
|
+
},
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
},
|
|
181
|
+
MuiInputBase: {
|
|
182
|
+
styleOverrides: {
|
|
183
|
+
root: {
|
|
184
|
+
backgroundColor: isDark ? '#1E293B' : undefined,
|
|
185
|
+
'&.Mui-error .MuiOutlinedInput-notchedOutline': {
|
|
186
|
+
borderColor: isDark ? '#F87171' : '#DC2626',
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
},
|
|
190
|
+
},
|
|
92
191
|
MuiButton: {
|
|
93
192
|
styleOverrides: {
|
|
94
193
|
root: {
|
package/dist/styles/tokens.css
CHANGED
|
@@ -106,4 +106,69 @@
|
|
|
106
106
|
--border-input-hover: rgba(30, 28, 52, 0.42);
|
|
107
107
|
--border-input-focus: var(--nx-clay);
|
|
108
108
|
--focus-ring: var(--nx-clay);
|
|
109
|
+
--nx-error: #dc2626;
|
|
110
|
+
--nx-error-bg: rgba(220, 38, 38, 0.08);
|
|
111
|
+
--nx-error-border: rgba(220, 38, 38, 0.3);
|
|
112
|
+
--nx-error-text: #991b1b;
|
|
113
|
+
--nx-warning: #d97706;
|
|
114
|
+
--nx-warning-bg: rgba(217, 119, 6, 0.08);
|
|
115
|
+
--nx-warning-border: rgba(217, 119, 6, 0.3);
|
|
116
|
+
--nx-warning-text: #92400e;
|
|
117
|
+
--nx-success: #16a34a;
|
|
118
|
+
--nx-success-bg: rgba(22, 163, 74, 0.08);
|
|
119
|
+
--nx-success-border: rgba(22, 163, 74, 0.3);
|
|
120
|
+
--nx-success-text: #166534;
|
|
121
|
+
--nx-info: #2563eb;
|
|
122
|
+
--nx-info-bg: rgba(37, 99, 235, 0.08);
|
|
123
|
+
--nx-info-border: rgba(37, 99, 235, 0.3);
|
|
124
|
+
--nx-info-text: #1e40af;
|
|
109
125
|
}
|
|
126
|
+
|
|
127
|
+
:where(.dark, .dark *),
|
|
128
|
+
.dark,
|
|
129
|
+
[data-theme="dark"] {
|
|
130
|
+
color-scheme: dark;
|
|
131
|
+
--nx-ink: #ffffff;
|
|
132
|
+
--nx-ink-logo: #ffffff;
|
|
133
|
+
--nx-dusty: #f8fafc;
|
|
134
|
+
--nx-body: #f8fafc;
|
|
135
|
+
--nx-sign: #f1f5f9;
|
|
136
|
+
--nx-ash: #e2e8f0;
|
|
137
|
+
--nx-muted: #cbd5e1;
|
|
138
|
+
--nx-fog: #cbd5e1;
|
|
139
|
+
--nx-parchment: #0f172a;
|
|
140
|
+
--nx-paper: #1e293b;
|
|
141
|
+
--nx-oat: #334155;
|
|
142
|
+
--nx-clay: #60a5fa;
|
|
143
|
+
--nx-line: rgba(255, 255, 255, 0.16);
|
|
144
|
+
--nx-line-soft: rgba(255, 255, 255, 0.10);
|
|
145
|
+
--nx-glass: rgba(30, 41, 59, 0.72);
|
|
146
|
+
--nx-glass-hi: rgba(51, 65, 85, 0.82);
|
|
147
|
+
--nx-tile: rgba(30, 41, 59, 0.86);
|
|
148
|
+
--nx-scrim: rgba(15, 23, 42, 0.95);
|
|
149
|
+
--surface-input: rgba(30, 41, 59, 0.92);
|
|
150
|
+
--surface-input-hover: #334155;
|
|
151
|
+
--surface-input-focus: #475569;
|
|
152
|
+
--surface-input-disabled: #1e293b;
|
|
153
|
+
--border-input: rgba(255, 255, 255, 0.22);
|
|
154
|
+
--border-input-hover: rgba(255, 255, 255, 0.32);
|
|
155
|
+
--border-input-focus: #ffffff;
|
|
156
|
+
--focus-ring: #ffffff;
|
|
157
|
+
--nx-error: #f87171;
|
|
158
|
+
--nx-error-bg: rgba(248, 113, 113, 0.15);
|
|
159
|
+
--nx-error-border: rgba(248, 113, 113, 0.4);
|
|
160
|
+
--nx-error-text: #fca5a5;
|
|
161
|
+
--nx-warning: #fbbf24;
|
|
162
|
+
--nx-warning-bg: rgba(251, 191, 36, 0.15);
|
|
163
|
+
--nx-warning-border: rgba(251, 191, 36, 0.4);
|
|
164
|
+
--nx-warning-text: #fde047;
|
|
165
|
+
--nx-success: #4ade80;
|
|
166
|
+
--nx-success-bg: rgba(74, 222, 128, 0.15);
|
|
167
|
+
--nx-success-border: rgba(74, 222, 128, 0.4);
|
|
168
|
+
--nx-success-text: #86efac;
|
|
169
|
+
--nx-info: #60a5fa;
|
|
170
|
+
--nx-info-bg: rgba(96, 165, 250, 0.15);
|
|
171
|
+
--nx-info-border: rgba(96, 165, 250, 0.4);
|
|
172
|
+
--nx-info-text: #93c5fd;
|
|
173
|
+
}
|
|
174
|
+
|
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.5.6",
|
|
4
4
|
"description": "NX° theme tokens, UI primitives, and layout showcase blocks",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -45,7 +45,7 @@
|
|
|
45
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
|
-
"lint": "
|
|
48
|
+
"lint": "eslint .",
|
|
49
49
|
"clean": "rm -rf dist"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
@@ -56,10 +56,13 @@
|
|
|
56
56
|
"react-dom": ">=18.0.0"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
+
"@goldlabelapps/flash": "workspace:*",
|
|
60
|
+
"@goldlabelapps/uberedux": "workspace:*",
|
|
59
61
|
"canvas-confetti": "^1.9.4",
|
|
60
62
|
"clsx": "^2.1.1",
|
|
61
63
|
"framer-motion": "^13.1.1",
|
|
62
64
|
"lucide-react": "^1.34.0",
|
|
65
|
+
"react-markdown": "^10.1.0",
|
|
63
66
|
"react-share": "^5.3.0",
|
|
64
67
|
"tailwind-merge": "^3.6.0"
|
|
65
68
|
},
|
|
@@ -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
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
export function MarkdownContent({ content }) {
|
|
4
|
-
// Simple markdown renderer for headers, tables, code blocks, and lists
|
|
5
|
-
return (_jsx("div", { className: "prose prose-slate max-w-none text-slate-800 leading-relaxed font-sans", children: _jsx("div", { dangerouslySetInnerHTML: { __html: content } }) }));
|
|
6
|
-
}
|
|
File without changes
|