mozaic-mcp-server 1.0.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.
Files changed (161) hide show
  1. package/INSTALLATION.md +232 -0
  2. package/README.md +262 -0
  3. package/SKILLS.md +411 -0
  4. package/bin/install-skills.js +171 -0
  5. package/data/mozaic.db +0 -0
  6. package/data/mozaic.db-shm +0 -0
  7. package/data/mozaic.db-wal +0 -0
  8. package/dist/__tests__/sanity-check.test.d.ts +2 -0
  9. package/dist/__tests__/sanity-check.test.d.ts.map +1 -0
  10. package/dist/__tests__/sanity-check.test.js +167 -0
  11. package/dist/__tests__/sanity-check.test.js.map +1 -0
  12. package/dist/__tests__/tools.integration.test.d.ts +2 -0
  13. package/dist/__tests__/tools.integration.test.d.ts.map +1 -0
  14. package/dist/__tests__/tools.integration.test.js +220 -0
  15. package/dist/__tests__/tools.integration.test.js.map +1 -0
  16. package/dist/db/queries.d.ts +144 -0
  17. package/dist/db/queries.d.ts.map +1 -0
  18. package/dist/db/queries.js +536 -0
  19. package/dist/db/queries.js.map +1 -0
  20. package/dist/db/schema.d.ts +4 -0
  21. package/dist/db/schema.d.ts.map +1 -0
  22. package/dist/db/schema.js +253 -0
  23. package/dist/db/schema.js.map +1 -0
  24. package/dist/index.d.ts +3 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +416 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/parsers/__tests__/docs-parser.test.d.ts +2 -0
  29. package/dist/parsers/__tests__/docs-parser.test.d.ts.map +1 -0
  30. package/dist/parsers/__tests__/docs-parser.test.js +251 -0
  31. package/dist/parsers/__tests__/docs-parser.test.js.map +1 -0
  32. package/dist/parsers/__tests__/icons-parser.test.d.ts +2 -0
  33. package/dist/parsers/__tests__/icons-parser.test.d.ts.map +1 -0
  34. package/dist/parsers/__tests__/icons-parser.test.js +169 -0
  35. package/dist/parsers/__tests__/icons-parser.test.js.map +1 -0
  36. package/dist/parsers/__tests__/react-parser.test.d.ts +2 -0
  37. package/dist/parsers/__tests__/react-parser.test.d.ts.map +1 -0
  38. package/dist/parsers/__tests__/react-parser.test.js +274 -0
  39. package/dist/parsers/__tests__/react-parser.test.js.map +1 -0
  40. package/dist/parsers/__tests__/scss-parser.test.d.ts +2 -0
  41. package/dist/parsers/__tests__/scss-parser.test.d.ts.map +1 -0
  42. package/dist/parsers/__tests__/scss-parser.test.js +364 -0
  43. package/dist/parsers/__tests__/scss-parser.test.js.map +1 -0
  44. package/dist/parsers/__tests__/tokens-parser.test.d.ts +2 -0
  45. package/dist/parsers/__tests__/tokens-parser.test.d.ts.map +1 -0
  46. package/dist/parsers/__tests__/tokens-parser.test.js +172 -0
  47. package/dist/parsers/__tests__/tokens-parser.test.js.map +1 -0
  48. package/dist/parsers/__tests__/vue-parser.test.d.ts +2 -0
  49. package/dist/parsers/__tests__/vue-parser.test.d.ts.map +1 -0
  50. package/dist/parsers/__tests__/vue-parser.test.js +207 -0
  51. package/dist/parsers/__tests__/vue-parser.test.js.map +1 -0
  52. package/dist/parsers/docs-parser.d.ts +4 -0
  53. package/dist/parsers/docs-parser.d.ts.map +1 -0
  54. package/dist/parsers/docs-parser.js +237 -0
  55. package/dist/parsers/docs-parser.js.map +1 -0
  56. package/dist/parsers/icons-parser.d.ts +33 -0
  57. package/dist/parsers/icons-parser.d.ts.map +1 -0
  58. package/dist/parsers/icons-parser.js +125 -0
  59. package/dist/parsers/icons-parser.js.map +1 -0
  60. package/dist/parsers/react-parser.d.ts +3 -0
  61. package/dist/parsers/react-parser.d.ts.map +1 -0
  62. package/dist/parsers/react-parser.js +406 -0
  63. package/dist/parsers/react-parser.js.map +1 -0
  64. package/dist/parsers/scss-parser.d.ts +9 -0
  65. package/dist/parsers/scss-parser.d.ts.map +1 -0
  66. package/dist/parsers/scss-parser.js +351 -0
  67. package/dist/parsers/scss-parser.js.map +1 -0
  68. package/dist/parsers/tokens/border-parser.d.ts +3 -0
  69. package/dist/parsers/tokens/border-parser.d.ts.map +1 -0
  70. package/dist/parsers/tokens/border-parser.js +83 -0
  71. package/dist/parsers/tokens/border-parser.js.map +1 -0
  72. package/dist/parsers/tokens/color-parser.d.ts +3 -0
  73. package/dist/parsers/tokens/color-parser.d.ts.map +1 -0
  74. package/dist/parsers/tokens/color-parser.js +88 -0
  75. package/dist/parsers/tokens/color-parser.js.map +1 -0
  76. package/dist/parsers/tokens/grid-parser.d.ts +3 -0
  77. package/dist/parsers/tokens/grid-parser.d.ts.map +1 -0
  78. package/dist/parsers/tokens/grid-parser.js +97 -0
  79. package/dist/parsers/tokens/grid-parser.js.map +1 -0
  80. package/dist/parsers/tokens/index.d.ts +9 -0
  81. package/dist/parsers/tokens/index.d.ts.map +1 -0
  82. package/dist/parsers/tokens/index.js +10 -0
  83. package/dist/parsers/tokens/index.js.map +1 -0
  84. package/dist/parsers/tokens/screen-parser.d.ts +3 -0
  85. package/dist/parsers/tokens/screen-parser.d.ts.map +1 -0
  86. package/dist/parsers/tokens/screen-parser.js +54 -0
  87. package/dist/parsers/tokens/screen-parser.js.map +1 -0
  88. package/dist/parsers/tokens/shadow-parser.d.ts +3 -0
  89. package/dist/parsers/tokens/shadow-parser.d.ts.map +1 -0
  90. package/dist/parsers/tokens/shadow-parser.js +62 -0
  91. package/dist/parsers/tokens/shadow-parser.js.map +1 -0
  92. package/dist/parsers/tokens/spacing-parser.d.ts +4 -0
  93. package/dist/parsers/tokens/spacing-parser.d.ts.map +1 -0
  94. package/dist/parsers/tokens/spacing-parser.js +85 -0
  95. package/dist/parsers/tokens/spacing-parser.js.map +1 -0
  96. package/dist/parsers/tokens/types.d.ts +33 -0
  97. package/dist/parsers/tokens/types.d.ts.map +1 -0
  98. package/dist/parsers/tokens/types.js +42 -0
  99. package/dist/parsers/tokens/types.js.map +1 -0
  100. package/dist/parsers/tokens/typography-parser.d.ts +3 -0
  101. package/dist/parsers/tokens/typography-parser.d.ts.map +1 -0
  102. package/dist/parsers/tokens/typography-parser.js +76 -0
  103. package/dist/parsers/tokens/typography-parser.js.map +1 -0
  104. package/dist/parsers/tokens-parser.d.ts +18 -0
  105. package/dist/parsers/tokens-parser.d.ts.map +1 -0
  106. package/dist/parsers/tokens-parser.js +57 -0
  107. package/dist/parsers/tokens-parser.js.map +1 -0
  108. package/dist/parsers/vue-parser.d.ts +3 -0
  109. package/dist/parsers/vue-parser.d.ts.map +1 -0
  110. package/dist/parsers/vue-parser.js +343 -0
  111. package/dist/parsers/vue-parser.js.map +1 -0
  112. package/dist/tools/generate-react-component.d.ts +35 -0
  113. package/dist/tools/generate-react-component.d.ts.map +1 -0
  114. package/dist/tools/generate-react-component.js +81 -0
  115. package/dist/tools/generate-react-component.js.map +1 -0
  116. package/dist/tools/generate-vue-component.d.ts +35 -0
  117. package/dist/tools/generate-vue-component.d.ts.map +1 -0
  118. package/dist/tools/generate-vue-component.js +81 -0
  119. package/dist/tools/generate-vue-component.js.map +1 -0
  120. package/dist/tools/get-component-info.d.ts +52 -0
  121. package/dist/tools/get-component-info.d.ts.map +1 -0
  122. package/dist/tools/get-component-info.js +94 -0
  123. package/dist/tools/get-component-info.js.map +1 -0
  124. package/dist/tools/get-css-utility.d.ts +41 -0
  125. package/dist/tools/get-css-utility.d.ts.map +1 -0
  126. package/dist/tools/get-css-utility.js +57 -0
  127. package/dist/tools/get-css-utility.js.map +1 -0
  128. package/dist/tools/get-design-tokens.d.ts +44 -0
  129. package/dist/tools/get-design-tokens.d.ts.map +1 -0
  130. package/dist/tools/get-design-tokens.js +124 -0
  131. package/dist/tools/get-design-tokens.js.map +1 -0
  132. package/dist/tools/get-icon.d.ts +32 -0
  133. package/dist/tools/get-icon.d.ts.map +1 -0
  134. package/dist/tools/get-icon.js +108 -0
  135. package/dist/tools/get-icon.js.map +1 -0
  136. package/dist/tools/get-install-info.d.ts +39 -0
  137. package/dist/tools/get-install-info.d.ts.map +1 -0
  138. package/dist/tools/get-install-info.js +160 -0
  139. package/dist/tools/get-install-info.js.map +1 -0
  140. package/dist/tools/list-components.d.ts +32 -0
  141. package/dist/tools/list-components.d.ts.map +1 -0
  142. package/dist/tools/list-components.js +62 -0
  143. package/dist/tools/list-components.js.map +1 -0
  144. package/dist/tools/list-css-utilities.d.ts +27 -0
  145. package/dist/tools/list-css-utilities.d.ts.map +1 -0
  146. package/dist/tools/list-css-utilities.js +48 -0
  147. package/dist/tools/list-css-utilities.js.map +1 -0
  148. package/dist/tools/search-documentation.d.ts +37 -0
  149. package/dist/tools/search-documentation.d.ts.map +1 -0
  150. package/dist/tools/search-documentation.js +120 -0
  151. package/dist/tools/search-documentation.js.map +1 -0
  152. package/dist/tools/search-icons.d.ts +41 -0
  153. package/dist/tools/search-icons.d.ts.map +1 -0
  154. package/dist/tools/search-icons.js +134 -0
  155. package/dist/tools/search-icons.js.map +1 -0
  156. package/package.json +98 -0
  157. package/skills/mozaic-css-utilities/skill.md +633 -0
  158. package/skills/mozaic-design-tokens/skill.md +621 -0
  159. package/skills/mozaic-icons/skill.md +624 -0
  160. package/skills/mozaic-react-builder/skill.md +652 -0
  161. package/skills/mozaic-vue-builder/skill.md +491 -0
@@ -0,0 +1,237 @@
1
+ import { readFileSync, existsSync, readdirSync, statSync } from "fs";
2
+ import { join, relative } from "path";
3
+ // Extract frontmatter from MDX files
4
+ function extractFrontmatter(content) {
5
+ const frontmatterRegex = /^---\n([\s\S]*?)\n---\n([\s\S]*)$/;
6
+ const match = content.match(frontmatterRegex);
7
+ if (match) {
8
+ const frontmatterStr = match[1];
9
+ const body = match[2];
10
+ const frontmatter = {};
11
+ const lines = frontmatterStr.split("\n");
12
+ for (const line of lines) {
13
+ const colonIndex = line.indexOf(":");
14
+ if (colonIndex !== -1) {
15
+ const key = line.substring(0, colonIndex).trim();
16
+ const value = line
17
+ .substring(colonIndex + 1)
18
+ .trim()
19
+ .replace(/^['"]|['"]$/g, "");
20
+ frontmatter[key] = value;
21
+ }
22
+ }
23
+ return { frontmatter, body };
24
+ }
25
+ return { frontmatter: {}, body: content };
26
+ }
27
+ // Extract title from content if not in frontmatter
28
+ function extractTitle(content) {
29
+ // Try to find Storybook Meta title (e.g., <Meta title="Getting Started/Introduction" />)
30
+ const metaMatch = content.match(/<Meta\s+title=["']([^"']+)["']/);
31
+ if (metaMatch) {
32
+ // Take the last part of the path as title (e.g., "Getting Started/Introduction" -> "Introduction")
33
+ const parts = metaMatch[1].split("/");
34
+ return parts[parts.length - 1];
35
+ }
36
+ // Try to find first h1
37
+ const h1Match = content.match(/^#\s+(.+)$/m);
38
+ if (h1Match) {
39
+ return h1Match[1];
40
+ }
41
+ // Try to find MDX heading
42
+ const mdxMatch = content.match(/<h1[^>]*>([^<]+)<\/h1>/i);
43
+ if (mdxMatch) {
44
+ return mdxMatch[1];
45
+ }
46
+ return "Untitled";
47
+ }
48
+ // Extract Storybook Meta title path for URL generation
49
+ function extractMetaTitlePath(content) {
50
+ const metaMatch = content.match(/<Meta\s+title=["']([^"']+)["']/);
51
+ if (metaMatch) {
52
+ return metaMatch[1].toLowerCase().replace(/\s+/g, "-");
53
+ }
54
+ return null;
55
+ }
56
+ // Extract keywords from content
57
+ function extractKeywords(content, title) {
58
+ const keywords = new Set();
59
+ // Add title words
60
+ title.split(/\s+/).forEach((word) => {
61
+ if (word.length > 2) {
62
+ keywords.add(word.toLowerCase());
63
+ }
64
+ });
65
+ // Extract component names (PascalCase)
66
+ const componentRegex = /\bM[A-Z][a-zA-Z]+/g;
67
+ const componentMatches = content.match(componentRegex);
68
+ if (componentMatches) {
69
+ componentMatches.forEach((match) => keywords.add(match.toLowerCase()));
70
+ }
71
+ // Extract CSS class names
72
+ const cssClassRegex = /\bmc-[a-z0-9-]+/g;
73
+ const cssMatches = content.match(cssClassRegex);
74
+ if (cssMatches) {
75
+ cssMatches.forEach((match) => keywords.add(match));
76
+ }
77
+ // Extract code keywords
78
+ const codeKeywords = ["props", "slots", "events", "emit", "component", "style"];
79
+ codeKeywords.forEach((keyword) => {
80
+ if (content.toLowerCase().includes(keyword)) {
81
+ keywords.add(keyword);
82
+ }
83
+ });
84
+ return Array.from(keywords);
85
+ }
86
+ // Clean MDX content for storage
87
+ function cleanContent(content) {
88
+ // Remove import statements
89
+ let cleaned = content.replace(/^import\s+.*$/gm, "");
90
+ // Remove Storybook Meta tags
91
+ cleaned = cleaned.replace(/<Meta\s+[^>]*\/>/g, "");
92
+ // Extract code from Storybook Source components
93
+ cleaned = cleaned.replace(/<Source[^>]*code=\{?["'`]([^"'`]+)["'`]\}?[^>]*\/>/g, "```\n$1\n```");
94
+ cleaned = cleaned.replace(/<Source[^>]*code=\{`([\s\S]*?)`\}[^>]*\/>/g, "```\n$1\n```");
95
+ // Remove JSX components but keep their text content
96
+ cleaned = cleaned.replace(/<[A-Z][a-zA-Z]*[^>]*>([\s\S]*?)<\/[A-Z][a-zA-Z]*>/g, "$1");
97
+ // Remove self-closing JSX components
98
+ cleaned = cleaned.replace(/<[A-Z][a-zA-Z]*[^>]*\/>/g, "");
99
+ // Remove empty code blocks
100
+ cleaned = cleaned.replace(/```\s*```/g, "");
101
+ // Normalize whitespace
102
+ cleaned = cleaned.replace(/\n{3,}/g, "\n\n");
103
+ return cleaned.trim();
104
+ }
105
+ // Infer category from file path
106
+ function inferCategory(filePath) {
107
+ const pathLower = filePath.toLowerCase();
108
+ if (pathLower.includes("component")) {
109
+ return "components";
110
+ }
111
+ if (pathLower.includes("foundation") || pathLower.includes("token")) {
112
+ return "foundations";
113
+ }
114
+ if (pathLower.includes("pattern")) {
115
+ return "patterns";
116
+ }
117
+ if (pathLower.includes("getting-started") || pathLower.includes("guide")) {
118
+ return "guides";
119
+ }
120
+ return "other";
121
+ }
122
+ function parseMdxFile(filePath, _basePath) {
123
+ try {
124
+ const content = readFileSync(filePath, "utf-8");
125
+ const { frontmatter, body } = extractFrontmatter(content);
126
+ const title = frontmatter.title || extractTitle(body);
127
+ const cleanedContent = cleanContent(body);
128
+ const category = frontmatter.category || inferCategory(filePath);
129
+ const keywords = extractKeywords(cleanedContent, title);
130
+ return {
131
+ title,
132
+ content: cleanedContent,
133
+ category,
134
+ keywords,
135
+ };
136
+ }
137
+ catch (error) {
138
+ console.warn(`Warning: Could not parse ${filePath}:`, error);
139
+ return null;
140
+ }
141
+ }
142
+ function findMdxFiles(dir) {
143
+ const files = [];
144
+ if (!existsSync(dir)) {
145
+ return files;
146
+ }
147
+ const entries = readdirSync(dir);
148
+ for (const entry of entries) {
149
+ const fullPath = join(dir, entry);
150
+ const stat = statSync(fullPath);
151
+ if (stat.isDirectory()) {
152
+ files.push(...findMdxFiles(fullPath));
153
+ }
154
+ else if (entry.endsWith(".mdx") || entry.endsWith(".md")) {
155
+ files.push(fullPath);
156
+ }
157
+ }
158
+ return files;
159
+ }
160
+ // Generate URL path from file path
161
+ function generateUrlPath(filePath, basePath) {
162
+ let urlPath = relative(basePath, filePath);
163
+ // Remove file extension
164
+ urlPath = urlPath.replace(/\.(mdx?|md)$/, "");
165
+ // Convert to URL format
166
+ urlPath = "/" + urlPath.replace(/\\/g, "/").toLowerCase();
167
+ // Remove index from path
168
+ urlPath = urlPath.replace(/\/index$/, "");
169
+ return urlPath;
170
+ }
171
+ // Minimum content length to include a doc (filters out empty index pages)
172
+ const MIN_CONTENT_LENGTH = 100;
173
+ export async function parseDocumentation(docsPath) {
174
+ const docs = [];
175
+ const mdxFiles = findMdxFiles(docsPath);
176
+ for (const file of mdxFiles) {
177
+ const parsed = parseMdxFile(file, docsPath);
178
+ if (parsed && parsed.content.length >= MIN_CONTENT_LENGTH) {
179
+ docs.push({
180
+ title: parsed.title,
181
+ path: generateUrlPath(file, docsPath),
182
+ content: parsed.content,
183
+ category: parsed.category,
184
+ keywords: parsed.keywords,
185
+ });
186
+ }
187
+ }
188
+ return docs;
189
+ }
190
+ // Parse Storybook MDX files from Vue/React repos
191
+ export async function parseStorybookDocs(docsPath, framework, baseUrlPath) {
192
+ const docs = [];
193
+ const mdxFiles = findMdxFiles(docsPath);
194
+ for (const file of mdxFiles) {
195
+ // Skip non-documentation files
196
+ const fileName = file.split("/").pop() || "";
197
+ if (fileName.startsWith("Autodocs") || fileName.startsWith(".")) {
198
+ continue;
199
+ }
200
+ try {
201
+ const content = readFileSync(file, "utf-8");
202
+ const { frontmatter, body } = extractFrontmatter(content);
203
+ // Get title from Meta tag or frontmatter or content
204
+ const title = frontmatter.title || extractTitle(body);
205
+ // Skip if no meaningful title
206
+ if (title === "Untitled") {
207
+ continue;
208
+ }
209
+ const cleanedContent = cleanContent(body);
210
+ // Generate URL path from Meta title or filename
211
+ const metaPath = extractMetaTitlePath(content);
212
+ const urlPath = metaPath
213
+ ? `${baseUrlPath}/${metaPath.replace(/\//g, "/")}`
214
+ : `${baseUrlPath}/${fileName.replace(/\.mdx?$/, "").toLowerCase()}`;
215
+ // Skip docs with very short content
216
+ if (cleanedContent.length < MIN_CONTENT_LENGTH) {
217
+ continue;
218
+ }
219
+ // Add framework-specific keywords
220
+ const keywords = extractKeywords(cleanedContent, title);
221
+ keywords.push(framework);
222
+ keywords.push(`@mozaic-ds/${framework === "vue" ? "vue-3" : "react"}`);
223
+ docs.push({
224
+ title: `${title} (${framework === "vue" ? "Vue" : "React"})`,
225
+ path: urlPath,
226
+ content: cleanedContent,
227
+ category: `${framework}-docs`,
228
+ keywords,
229
+ });
230
+ }
231
+ catch (error) {
232
+ console.warn(`Warning: Could not parse ${file}:`, error);
233
+ }
234
+ }
235
+ return docs;
236
+ }
237
+ //# sourceMappingURL=docs-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-parser.js","sourceRoot":"","sources":["../../src/parsers/docs-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ export interface ParsedIcon {
2
+ name: string;
3
+ iconName: string;
4
+ type: string;
5
+ size: number;
6
+ viewBox: string;
7
+ paths: string;
8
+ }
9
+ /**
10
+ * Parse icons from the mozaic-design-system icons.js file
11
+ * The file contains ES module exports like:
12
+ * export const ArrowArrowBottom16 = {
13
+ * viewBox: "0 0 16 16",
14
+ * size: "1rem",
15
+ * paths: [{tagName: "path", attrs: {...}}],
16
+ * type: "navigation",
17
+ * iconName: "ArrowArrowBottom16"
18
+ * };
19
+ */
20
+ export declare function parseIcons(iconsJsPath: string): Promise<ParsedIcon[]>;
21
+ /**
22
+ * Generate SVG markup from an icon's path data
23
+ */
24
+ export declare function generateSvg(icon: ParsedIcon): string;
25
+ /**
26
+ * Generate React component code for an icon
27
+ */
28
+ export declare function generateReactComponent(icon: ParsedIcon): string;
29
+ /**
30
+ * Generate Vue component code for an icon
31
+ */
32
+ export declare function generateVueComponent(icon: ParsedIcon): string;
33
+ //# sourceMappingURL=icons-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/icons-parser.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAqD3E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CA0CpD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAQ/D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAa7D"}
@@ -0,0 +1,125 @@
1
+ import { readFileSync } from "fs";
2
+ /**
3
+ * Parse icons from the mozaic-design-system icons.js file
4
+ * The file contains ES module exports like:
5
+ * export const ArrowArrowBottom16 = {
6
+ * viewBox: "0 0 16 16",
7
+ * size: "1rem",
8
+ * paths: [{tagName: "path", attrs: {...}}],
9
+ * type: "navigation",
10
+ * iconName: "ArrowArrowBottom16"
11
+ * };
12
+ */
13
+ export async function parseIcons(iconsJsPath) {
14
+ const content = readFileSync(iconsJsPath, "utf-8");
15
+ const icons = [];
16
+ // Split by 'export const' to get individual icon definitions
17
+ const iconBlocks = content.split(/export\s+const\s+/).slice(1); // Skip first empty element
18
+ for (const block of iconBlocks) {
19
+ try {
20
+ // Extract the icon name (first word before '=')
21
+ const nameMatch = block.match(/^(\w+)\s*=/);
22
+ if (!nameMatch)
23
+ continue;
24
+ const exportName = nameMatch[1];
25
+ // Extract viewBox
26
+ const viewBoxMatch = block.match(/viewBox:\s*"([^"]+)"/);
27
+ const viewBox = viewBoxMatch?.[1] ?? "0 0 16 16";
28
+ // Extract type
29
+ const typeMatch = block.match(/type:\s*"([^"]+)"/);
30
+ const type = typeMatch?.[1] ?? "unknown";
31
+ // Extract iconName from the object
32
+ const iconNameMatch = block.match(/iconName:\s*"([^"]+)"/);
33
+ const iconName = iconNameMatch?.[1] ?? exportName;
34
+ // Extract size from the name (last digits)
35
+ const sizeMatch = exportName.match(/(\d+)$/);
36
+ const size = sizeMatch ? parseInt(sizeMatch[1], 10) : 16;
37
+ // Extract paths - find the paths array
38
+ const pathsMatch = block.match(/paths:\s*(\[[\s\S]*?\])\s*,?\s*(?:type:|iconName:)/);
39
+ const paths = pathsMatch?.[1] ?? "[]";
40
+ // Clean icon name (remove size suffix)
41
+ const cleanIconName = iconName.replace(/\d+$/, "");
42
+ icons.push({
43
+ name: exportName,
44
+ iconName: cleanIconName,
45
+ type,
46
+ size,
47
+ viewBox,
48
+ paths,
49
+ });
50
+ }
51
+ catch {
52
+ // Skip icons that fail to parse
53
+ continue;
54
+ }
55
+ }
56
+ return icons;
57
+ }
58
+ /**
59
+ * Generate SVG markup from an icon's path data
60
+ */
61
+ export function generateSvg(icon) {
62
+ let pathsArray;
63
+ try {
64
+ // Parse the paths JSON
65
+ pathsArray = JSON.parse(icon.paths.replace(/(\w+):/g, '"$1":').replace(/'/g, '"'));
66
+ }
67
+ catch {
68
+ // If parsing fails, try to extract just the d attribute
69
+ const dMatch = icon.paths.match(/"d":\s*"([^"]+)"/);
70
+ if (dMatch) {
71
+ return `<svg viewBox="${icon.viewBox}" xmlns="http://www.w3.org/2000/svg">
72
+ <path d="${dMatch[1]}" fill="currentColor"/>
73
+ </svg>`;
74
+ }
75
+ return `<svg viewBox="${icon.viewBox}" xmlns="http://www.w3.org/2000/svg"></svg>`;
76
+ }
77
+ const renderElement = (el, indent = " ") => {
78
+ const attrs = el.attrs
79
+ ? Object.entries(el.attrs)
80
+ .map(([k, v]) => `${k}="${v}"`)
81
+ .join(" ")
82
+ : "";
83
+ if (el.children && el.children.length > 0) {
84
+ const childrenStr = el.children
85
+ .map((child) => renderElement(child, indent + " "))
86
+ .join("\n");
87
+ return `${indent}<${el.tagName}${attrs ? " " + attrs : ""}>\n${childrenStr}\n${indent}</${el.tagName}>`;
88
+ }
89
+ return `${indent}<${el.tagName}${attrs ? " " + attrs : ""} fill="currentColor"/>`;
90
+ };
91
+ const pathsStr = pathsArray.map((p) => renderElement(p)).join("\n");
92
+ return `<svg viewBox="${icon.viewBox}" xmlns="http://www.w3.org/2000/svg">
93
+ ${pathsStr}
94
+ </svg>`;
95
+ }
96
+ /**
97
+ * Generate React component code for an icon
98
+ */
99
+ export function generateReactComponent(icon) {
100
+ return `import { MIcon } from "@mozaic-ds/react";
101
+
102
+ // Using the Mozaic React icon component
103
+ <MIcon name="${icon.name}" />
104
+
105
+ // Or import directly from the icons package
106
+ import { ${icon.name} } from "@mozaic-ds/icons/js/icons";`;
107
+ }
108
+ /**
109
+ * Generate Vue component code for an icon
110
+ */
111
+ export function generateVueComponent(icon) {
112
+ return `<template>
113
+ <MIcon name="${icon.name}" />
114
+ </template>
115
+
116
+ <script setup>
117
+ import { MIcon } from "@mozaic-ds/vue-3";
118
+ </script>
119
+
120
+ <!-- Or use directly from icons package -->
121
+ <script>
122
+ import { ${icon.name} } from "@mozaic-ds/icons/js/icons";
123
+ </script>`;
124
+ }
125
+ //# sourceMappingURL=icons-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons-parser.js","sourceRoot":"","sources":["../../src/parsers/icons-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Component } from "../db/queries.js";
2
+ export declare function parseReactComponents(componentsPath: string): Promise<Component[]>;
3
+ //# sourceMappingURL=react-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/react-parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAiC,MAAM,kBAAkB,CAAC;AAmajF,wBAAsB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAoFvF"}