@growth-labs/cms 0.5.26 → 0.5.29
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 +20 -0
- package/dist/engine/slug.d.ts.map +1 -1
- package/dist/engine/slug.js +11 -1
- package/dist/engine/slug.js.map +1 -1
- package/dist/integration/options.d.ts +196 -0
- package/dist/integration/options.d.ts.map +1 -1
- package/dist/integration/options.js +62 -0
- package/dist/integration/options.js.map +1 -1
- package/dist/routes/content.d.ts.map +1 -1
- package/dist/routes/content.js +30 -0
- package/dist/routes/content.js.map +1 -1
- package/dist/ui/client/mount.d.ts +1 -0
- package/dist/ui/client/mount.d.ts.map +1 -1
- package/dist/ui/client/mount.js +2 -0
- package/dist/ui/client/mount.js.map +1 -1
- package/dist/ui/components/CmsApp.js +2 -11
- package/dist/ui/components/CmsApp.js.map +1 -1
- package/dist/ui/components/Sidebar.d.ts.map +1 -1
- package/dist/ui/components/Sidebar.js +2 -2
- package/dist/ui/components/Sidebar.js.map +1 -1
- package/dist/ui/components/Topbar.d.ts.map +1 -1
- package/dist/ui/components/Topbar.js +1 -10
- package/dist/ui/components/Topbar.js.map +1 -1
- package/dist/ui/editor/ContentForm.d.ts +3 -1
- package/dist/ui/editor/ContentForm.d.ts.map +1 -1
- package/dist/ui/editor/ContentForm.js +42 -16
- package/dist/ui/editor/ContentForm.js.map +1 -1
- package/dist/ui/editor/Rte.js +3 -3
- package/dist/ui/editor/Rte.js.map +1 -1
- package/dist/ui/editor/content-payload.d.ts +12 -0
- package/dist/ui/editor/content-payload.d.ts.map +1 -1
- package/dist/ui/editor/content-payload.js +24 -0
- package/dist/ui/editor/content-payload.js.map +1 -1
- package/dist/ui/inspector/FoundryTab.js +1 -1
- package/dist/ui/inspector/FoundryTab.js.map +1 -1
- package/dist/ui/pages/admin.astro +1 -1
- package/dist/ui/screens/AuthorsScreen.js +1 -1
- package/dist/ui/screens/ContentInsightsScreen.js +1 -1
- package/dist/ui/screens/ContentInsightsScreen.js.map +1 -1
- package/dist/ui/screens/ContentRoute.d.ts +3 -1
- package/dist/ui/screens/ContentRoute.d.ts.map +1 -1
- package/dist/ui/screens/ContentRoute.js +2 -2
- package/dist/ui/screens/ContentRoute.js.map +1 -1
- package/dist/ui/screens/EditorScreen.d.ts +6 -1
- package/dist/ui/screens/EditorScreen.d.ts.map +1 -1
- package/dist/ui/screens/EditorScreen.js +17 -11
- package/dist/ui/screens/EditorScreen.js.map +1 -1
- package/dist/ui/screens/LibraryScreen.js +2 -2
- package/dist/ui/screens/LibraryScreen.js.map +1 -1
- package/dist/ui/screens/SettingsScreen.js +1 -1
- package/dist/ui/screens/SubscriptionsScreen.js +2 -2
- package/dist/ui/screens/registry.d.ts +3 -1
- package/dist/ui/screens/registry.d.ts.map +1 -1
- package/dist/ui/screens/registry.js +2 -2
- package/dist/ui/screens/registry.js.map +1 -1
- package/dist/ui/styles/broadsheet.css +131 -156
- package/dist/ui/styles/growth-labs-tokens.css +149 -0
- package/dist/ui/theme.d.ts +7 -4
- package/dist/ui/theme.d.ts.map +1 -1
- package/dist/ui/theme.js +24 -65
- package/dist/ui/theme.js.map +1 -1
- package/dist/ui/use-tweaks.d.ts.map +1 -1
- package/dist/ui/use-tweaks.js +2 -1
- package/dist/ui/use-tweaks.js.map +1 -1
- package/package.json +1 -1
- package/src/engine/slug.ts +12 -1
- package/src/integration/options.ts +69 -0
- package/src/routes/content.ts +37 -0
- package/src/ui/client/mount.tsx +2 -0
- package/src/ui/components/CmsApp.tsx +3 -20
- package/src/ui/components/Sidebar.tsx +5 -11
- package/src/ui/components/Topbar.tsx +2 -13
- package/src/ui/editor/ContentForm.tsx +81 -13
- package/src/ui/editor/Rte.tsx +3 -3
- package/src/ui/editor/content-payload.ts +39 -0
- package/src/ui/inspector/FoundryTab.tsx +1 -1
- package/src/ui/pages/admin.astro +1 -1
- package/src/ui/screens/AuthorsScreen.tsx +1 -1
- package/src/ui/screens/ContentInsightsScreen.tsx +1 -1
- package/src/ui/screens/ContentRoute.tsx +4 -0
- package/src/ui/screens/EditorScreen.tsx +21 -9
- package/src/ui/screens/LibraryScreen.tsx +5 -2
- package/src/ui/screens/SettingsScreen.tsx +1 -1
- package/src/ui/screens/SubscriptionsScreen.tsx +2 -2
- package/src/ui/screens/registry.tsx +4 -0
- package/src/ui/styles/broadsheet.css +131 -156
- package/src/ui/styles/growth-labs-tokens.css +149 -0
- package/src/ui/theme.ts +29 -68
- package/src/ui/use-tweaks.ts +2 -1
package/src/ui/theme.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
//
|
|
2
|
-
//
|
|
3
|
-
// the useTweaks effect; broadsheet.css carries the rest.
|
|
1
|
+
// Compatibility helpers for the fixed Growth Labs visual contract. Theme and
|
|
2
|
+
// density remain user preferences; brand accent and typography do not.
|
|
4
3
|
|
|
5
4
|
export interface AccentSet {
|
|
6
5
|
a: string
|
|
@@ -9,66 +8,25 @@ export interface AccentSet {
|
|
|
9
8
|
tint: string
|
|
10
9
|
ring: string
|
|
11
10
|
}
|
|
12
|
-
|
|
11
|
+
type BrandAccentName = 'Growth Labs'
|
|
12
|
+
export type AccentName = BrandAccentName | 'Ink blue' | 'Press red' | 'Forest' | 'Violet'
|
|
13
13
|
|
|
14
|
-
export const ACCENTS: Record<
|
|
15
|
-
'
|
|
16
|
-
a: '#
|
|
17
|
-
s: '#
|
|
18
|
-
fg: '#
|
|
19
|
-
tint: 'rgba(
|
|
20
|
-
ring: '
|
|
21
|
-
},
|
|
22
|
-
'Press red': {
|
|
23
|
-
a: '#b23a2e',
|
|
24
|
-
s: '#962f25',
|
|
25
|
-
fg: '#ffffff',
|
|
26
|
-
tint: 'rgba(178,58,46,0.10)',
|
|
27
|
-
ring: 'rgba(178,58,46,0.38)',
|
|
28
|
-
},
|
|
29
|
-
Forest: {
|
|
30
|
-
a: '#1f6b4a',
|
|
31
|
-
s: '#19583d',
|
|
32
|
-
fg: '#ffffff',
|
|
33
|
-
tint: 'rgba(31,107,74,0.10)',
|
|
34
|
-
ring: 'rgba(31,107,74,0.38)',
|
|
35
|
-
},
|
|
36
|
-
Violet: {
|
|
37
|
-
a: '#5b4bc4',
|
|
38
|
-
s: '#4c3ea8',
|
|
39
|
-
fg: '#ffffff',
|
|
40
|
-
tint: 'rgba(91,75,196,0.10)',
|
|
41
|
-
ring: 'rgba(91,75,196,0.38)',
|
|
14
|
+
export const ACCENTS: Record<BrandAccentName, AccentSet> = {
|
|
15
|
+
'Growth Labs': {
|
|
16
|
+
a: '#2F6FBD',
|
|
17
|
+
s: '#245CA8',
|
|
18
|
+
fg: '#FFFFFF',
|
|
19
|
+
tint: 'rgba(62,209,198,0.14)',
|
|
20
|
+
ring: '#1E5EA8',
|
|
42
21
|
},
|
|
43
22
|
}
|
|
44
|
-
export const ACCENTS_DARK: Record<
|
|
45
|
-
'
|
|
46
|
-
a: '#
|
|
47
|
-
s: '#
|
|
48
|
-
fg: '#
|
|
49
|
-
tint: 'rgba(
|
|
50
|
-
ring: '
|
|
51
|
-
},
|
|
52
|
-
'Press red': {
|
|
53
|
-
a: '#ef6e62',
|
|
54
|
-
s: '#e05348',
|
|
55
|
-
fg: '#1d0a08',
|
|
56
|
-
tint: 'rgba(239,110,98,0.16)',
|
|
57
|
-
ring: 'rgba(239,110,98,0.45)',
|
|
58
|
-
},
|
|
59
|
-
Forest: {
|
|
60
|
-
a: '#4ec98a',
|
|
61
|
-
s: '#3bb476',
|
|
62
|
-
fg: '#06160f',
|
|
63
|
-
tint: 'rgba(78,201,138,0.16)',
|
|
64
|
-
ring: 'rgba(78,201,138,0.45)',
|
|
65
|
-
},
|
|
66
|
-
Violet: {
|
|
67
|
-
a: '#9d8df0',
|
|
68
|
-
s: '#8978e6',
|
|
69
|
-
fg: '#0e0a1d',
|
|
70
|
-
tint: 'rgba(157,141,240,0.16)',
|
|
71
|
-
ring: 'rgba(157,141,240,0.45)',
|
|
23
|
+
export const ACCENTS_DARK: Record<BrandAccentName, AccentSet> = {
|
|
24
|
+
'Growth Labs': {
|
|
25
|
+
a: '#3F86D8',
|
|
26
|
+
s: '#2F6FBD',
|
|
27
|
+
fg: '#FFFFFF',
|
|
28
|
+
tint: 'rgba(62,209,198,0.18)',
|
|
29
|
+
ring: '#50F5EC',
|
|
72
30
|
},
|
|
73
31
|
}
|
|
74
32
|
|
|
@@ -77,23 +35,26 @@ export type Density = 'compact' | 'regular' | 'comfy'
|
|
|
77
35
|
export type PreviewPos = 'right' | 'bottom' | 'off'
|
|
78
36
|
|
|
79
37
|
export const TWEAK_DEFAULTS = {
|
|
80
|
-
theme: '
|
|
81
|
-
accent: '
|
|
38
|
+
theme: 'light' as ThemeMode,
|
|
39
|
+
accent: 'Growth Labs' as AccentName,
|
|
82
40
|
density: 'regular' as Density,
|
|
83
41
|
previewPos: 'off' as PreviewPos,
|
|
84
|
-
serifDisplay:
|
|
42
|
+
serifDisplay: false,
|
|
85
43
|
}
|
|
86
44
|
|
|
87
|
-
const
|
|
88
|
-
|
|
45
|
+
const DISPLAY = '"Space Grotesk", "Lato", system-ui, sans-serif'
|
|
46
|
+
|
|
47
|
+
export function serifVar(_serifDisplay: boolean): string {
|
|
48
|
+
return DISPLAY
|
|
49
|
+
}
|
|
89
50
|
|
|
90
|
-
export function
|
|
91
|
-
return
|
|
51
|
+
export function inverseTextVar(theme: ThemeMode): string {
|
|
52
|
+
return theme === 'dark' ? '#2B2F33' : '#FFFFFF'
|
|
92
53
|
}
|
|
93
54
|
|
|
94
55
|
export function resolveAccentVars(theme: ThemeMode, accent: AccentName): Record<string, string> {
|
|
95
56
|
const table = theme === 'dark' ? ACCENTS_DARK : ACCENTS
|
|
96
|
-
const set = table[accent] ?? table['
|
|
57
|
+
const set = table[accent as BrandAccentName] ?? table['Growth Labs']
|
|
97
58
|
return {
|
|
98
59
|
'--accent': set.a,
|
|
99
60
|
'--accent-strong': set.s,
|
package/src/ui/use-tweaks.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useCallback, useEffect, useState } from 'react'
|
|
2
|
-
import { resolveAccentVars, serifVar } from './theme.js'
|
|
2
|
+
import { inverseTextVar, resolveAccentVars, serifVar } from './theme.js'
|
|
3
3
|
import { applyTweak, loadTweaks, saveTweaks, type TweakState } from './tweaks.js'
|
|
4
4
|
|
|
5
5
|
export function useTweaks(): {
|
|
@@ -26,6 +26,7 @@ export function useTweaks(): {
|
|
|
26
26
|
for (const [k, val] of Object.entries(resolveAccentVars(t.theme, t.accent)))
|
|
27
27
|
root.style.setProperty(k, val)
|
|
28
28
|
root.style.setProperty('--serif', serifVar(t.serifDisplay))
|
|
29
|
+
root.style.setProperty('--text-on-inverse', inverseTextVar(t.theme))
|
|
29
30
|
}, [t.theme, t.density, t.accent, t.serifDisplay])
|
|
30
31
|
return { t, setTweak }
|
|
31
32
|
}
|