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 @@
1
+ {"version":3,"file":"grid-parser.js","sourceRoot":"","sources":["../../../src/parsers/tokens/grid-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export * from "./types.js";
2
+ export { parseColorTokens } from "./color-parser.js";
3
+ export { parseSpacingTokens } from "./spacing-parser.js";
4
+ export { parseShadowTokens } from "./shadow-parser.js";
5
+ export { parseBorderTokens } from "./border-parser.js";
6
+ export { parseScreenTokens } from "./screen-parser.js";
7
+ export { parseTypographyTokens } from "./typography-parser.js";
8
+ export { parseGridTokens } from "./grid-parser.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/parsers/tokens/index.ts"],"names":[],"mappings":"AACA,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,10 @@
1
+ // Token parsers index
2
+ export * from "./types.js";
3
+ export { parseColorTokens } from "./color-parser.js";
4
+ export { parseSpacingTokens } from "./spacing-parser.js";
5
+ export { parseShadowTokens } from "./shadow-parser.js";
6
+ export { parseBorderTokens } from "./border-parser.js";
7
+ export { parseScreenTokens } from "./screen-parser.js";
8
+ export { parseTypographyTokens } from "./typography-parser.js";
9
+ export { parseGridTokens } from "./grid-parser.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/parsers/tokens/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Token } from "./types.js";
2
+ export declare function parseScreenTokens(tokensPath: string): Promise<Token[]>;
3
+ //# sourceMappingURL=screen-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen-parser.d.ts","sourceRoot":"","sources":["../../../src/parsers/tokens/screen-parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAYxC,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAuD5E"}
@@ -0,0 +1,54 @@
1
+ import { readFileSync, existsSync } from "fs";
2
+ import { join } from "path";
3
+ import { parseValue } from "./types.js";
4
+ export async function parseScreenTokens(tokensPath) {
5
+ const tokens = [];
6
+ const sizePath = join(tokensPath, "properties", "size");
7
+ if (!existsSync(sizePath)) {
8
+ console.warn(`Size tokens path not found: ${sizePath}`);
9
+ return tokens;
10
+ }
11
+ // Look for screens.json
12
+ const screensFile = join(sizePath, "screens.json");
13
+ if (existsSync(screensFile)) {
14
+ try {
15
+ const content = readFileSync(screensFile, "utf-8");
16
+ const data = JSON.parse(content);
17
+ const relativePath = "properties/size/screens.json";
18
+ const screenData = data.screen || data;
19
+ for (const [screenName, screenDef] of Object.entries(screenData)) {
20
+ if (typeof screenDef !== "object" || !("value" in screenDef))
21
+ continue;
22
+ const value = screenDef.value;
23
+ const parsed = parseValue(value);
24
+ // Determine subcategory based on name pattern
25
+ let subcategory = "breakpoint";
26
+ if (screenName.includes("-")) {
27
+ // e.g., "s-medium", "xl-large"
28
+ const baseName = screenName.split("-")[0];
29
+ subcategory = baseName;
30
+ }
31
+ tokens.push({
32
+ category: "screen",
33
+ subcategory,
34
+ name: screenName,
35
+ path: `screen.${screenName}`,
36
+ cssVariable: `--screen-${screenName}`,
37
+ scssVariable: `$screen-${screenName}`,
38
+ valueRaw: String(value),
39
+ valueNumber: parsed.number,
40
+ valueUnit: parsed.unit || "px",
41
+ valueComputed: String(value),
42
+ description: screenDef.comment || `Screen breakpoint ${screenName}`,
43
+ platform: "all",
44
+ sourceFile: relativePath,
45
+ });
46
+ }
47
+ }
48
+ catch (error) {
49
+ console.warn(`Warning: Could not parse ${screensFile}:`, error);
50
+ }
51
+ }
52
+ return tokens;
53
+ }
54
+ //# sourceMappingURL=screen-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screen-parser.js","sourceRoot":"","sources":["../../../src/parsers/tokens/screen-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAWxC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACxD,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IAExD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,wBAAwB;IACxB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;IACnD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAiB,CAAC;YACjD,MAAM,YAAY,GAAG,8BAA8B,CAAC;YAEpD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;YAEvC,KAAK,MAAM,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjE,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,SAAS,CAAC;oBAAE,SAAS;gBAEvE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;gBAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;gBAEjC,8CAA8C;gBAC9C,IAAI,WAAW,GAAG,YAAY,CAAC;gBAC/B,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC7B,+BAA+B;oBAC/B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1C,WAAW,GAAG,QAAQ,CAAC;gBACzB,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,QAAQ;oBAClB,WAAW;oBACX,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,UAAU,UAAU,EAAE;oBAC5B,WAAW,EAAE,YAAY,UAAU,EAAE;oBACrC,YAAY,EAAE,WAAW,UAAU,EAAE;oBACrC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC;oBACvB,WAAW,EAAE,MAAM,CAAC,MAAM;oBAC1B,SAAS,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI;oBAC9B,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC;oBAC5B,WAAW,EAAE,SAAS,CAAC,OAAO,IAAI,qBAAqB,UAAU,EAAE;oBACnE,QAAQ,EAAE,KAAK;oBACf,UAAU,EAAE,YAAY;iBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,4BAA4B,WAAW,GAAG,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Token } from "./types.js";
2
+ export declare function parseShadowTokens(tokensPath: string): Promise<Token[]>;
3
+ //# sourceMappingURL=shadow-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow-parser.d.ts","sourceRoot":"","sources":["../../../src/parsers/tokens/shadow-parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAiB,MAAM,YAAY,CAAC;AAqBvD,wBAAsB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CA0D5E"}
@@ -0,0 +1,62 @@
1
+ import { readFileSync, existsSync, readdirSync } from "fs";
2
+ import { join } from "path";
3
+ import { parseValue } from "./types.js";
4
+ export async function parseShadowTokens(tokensPath) {
5
+ const shadowPath = join(tokensPath, "properties", "shadow");
6
+ const tokens = [];
7
+ if (!existsSync(shadowPath)) {
8
+ console.warn(`Shadow tokens path not found: ${shadowPath}`);
9
+ return tokens;
10
+ }
11
+ // Find all JSON files in shadow directory
12
+ const files = readdirSync(shadowPath).filter((f) => f.endsWith(".json"));
13
+ for (const file of files) {
14
+ const filePath = join(shadowPath, file);
15
+ try {
16
+ const content = readFileSync(filePath, "utf-8");
17
+ const data = JSON.parse(content);
18
+ const relativePath = `properties/shadow/${file}`;
19
+ const shadowData = data.shadow || data;
20
+ for (const [sizeName, shadowDef] of Object.entries(shadowData)) {
21
+ if (typeof shadowDef !== "object" || !shadowDef.x)
22
+ continue;
23
+ const def = shadowDef;
24
+ // Build composite shadow value
25
+ const shadowValue = `${def.x.value} ${def.y.value} ${def.blur.value} ${def.spread.value}`;
26
+ // Extract properties
27
+ const properties = [
28
+ { property: "x", value: def.x.value, ...parseValueProp(def.x.value) },
29
+ { property: "y", value: def.y.value, ...parseValueProp(def.y.value) },
30
+ { property: "blur", value: def.blur.value, ...parseValueProp(def.blur.value) },
31
+ { property: "spread", value: def.spread.value, ...parseValueProp(def.spread.value) },
32
+ { property: "opacity", value: def.opacity.value, ...parseValueProp(def.opacity.value) },
33
+ ];
34
+ tokens.push({
35
+ category: "shadow",
36
+ subcategory: undefined,
37
+ name: sizeName,
38
+ path: `shadow.${sizeName}`,
39
+ cssVariable: `--shadow-${sizeName}`,
40
+ scssVariable: `$shadow-${sizeName}`,
41
+ valueRaw: shadowValue,
42
+ description: `Shadow size ${sizeName}`,
43
+ platform: "all",
44
+ sourceFile: relativePath,
45
+ properties,
46
+ });
47
+ }
48
+ }
49
+ catch (error) {
50
+ console.warn(`Warning: Could not parse ${filePath}:`, error);
51
+ }
52
+ }
53
+ return tokens;
54
+ }
55
+ function parseValueProp(value) {
56
+ const parsed = parseValue(value);
57
+ return {
58
+ valueNumber: parsed.number,
59
+ valueUnit: parsed.unit,
60
+ };
61
+ }
62
+ //# sourceMappingURL=shadow-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow-parser.js","sourceRoot":"","sources":["../../../src/parsers/tokens/shadow-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAoBxC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACxD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAY,EAAE,CAAC;IAE3B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,iCAAiC,UAAU,EAAE,CAAC,CAAC;QAC5D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0CAA0C;IAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAEjF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAiB,CAAC;YACjD,MAAM,YAAY,GAAG,qBAAqB,IAAI,EAAE,CAAC;YAEjD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;YAEvC,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC/D,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,CAAC;oBAAE,SAAS;gBAE5D,MAAM,GAAG,GAAG,SAA6B,CAAC;gBAE1C,+BAA+B;gBAC/B,MAAM,WAAW,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAE1F,qBAAqB;gBACrB,MAAM,UAAU,GAAoB;oBAClC,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBACrE,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE;oBACrE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBAC9E,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBACpF,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;iBACxF,CAAC;gBAEF,MAAM,CAAC,IAAI,CAAC;oBACV,QAAQ,EAAE,QAAQ;oBAClB,WAAW,EAAE,SAAS;oBACtB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,UAAU,QAAQ,EAAE;oBAC1B,WAAW,EAAE,YAAY,QAAQ,EAAE;oBACnC,YAAY,EAAE,WAAW,QAAQ,EAAE;oBACnC,QAAQ,EAAE,WAAW;oBACrB,WAAW,EAAE,eAAe,QAAQ,EAAE;oBACtC,QAAQ,EAAE,KAAK;oBACf,UAAU,EAAE,YAAY;oBACxB,UAAU;iBACX,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,4BAA4B,QAAQ,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,SAAS,EAAE,MAAM,CAAC,IAAI;KACvB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { Token } from "./types.js";
2
+ export declare function parseSpacingTokens(stylesPath: string): Promise<Token[]>;
3
+ export declare function parseSpacingFromJson(tokensPath: string): Promise<Token[]>;
4
+ //# sourceMappingURL=spacing-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spacing-parser.d.ts","sourceRoot":"","sources":["../../../src/parsers/tokens/spacing-parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAiCxC,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAmD7E;AAGD,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CAY/E"}
@@ -0,0 +1,85 @@
1
+ import { existsSync } from "fs";
2
+ import { join } from "path";
3
+ // Magic Unit spacing tokens from SCSS
4
+ // Base: $magic-unit = 16px (1rem)
5
+ const MAGIC_UNIT_BASE = 16; // px
6
+ // Defined in _s.magic-unit.scss
7
+ const SPACING_DEFINITIONS = [
8
+ { name: "mu025", multiplier: 0.25 },
9
+ { name: "mu050", multiplier: 0.5 },
10
+ { name: "mu075", multiplier: 0.75 },
11
+ { name: "mu100", multiplier: 1 },
12
+ { name: "mu125", multiplier: 1.25 },
13
+ { name: "mu150", multiplier: 1.5 },
14
+ { name: "mu175", multiplier: 1.75 },
15
+ { name: "mu200", multiplier: 2 },
16
+ { name: "mu250", multiplier: 2.5 },
17
+ { name: "mu300", multiplier: 3 },
18
+ { name: "mu350", multiplier: 3.5 },
19
+ { name: "mu400", multiplier: 4 },
20
+ { name: "mu500", multiplier: 5 },
21
+ { name: "mu600", multiplier: 6 },
22
+ { name: "mu700", multiplier: 7 },
23
+ { name: "mu800", multiplier: 8 },
24
+ { name: "mu900", multiplier: 9 },
25
+ { name: "mu1000", multiplier: 10 },
26
+ ];
27
+ export async function parseSpacingTokens(stylesPath) {
28
+ const tokens = [];
29
+ const sourceFile = "settings-tools/_s.magic-unit.scss";
30
+ const magicUnitPath = join(stylesPath, sourceFile);
31
+ // Verify the file exists for reference
32
+ if (!existsSync(magicUnitPath)) {
33
+ console.warn(`Magic unit SCSS not found: ${magicUnitPath}`);
34
+ console.log("Using predefined spacing definitions");
35
+ }
36
+ // Generate tokens from known definitions
37
+ for (const def of SPACING_DEFINITIONS) {
38
+ const remValue = def.multiplier;
39
+ const pxValue = def.multiplier * MAGIC_UNIT_BASE;
40
+ tokens.push({
41
+ category: "spacing",
42
+ subcategory: "magic-unit",
43
+ name: def.name,
44
+ path: `spacing.${def.name}`,
45
+ cssVariable: `--spacing-${def.name}`,
46
+ scssVariable: `$${def.name}`,
47
+ valueRaw: `${remValue}rem`,
48
+ valueNumber: remValue,
49
+ valueUnit: "rem",
50
+ valueComputed: `${pxValue}px`,
51
+ description: `${def.multiplier} × magic-unit (${pxValue}px)`,
52
+ platform: "all",
53
+ sourceFile,
54
+ });
55
+ }
56
+ // Also add the base magic unit
57
+ tokens.push({
58
+ category: "spacing",
59
+ subcategory: "base",
60
+ name: "magic-unit",
61
+ path: "spacing.magic-unit",
62
+ cssVariable: "--spacing-magic-unit",
63
+ scssVariable: "$magic-unit",
64
+ valueRaw: "16px",
65
+ valueNumber: 16,
66
+ valueUnit: "px",
67
+ valueComputed: "16px",
68
+ description: "Base magic unit value",
69
+ platform: "all",
70
+ sourceFile,
71
+ });
72
+ return tokens;
73
+ }
74
+ // Also parse any additional spacing from JSON if exists
75
+ export async function parseSpacingFromJson(tokensPath) {
76
+ const spacingPath = join(tokensPath, "properties", "spacing");
77
+ const tokens = [];
78
+ if (!existsSync(spacingPath)) {
79
+ return tokens;
80
+ }
81
+ // Parse JSON spacing files if they exist
82
+ // (Currently Mozaic doesn't have these, but future-proofing)
83
+ return tokens;
84
+ }
85
+ //# sourceMappingURL=spacing-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spacing-parser.js","sourceRoot":"","sources":["../../../src/parsers/tokens/spacing-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ export type TokenCategory = "color" | "spacing" | "shadow" | "border" | "radius" | "screen" | "typography" | "grid";
2
+ export interface TokenProperty {
3
+ property: string;
4
+ value: string;
5
+ valueNumber?: number;
6
+ valueUnit?: string;
7
+ }
8
+ export interface Token {
9
+ category: TokenCategory;
10
+ subcategory?: string;
11
+ name: string;
12
+ path: string;
13
+ cssVariable?: string;
14
+ scssVariable?: string;
15
+ valueRaw: string;
16
+ valueNumber?: number;
17
+ valueUnit?: string;
18
+ valueComputed?: string;
19
+ description?: string;
20
+ platform?: string;
21
+ sourceFile?: string;
22
+ properties?: TokenProperty[];
23
+ }
24
+ export declare function parseValue(value: string | number): {
25
+ raw: string;
26
+ number?: number;
27
+ unit?: string;
28
+ computed?: string;
29
+ };
30
+ export declare function pathToCssVariable(category: string, path: string): string;
31
+ export declare function pathToScssVariable(category: string, path: string): string;
32
+ export declare function remToPx(rem: number): string;
33
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/parsers/tokens/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,aAAa,GACrB,OAAO,GACP,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,MAAM,CAAC;AAEX,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,EAAE,aAAa,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;CAC9B;AAGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CA6BA;AAGD,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGxE;AAGD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGzE;AAGD,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE3C"}
@@ -0,0 +1,42 @@
1
+ // Token types for the enhanced schema
2
+ // Helper to parse value and extract number/unit
3
+ export function parseValue(value) {
4
+ const raw = String(value);
5
+ // If it's already a number
6
+ if (typeof value === "number") {
7
+ return { raw, number: value };
8
+ }
9
+ // Try to parse numeric value with unit
10
+ const match = raw.match(/^(-?[\d.]+)(px|rem|em|%|vw|vh|s|ms)?$/);
11
+ if (match) {
12
+ return {
13
+ raw,
14
+ number: parseFloat(match[1]),
15
+ unit: match[2] || undefined,
16
+ };
17
+ }
18
+ // Check if it's a hex color
19
+ if (raw.match(/^#[0-9a-fA-F]{3,8}$/)) {
20
+ return { raw, unit: "hex" };
21
+ }
22
+ // Check if it's an rgb/rgba color
23
+ if (raw.match(/^rgba?\(/)) {
24
+ return { raw, unit: "rgb" };
25
+ }
26
+ return { raw };
27
+ }
28
+ // Convert path to CSS variable name
29
+ export function pathToCssVariable(category, path) {
30
+ const cleanPath = path.replace(/\./g, "-").toLowerCase();
31
+ return `--${category}-${cleanPath}`;
32
+ }
33
+ // Convert path to SCSS variable name
34
+ export function pathToScssVariable(category, path) {
35
+ const cleanPath = path.replace(/\./g, "-").toLowerCase();
36
+ return `$${category}-${cleanPath}`;
37
+ }
38
+ // Compute pixel value from rem (assuming 16px base)
39
+ export function remToPx(rem) {
40
+ return `${rem * 16}px`;
41
+ }
42
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/parsers/tokens/types.ts"],"names":[],"mappings":"AAAA,sCAAsC;AAoCtC,gDAAgD;AAChD,MAAM,UAAU,UAAU,CAAC,KAAsB;IAM/C,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAE1B,2BAA2B;IAC3B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAChC,CAAC;IAED,uCAAuC;IACvC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;IACjE,IAAI,KAAK,EAAE,CAAC;QACV,OAAO;YACL,GAAG;YACH,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS;SAC5B,CAAC;IACJ,CAAC;IAED,4BAA4B;IAC5B,IAAI,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACrC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,kCAAkC;IAClC,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,CAAC;AACjB,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,iBAAiB,CAAC,QAAgB,EAAE,IAAY;IAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,OAAO,KAAK,QAAQ,IAAI,SAAS,EAAE,CAAC;AACtC,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,IAAY;IAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACzD,OAAO,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;AACrC,CAAC;AAED,oDAAoD;AACpD,MAAM,UAAU,OAAO,CAAC,GAAW;IACjC,OAAO,GAAG,GAAG,GAAG,EAAE,IAAI,CAAC;AACzB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Token } from "./types.js";
2
+ export declare function parseTypographyTokens(tokensPath: string): Promise<Token[]>;
3
+ //# sourceMappingURL=typography-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typography-parser.d.ts","sourceRoot":"","sources":["../../../src/parsers/tokens/typography-parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAcxC,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CA8EhF"}
@@ -0,0 +1,76 @@
1
+ import { readFileSync, existsSync } from "fs";
2
+ import { join } from "path";
3
+ export async function parseTypographyTokens(tokensPath) {
4
+ const tokens = [];
5
+ const sizePath = join(tokensPath, "properties", "size");
6
+ if (!existsSync(sizePath)) {
7
+ console.warn(`Size tokens path not found: ${sizePath}`);
8
+ return tokens;
9
+ }
10
+ // Look for font.json
11
+ const fontFile = join(sizePath, "font.json");
12
+ if (existsSync(fontFile)) {
13
+ try {
14
+ const content = readFileSync(fontFile, "utf-8");
15
+ const data = JSON.parse(content);
16
+ const relativePath = "properties/size/font.json";
17
+ // Parse font sizes
18
+ const fontSizes = data.size?.font || {};
19
+ for (const [sizeName, fontDef] of Object.entries(fontSizes)) {
20
+ if (typeof fontDef !== "object" || !("value" in fontDef))
21
+ continue;
22
+ const value = fontDef.value;
23
+ const numValue = typeof value === "number" ? value : parseFloat(String(value));
24
+ const pxValue = Math.round(numValue * 16); // Convert rem to px
25
+ tokens.push({
26
+ category: "typography",
27
+ subcategory: "font-size",
28
+ name: `font-${sizeName}`,
29
+ path: `typography.font.${sizeName}`,
30
+ cssVariable: `--font-size-${sizeName}`,
31
+ scssVariable: `$font-size-${sizeName}`,
32
+ valueRaw: String(value),
33
+ valueNumber: numValue,
34
+ valueUnit: "rem",
35
+ valueComputed: `${pxValue}px`,
36
+ description: fontDef.comment || `Font size ${sizeName}`,
37
+ platform: "all",
38
+ sourceFile: relativePath,
39
+ });
40
+ }
41
+ // Parse line heights
42
+ const lineHeights = data.size?.line || {};
43
+ for (const [sizeName, variants] of Object.entries(lineHeights)) {
44
+ if (typeof variants !== "object")
45
+ continue;
46
+ for (const [variant, lineDef] of Object.entries(variants)) {
47
+ if (typeof lineDef !== "object" || !("value" in lineDef))
48
+ continue;
49
+ const value = lineDef.value;
50
+ const numValue = typeof value === "number" ? value : parseFloat(String(value));
51
+ const pxValue = Math.round(numValue * 16);
52
+ tokens.push({
53
+ category: "typography",
54
+ subcategory: "line-height",
55
+ name: `line-${sizeName}-${variant}`,
56
+ path: `typography.line.${sizeName}.${variant}`,
57
+ cssVariable: `--line-height-${sizeName}-${variant}`,
58
+ scssVariable: `$line-height-${sizeName}-${variant}`,
59
+ valueRaw: String(value),
60
+ valueNumber: numValue,
61
+ valueUnit: "rem",
62
+ valueComputed: `${pxValue}px`,
63
+ description: lineDef.comment || `Line height ${sizeName} ${variant}`,
64
+ platform: "all",
65
+ sourceFile: relativePath,
66
+ });
67
+ }
68
+ }
69
+ }
70
+ catch (error) {
71
+ console.warn(`Warning: Could not parse ${fontFile}:`, error);
72
+ }
73
+ }
74
+ return tokens;
75
+ }
76
+ //# sourceMappingURL=typography-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typography-parser.js","sourceRoot":"","sources":["../../../src/parsers/tokens/typography-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { Token } from "./tokens/types.js";
2
+ export type { Token } from "./tokens/types.js";
3
+ export interface ParseTokensOptions {
4
+ tokensPath: string;
5
+ stylesPath?: string;
6
+ }
7
+ export declare function parseTokens(tokensPath: string, stylesPath?: string): Promise<Token[]>;
8
+ export declare const TOKEN_CATEGORIES: {
9
+ readonly colors: readonly ["color"];
10
+ readonly typography: readonly ["typography"];
11
+ readonly spacing: readonly ["spacing"];
12
+ readonly shadows: readonly ["shadow"];
13
+ readonly borders: readonly ["border", "radius"];
14
+ readonly screens: readonly ["screen"];
15
+ readonly grid: readonly ["grid"];
16
+ };
17
+ export declare function mapCategoryToDbCategories(category: string): string[];
18
+ //# sourceMappingURL=tokens-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/tokens-parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAU/C,YAAY,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,CA0C3F;AAGD,eAAO,MAAM,gBAAgB;;;;;;;;CAQnB,CAAC;AAEX,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAGpE"}
@@ -0,0 +1,57 @@
1
+ import { join } from "path";
2
+ import { parseColorTokens } from "./tokens/color-parser.js";
3
+ import { parseSpacingTokens } from "./tokens/spacing-parser.js";
4
+ import { parseShadowTokens } from "./tokens/shadow-parser.js";
5
+ import { parseBorderTokens } from "./tokens/border-parser.js";
6
+ import { parseScreenTokens } from "./tokens/screen-parser.js";
7
+ import { parseTypographyTokens } from "./tokens/typography-parser.js";
8
+ import { parseGridTokens } from "./tokens/grid-parser.js";
9
+ export async function parseTokens(tokensPath, stylesPath) {
10
+ const allTokens = [];
11
+ // Determine styles path if not provided
12
+ const effectiveStylesPath = stylesPath || join(tokensPath, "..", "styles");
13
+ console.log(" Parsing color tokens...");
14
+ const colorTokens = await parseColorTokens(tokensPath);
15
+ allTokens.push(...colorTokens);
16
+ console.log(` ✓ ${colorTokens.length} color tokens`);
17
+ console.log(" Parsing spacing tokens...");
18
+ const spacingTokens = await parseSpacingTokens(effectiveStylesPath);
19
+ allTokens.push(...spacingTokens);
20
+ console.log(` ✓ ${spacingTokens.length} spacing tokens`);
21
+ console.log(" Parsing shadow tokens...");
22
+ const shadowTokens = await parseShadowTokens(tokensPath);
23
+ allTokens.push(...shadowTokens);
24
+ console.log(` ✓ ${shadowTokens.length} shadow tokens`);
25
+ console.log(" Parsing border/radius tokens...");
26
+ const borderTokens = await parseBorderTokens(tokensPath);
27
+ allTokens.push(...borderTokens);
28
+ console.log(` ✓ ${borderTokens.length} border/radius tokens`);
29
+ console.log(" Parsing screen tokens...");
30
+ const screenTokens = await parseScreenTokens(tokensPath);
31
+ allTokens.push(...screenTokens);
32
+ console.log(` ✓ ${screenTokens.length} screen tokens`);
33
+ console.log(" Parsing typography tokens...");
34
+ const typographyTokens = await parseTypographyTokens(tokensPath);
35
+ allTokens.push(...typographyTokens);
36
+ console.log(` ✓ ${typographyTokens.length} typography tokens`);
37
+ console.log(" Parsing grid tokens...");
38
+ const gridTokens = await parseGridTokens(tokensPath);
39
+ allTokens.push(...gridTokens);
40
+ console.log(` ✓ ${gridTokens.length} grid tokens`);
41
+ return allTokens;
42
+ }
43
+ // Category mapping for token queries
44
+ export const TOKEN_CATEGORIES = {
45
+ colors: ["color"],
46
+ typography: ["typography"],
47
+ spacing: ["spacing"],
48
+ shadows: ["shadow"],
49
+ borders: ["border", "radius"],
50
+ screens: ["screen"],
51
+ grid: ["grid"],
52
+ };
53
+ export function mapCategoryToDbCategories(category) {
54
+ const mapping = TOKEN_CATEGORIES[category];
55
+ return mapping ? [...mapping] : [category];
56
+ }
57
+ //# sourceMappingURL=tokens-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens-parser.js","sourceRoot":"","sources":["../../src/parsers/tokens-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Component } from "../db/queries.js";
2
+ export declare function parseVueComponents(componentsPath: string): Promise<Component[]>;
3
+ //# sourceMappingURL=vue-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/vue-parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAgD,MAAM,kBAAkB,CAAC;AAwUhG,wBAAsB,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAyFrF"}