@nuasite/cms-marker 0.0.63 → 0.0.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/types/dev-middleware.d.ts.map +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/manifest-writer.d.ts +11 -2
- package/dist/types/manifest-writer.d.ts.map +1 -1
- package/dist/types/tailwind-colors.d.ts +6 -21
- package/dist/types/tailwind-colors.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/types.d.ts +25 -3
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/dev-middleware.ts +2 -1
- package/src/index.ts +3 -0
- package/src/manifest-writer.ts +34 -10
- package/src/tailwind-colors.ts +308 -88
- package/src/types.ts +27 -3
package/dist/types/types.d.ts
CHANGED
|
@@ -66,12 +66,12 @@ export interface ContentConstraints {
|
|
|
66
66
|
/** Allowed HTML tags for rich text content */
|
|
67
67
|
allowedTags?: string[];
|
|
68
68
|
}
|
|
69
|
-
/** Represents a single Tailwind color with its shades */
|
|
69
|
+
/** Represents a single Tailwind color with its shades and values */
|
|
70
70
|
export interface TailwindColor {
|
|
71
71
|
/** Color name (e.g., 'red', 'blue', 'primary') */
|
|
72
72
|
name: string;
|
|
73
|
-
/**
|
|
74
|
-
|
|
73
|
+
/** Map of shade to CSS color value (e.g., { '500': '#ef4444', '600': '#dc2626' }) */
|
|
74
|
+
values: Record<string, string>;
|
|
75
75
|
/** Whether this is a custom/theme color vs default Tailwind */
|
|
76
76
|
isCustom?: boolean;
|
|
77
77
|
}
|
|
@@ -99,6 +99,26 @@ export interface AvailableColors {
|
|
|
99
99
|
/** Custom/theme color names */
|
|
100
100
|
customColors: string[];
|
|
101
101
|
}
|
|
102
|
+
/** Text style value with class name and CSS properties */
|
|
103
|
+
export interface TextStyleValue {
|
|
104
|
+
/** Tailwind class name (e.g., 'font-bold', 'text-xl') */
|
|
105
|
+
class: string;
|
|
106
|
+
/** Display label for UI */
|
|
107
|
+
label: string;
|
|
108
|
+
/** CSS properties to apply (e.g., { fontWeight: '700' }) */
|
|
109
|
+
css: Record<string, string>;
|
|
110
|
+
}
|
|
111
|
+
/** Available text styles from Tailwind config */
|
|
112
|
+
export interface AvailableTextStyles {
|
|
113
|
+
/** Font weight options (font-normal, font-bold, etc.) */
|
|
114
|
+
fontWeight: TextStyleValue[];
|
|
115
|
+
/** Font size options (text-xs, text-sm, text-base, etc.) */
|
|
116
|
+
fontSize: TextStyleValue[];
|
|
117
|
+
/** Text decoration options (underline, line-through, etc.) */
|
|
118
|
+
textDecoration: TextStyleValue[];
|
|
119
|
+
/** Font style options (italic, not-italic) */
|
|
120
|
+
fontStyle: TextStyleValue[];
|
|
121
|
+
}
|
|
102
122
|
export interface ManifestEntry {
|
|
103
123
|
id: string;
|
|
104
124
|
tag: string;
|
|
@@ -191,5 +211,7 @@ export interface CmsManifest {
|
|
|
191
211
|
collections?: Record<string, CollectionEntry>;
|
|
192
212
|
/** Available Tailwind colors from the project's config */
|
|
193
213
|
availableColors?: AvailableColors;
|
|
214
|
+
/** Available text styles from the project's Tailwind config */
|
|
215
|
+
availableTextStyles?: AvailableTextStyles;
|
|
194
216
|
}
|
|
195
217
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAChC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,wEAAwE;IACxE,UAAU,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,OAAO,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,mBAAmB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,aAAa,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,8EAA8E;AAC9E,MAAM,WAAW,aAAa;IAC7B,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,oDAAoD;IACpD,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,uCAAuC;IACvC,aAAa,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC7B,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,eAAe;IACf,GAAG,EAAE,MAAM,CAAA;IACX,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uBAAuB;IACvB,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC9C,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IAClC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/dev-middleware.ts
CHANGED
|
@@ -27,7 +27,7 @@ export function createDevMiddleware(
|
|
|
27
27
|
componentDefinitions: Record<string, ComponentDefinition>,
|
|
28
28
|
idCounter: { value: number },
|
|
29
29
|
) {
|
|
30
|
-
// Serve global CMS manifest (component definitions and settings)
|
|
30
|
+
// Serve global CMS manifest (component definitions, available colors, and settings)
|
|
31
31
|
server.middlewares.use((req, res, next) => {
|
|
32
32
|
if (req.url === '/cms-manifest.json') {
|
|
33
33
|
res.setHeader('Content-Type', 'application/json')
|
|
@@ -35,6 +35,7 @@ export function createDevMiddleware(
|
|
|
35
35
|
res.end(JSON.stringify(
|
|
36
36
|
{
|
|
37
37
|
componentDefinitions,
|
|
38
|
+
availableColors: manifestWriter.getAvailableColors(),
|
|
38
39
|
},
|
|
39
40
|
null,
|
|
40
41
|
2,
|
package/src/index.ts
CHANGED
|
@@ -47,6 +47,9 @@ export default function cmsMarker(options: CmsMarkerOptions = {}): AstroIntegrat
|
|
|
47
47
|
idCounter.value = 0
|
|
48
48
|
manifestWriter.reset()
|
|
49
49
|
|
|
50
|
+
// Load available colors from Tailwind config
|
|
51
|
+
await manifestWriter.loadAvailableColors()
|
|
52
|
+
|
|
50
53
|
// Scan for component definitions
|
|
51
54
|
if (markComponents) {
|
|
52
55
|
const registry = new ComponentRegistry(componentDirs)
|
package/src/manifest-writer.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from 'node:fs/promises'
|
|
2
2
|
import path from 'node:path'
|
|
3
|
-
import { parseTailwindConfig } from './tailwind-colors'
|
|
4
|
-
import type { AvailableColors, CmsManifest, CollectionEntry, ComponentDefinition, ComponentInstance, ManifestEntry, ManifestMetadata } from './types'
|
|
3
|
+
import { parseTailwindConfig, parseTextStyles } from './tailwind-colors'
|
|
4
|
+
import type { AvailableColors, AvailableTextStyles, CmsManifest, CollectionEntry, ComponentDefinition, ComponentInstance, ManifestEntry, ManifestMetadata } from './types'
|
|
5
5
|
import { generateManifestContentHash, generateSourceFileHashes } from './utils'
|
|
6
6
|
|
|
7
7
|
/** Current manifest schema version */
|
|
@@ -22,6 +22,7 @@ export class ManifestWriter {
|
|
|
22
22
|
private manifestFile: string
|
|
23
23
|
private componentDefinitions: Record<string, ComponentDefinition>
|
|
24
24
|
private availableColors: AvailableColors | undefined
|
|
25
|
+
private availableTextStyles: AvailableTextStyles | undefined
|
|
25
26
|
private writeQueue: Promise<void> = Promise.resolve()
|
|
26
27
|
|
|
27
28
|
constructor(manifestFile: string, componentDefinitions: Record<string, ComponentDefinition> = {}) {
|
|
@@ -51,11 +52,13 @@ export class ManifestWriter {
|
|
|
51
52
|
}
|
|
52
53
|
|
|
53
54
|
/**
|
|
54
|
-
* Load available Tailwind colors from the project's CSS config
|
|
55
|
+
* Load available Tailwind colors and text styles from the project's CSS config
|
|
55
56
|
*/
|
|
56
57
|
async loadAvailableColors(projectRoot: string = process.cwd()): Promise<void> {
|
|
57
58
|
this.availableColors = await parseTailwindConfig(projectRoot)
|
|
59
|
+
this.availableTextStyles = await parseTextStyles(projectRoot)
|
|
58
60
|
this.globalManifest.availableColors = this.availableColors
|
|
61
|
+
this.globalManifest.availableTextStyles = this.availableTextStyles
|
|
59
62
|
}
|
|
60
63
|
|
|
61
64
|
/**
|
|
@@ -66,6 +69,14 @@ export class ManifestWriter {
|
|
|
66
69
|
this.globalManifest.availableColors = colors
|
|
67
70
|
}
|
|
68
71
|
|
|
72
|
+
/**
|
|
73
|
+
* Set available text styles directly (for testing or custom styles)
|
|
74
|
+
*/
|
|
75
|
+
setAvailableTextStyles(textStyles: AvailableTextStyles): void {
|
|
76
|
+
this.availableTextStyles = textStyles
|
|
77
|
+
this.globalManifest.availableTextStyles = textStyles
|
|
78
|
+
}
|
|
79
|
+
|
|
69
80
|
/**
|
|
70
81
|
* Get the manifest path for a given page
|
|
71
82
|
* Places manifest next to the page: /about -> /about.json, / -> /index.json
|
|
@@ -138,7 +149,6 @@ export class ManifestWriter {
|
|
|
138
149
|
components: Record<string, ComponentInstance>
|
|
139
150
|
componentDefinitions: Record<string, ComponentDefinition>
|
|
140
151
|
collection?: CollectionEntry
|
|
141
|
-
availableColors?: AvailableColors
|
|
142
152
|
} = {
|
|
143
153
|
metadata,
|
|
144
154
|
page: pagePath,
|
|
@@ -151,10 +161,6 @@ export class ManifestWriter {
|
|
|
151
161
|
pageManifest.collection = collection
|
|
152
162
|
}
|
|
153
163
|
|
|
154
|
-
if (this.availableColors) {
|
|
155
|
-
pageManifest.availableColors = this.availableColors
|
|
156
|
-
}
|
|
157
|
-
|
|
158
164
|
await fs.writeFile(manifestPath, JSON.stringify(pageManifest, null, 2), 'utf-8')
|
|
159
165
|
}
|
|
160
166
|
|
|
@@ -166,12 +172,22 @@ export class ManifestWriter {
|
|
|
166
172
|
// Wait for all queued writes to complete
|
|
167
173
|
await this.writeQueue
|
|
168
174
|
|
|
169
|
-
// Write global manifest with settings (component definitions
|
|
175
|
+
// Write global manifest with settings (component definitions, colors, and text styles)
|
|
170
176
|
if (this.outDir) {
|
|
171
177
|
const globalManifestPath = path.join(this.outDir, this.manifestFile)
|
|
172
|
-
const globalSettings
|
|
178
|
+
const globalSettings: {
|
|
179
|
+
componentDefinitions: Record<string, ComponentDefinition>
|
|
180
|
+
availableColors?: AvailableColors
|
|
181
|
+
availableTextStyles?: AvailableTextStyles
|
|
182
|
+
} = {
|
|
173
183
|
componentDefinitions: this.componentDefinitions,
|
|
174
184
|
}
|
|
185
|
+
if (this.availableColors) {
|
|
186
|
+
globalSettings.availableColors = this.availableColors
|
|
187
|
+
}
|
|
188
|
+
if (this.availableTextStyles) {
|
|
189
|
+
globalSettings.availableTextStyles = this.availableTextStyles
|
|
190
|
+
}
|
|
175
191
|
await fs.writeFile(
|
|
176
192
|
globalManifestPath,
|
|
177
193
|
JSON.stringify(globalSettings, null, 2),
|
|
@@ -215,6 +231,7 @@ export class ManifestWriter {
|
|
|
215
231
|
componentDefinitions: this.componentDefinitions,
|
|
216
232
|
collections: {},
|
|
217
233
|
availableColors: this.availableColors,
|
|
234
|
+
availableTextStyles: this.availableTextStyles,
|
|
218
235
|
}
|
|
219
236
|
this.writeQueue = Promise.resolve()
|
|
220
237
|
}
|
|
@@ -225,4 +242,11 @@ export class ManifestWriter {
|
|
|
225
242
|
getAvailableColors(): AvailableColors | undefined {
|
|
226
243
|
return this.availableColors
|
|
227
244
|
}
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* Get available text styles (for use in dev middleware)
|
|
248
|
+
*/
|
|
249
|
+
getAvailableTextStyles(): AvailableTextStyles | undefined {
|
|
250
|
+
return this.availableTextStyles
|
|
251
|
+
}
|
|
228
252
|
}
|