trix-ui 0.2.14 → 0.3.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 (241) hide show
  1. package/dist/commands/add/analysis.d.ts +4 -4
  2. package/dist/commands/add/analysis.js +56 -56
  3. package/dist/commands/add/command.d.ts +2 -2
  4. package/dist/commands/add/command.js +205 -202
  5. package/dist/commands/add/command.js.map +1 -1
  6. package/dist/commands/add/config.d.ts +2 -2
  7. package/dist/commands/add/config.js +11 -11
  8. package/dist/commands/add/install.d.ts +27 -27
  9. package/dist/commands/add/install.js +80 -80
  10. package/dist/commands/add/package-manager.d.ts +1 -1
  11. package/dist/commands/add/package-manager.js +4 -4
  12. package/dist/commands/add/project-files.d.ts +2 -2
  13. package/dist/commands/add/project-files.js +17 -17
  14. package/dist/commands/add/prompts.d.ts +3 -3
  15. package/dist/commands/add/prompts.js +28 -28
  16. package/dist/commands/add/registry.d.ts +4 -4
  17. package/dist/commands/add/registry.js +6 -6
  18. package/dist/commands/add/types.d.ts +33 -33
  19. package/dist/commands/add/types.js +1 -1
  20. package/dist/commands/add/ui.d.ts +4 -4
  21. package/dist/commands/add/ui.js +55 -55
  22. package/dist/commands/add/validation.d.ts +3 -3
  23. package/dist/commands/add/validation.js +30 -30
  24. package/dist/commands/add-collection.d.ts +1 -1
  25. package/dist/commands/add-collection.js +1 -1
  26. package/dist/commands/add-composite.d.ts +2 -2
  27. package/dist/commands/add-composite.js +205 -201
  28. package/dist/commands/add-composite.js.map +1 -1
  29. package/dist/commands/add-section.d.ts +2 -2
  30. package/dist/commands/add-section.js +205 -201
  31. package/dist/commands/add-section.js.map +1 -1
  32. package/dist/commands/add-wrapper.d.ts +2 -2
  33. package/dist/commands/add-wrapper.js +205 -201
  34. package/dist/commands/add-wrapper.js.map +1 -1
  35. package/dist/commands/add.d.ts +1 -1
  36. package/dist/commands/add.js +1 -1
  37. package/dist/commands/build.d.ts +2 -2
  38. package/dist/commands/build.js +104 -104
  39. package/dist/commands/build.js.map +1 -1
  40. package/dist/commands/doctor.d.ts +2 -2
  41. package/dist/commands/doctor.js +67 -67
  42. package/dist/commands/doctor.js.map +1 -1
  43. package/dist/commands/init/command.d.ts +8 -2
  44. package/dist/commands/init/command.js +186 -114
  45. package/dist/commands/init/command.js.map +1 -1
  46. package/dist/commands/init/config.d.ts +9 -2
  47. package/dist/commands/init/config.js +45 -25
  48. package/dist/commands/init/config.js.map +1 -1
  49. package/dist/commands/init/constants.d.ts +3 -3
  50. package/dist/commands/init/constants.js +105 -105
  51. package/dist/commands/init/dependencies.d.ts +22 -5
  52. package/dist/commands/init/dependencies.js +86 -52
  53. package/dist/commands/init/dependencies.js.map +1 -1
  54. package/dist/commands/init/filesystem.d.ts +7 -1
  55. package/dist/commands/init/filesystem.js +16 -10
  56. package/dist/commands/init/filesystem.js.map +1 -1
  57. package/dist/commands/init/lockfile.d.ts +1 -1
  58. package/dist/commands/init/lockfile.js +1 -1
  59. package/dist/commands/init/package-json.d.ts +17 -6
  60. package/dist/commands/init/package-json.js +28 -18
  61. package/dist/commands/init/package-json.js.map +1 -1
  62. package/dist/commands/init/project.d.ts +15 -3
  63. package/dist/commands/init/project.js +120 -97
  64. package/dist/commands/init/project.js.map +1 -1
  65. package/dist/commands/init/tailwind.d.ts +14 -3
  66. package/dist/commands/init/tailwind.js +141 -33
  67. package/dist/commands/init/tailwind.js.map +1 -1
  68. package/dist/commands/init/templates.d.ts +15 -3
  69. package/dist/commands/init/templates.js +27 -15
  70. package/dist/commands/init/templates.js.map +1 -1
  71. package/dist/commands/init/tsconfig.d.ts +14 -2
  72. package/dist/commands/init/tsconfig.js +561 -273
  73. package/dist/commands/init/tsconfig.js.map +1 -1
  74. package/dist/commands/init/types.d.ts +34 -33
  75. package/dist/commands/init/types.js +1 -1
  76. package/dist/commands/init/ui.d.ts +12 -3
  77. package/dist/commands/init/ui.js +45 -33
  78. package/dist/commands/init/ui.js.map +1 -1
  79. package/dist/commands/init/vite.d.ts +1 -1
  80. package/dist/commands/init/vite.js +17 -27
  81. package/dist/commands/init/vite.js.map +1 -1
  82. package/dist/commands/init.d.ts +1 -1
  83. package/dist/commands/init.js +1 -1
  84. package/dist/commands/list.d.ts +2 -2
  85. package/dist/commands/list.js +69 -62
  86. package/dist/commands/list.js.map +1 -1
  87. package/dist/commands/remove.d.ts +2 -2
  88. package/dist/commands/remove.js +95 -93
  89. package/dist/commands/remove.js.map +1 -1
  90. package/dist/commands/shared/add-collection.d.ts +50 -50
  91. package/dist/commands/shared/add-collection.js +206 -206
  92. package/dist/commands/shared/list-entries.d.ts +6 -6
  93. package/dist/commands/shared/list-entries.js +12 -12
  94. package/dist/commands/shared/name-utils.d.ts +1 -1
  95. package/dist/commands/shared/name-utils.js +13 -13
  96. package/dist/commands/shared/remove-entries.d.ts +16 -16
  97. package/dist/commands/shared/remove-entries.js +41 -41
  98. package/dist/icons/index.d.ts +1 -1
  99. package/dist/icons/index.js +1 -1
  100. package/dist/icons/libraries.d.ts +37 -37
  101. package/dist/icons/libraries.js +34 -34
  102. package/dist/index.d.ts +1 -2
  103. package/dist/index.js +29 -30
  104. package/dist/index.js.map +1 -1
  105. package/dist/lib/config.d.ts +45 -45
  106. package/dist/lib/config.js +97 -97
  107. package/dist/lib/fs.d.ts +82 -76
  108. package/dist/lib/fs.js +299 -302
  109. package/dist/lib/fs.js.map +1 -1
  110. package/dist/lib/highlighter.d.ts +6 -6
  111. package/dist/lib/highlighter.js +7 -7
  112. package/dist/lib/install.d.ts +19 -19
  113. package/dist/lib/install.js +101 -55
  114. package/dist/lib/install.js.map +1 -1
  115. package/dist/lib/lockfile.d.ts +63 -63
  116. package/dist/lib/lockfile.js +179 -173
  117. package/dist/lib/lockfile.js.map +1 -1
  118. package/dist/lib/logger.d.ts +8 -8
  119. package/dist/lib/logger.js +41 -41
  120. package/dist/lib/logger.js.map +1 -1
  121. package/dist/lib/paths.d.ts +14 -14
  122. package/dist/lib/paths.js +41 -31
  123. package/dist/lib/paths.js.map +1 -1
  124. package/dist/lib/registry.d.ts +35 -35
  125. package/dist/lib/registry.js +180 -180
  126. package/dist/schema/index.d.ts +1128 -1128
  127. package/dist/schema/index.js +237 -238
  128. package/dist/schema/index.js.map +1 -1
  129. package/dist/styles/create-style-map.d.ts +4 -4
  130. package/dist/styles/create-style-map.js +68 -68
  131. package/dist/styles/transform-style-map.d.ts +3 -3
  132. package/dist/styles/transform-style-map.js +428 -428
  133. package/dist/styles/transform.d.ts +10 -10
  134. package/dist/styles/transform.js +15 -15
  135. package/dist/utils/index.d.ts +6 -6
  136. package/dist/utils/index.js +5 -5
  137. package/dist/utils/transformers/transform-icons.d.ts +2 -2
  138. package/dist/utils/transformers/transform-icons.js +164 -164
  139. package/dist/utils/transformers/transform-menu.d.ts +2 -2
  140. package/dist/utils/transformers/transform-menu.js +39 -39
  141. package/dist/utils/transformers/transform-render.d.ts +2 -2
  142. package/dist/utils/transformers/transform-render.js +97 -97
  143. package/dist/utils/transformers/types.d.ts +14 -14
  144. package/dist/utils/transformers/types.js +1 -1
  145. package/package.json +69 -69
  146. package/dist/__tests__/contracts/registry.test.d.ts +0 -1
  147. package/dist/__tests__/contracts/registry.test.js +0 -42
  148. package/dist/__tests__/contracts/registry.test.js.map +0 -1
  149. package/dist/__tests__/e2e/cli.test.d.ts +0 -1
  150. package/dist/__tests__/e2e/cli.test.js +0 -67
  151. package/dist/__tests__/e2e/cli.test.js.map +0 -1
  152. package/dist/__tests__/helpers/fs.d.ts +0 -5
  153. package/dist/__tests__/helpers/fs.js +0 -26
  154. package/dist/__tests__/helpers/fs.js.map +0 -1
  155. package/dist/__tests__/integration/commands.integration.test.d.ts +0 -1
  156. package/dist/__tests__/integration/commands.integration.test.js +0 -184
  157. package/dist/__tests__/integration/commands.integration.test.js.map +0 -1
  158. package/dist/commands/__tests__/add-composite.test.d.ts +0 -2
  159. package/dist/commands/__tests__/add-composite.test.js +0 -171
  160. package/dist/commands/__tests__/add-composite.test.js.map +0 -1
  161. package/dist/commands/__tests__/add-entry.mocks.d.ts +0 -23
  162. package/dist/commands/__tests__/add-entry.mocks.js +0 -64
  163. package/dist/commands/__tests__/add-entry.mocks.js.map +0 -1
  164. package/dist/commands/__tests__/add-section.test.d.ts +0 -2
  165. package/dist/commands/__tests__/add-section.test.js +0 -191
  166. package/dist/commands/__tests__/add-section.test.js.map +0 -1
  167. package/dist/commands/__tests__/add-wrapper.test.d.ts +0 -2
  168. package/dist/commands/__tests__/add-wrapper.test.js +0 -171
  169. package/dist/commands/__tests__/add-wrapper.test.js.map +0 -1
  170. package/dist/commands/__tests__/cli-mocks.d.ts +0 -1
  171. package/dist/commands/__tests__/cli-mocks.js +0 -24
  172. package/dist/commands/__tests__/cli-mocks.js.map +0 -1
  173. package/dist/commands/__tests__/doctor.mocks.d.ts +0 -6
  174. package/dist/commands/__tests__/doctor.mocks.js +0 -20
  175. package/dist/commands/__tests__/doctor.mocks.js.map +0 -1
  176. package/dist/commands/__tests__/doctor.test.d.ts +0 -2
  177. package/dist/commands/__tests__/doctor.test.js +0 -80
  178. package/dist/commands/__tests__/doctor.test.js.map +0 -1
  179. package/dist/commands/__tests__/list.mocks.d.ts +0 -8
  180. package/dist/commands/__tests__/list.mocks.js +0 -20
  181. package/dist/commands/__tests__/list.mocks.js.map +0 -1
  182. package/dist/commands/__tests__/list.test.d.ts +0 -2
  183. package/dist/commands/__tests__/list.test.js +0 -60
  184. package/dist/commands/__tests__/list.test.js.map +0 -1
  185. package/dist/commands/__tests__/remove.mocks.d.ts +0 -9
  186. package/dist/commands/__tests__/remove.mocks.js +0 -26
  187. package/dist/commands/__tests__/remove.mocks.js.map +0 -1
  188. package/dist/commands/__tests__/remove.test.d.ts +0 -2
  189. package/dist/commands/__tests__/remove.test.js +0 -116
  190. package/dist/commands/__tests__/remove.test.js.map +0 -1
  191. package/dist/commands/add/__tests__/__mocks__/cli-mocks.d.ts +0 -1
  192. package/dist/commands/add/__tests__/__mocks__/cli-mocks.js +0 -21
  193. package/dist/commands/add/__tests__/__mocks__/cli-mocks.js.map +0 -1
  194. package/dist/commands/add/__tests__/add.mocks.d.ts +0 -19
  195. package/dist/commands/add/__tests__/add.mocks.js +0 -60
  196. package/dist/commands/add/__tests__/add.mocks.js.map +0 -1
  197. package/dist/commands/add/__tests__/add.test.d.ts +0 -2
  198. package/dist/commands/add/__tests__/add.test.js +0 -141
  199. package/dist/commands/add/__tests__/add.test.js.map +0 -1
  200. package/dist/commands/init/__tests__/init.mocks.d.ts +0 -24
  201. package/dist/commands/init/__tests__/init.mocks.js +0 -84
  202. package/dist/commands/init/__tests__/init.mocks.js.map +0 -1
  203. package/dist/commands/init/__tests__/init.test.d.ts +0 -2
  204. package/dist/commands/init/__tests__/init.test.js +0 -283
  205. package/dist/commands/init/__tests__/init.test.js.map +0 -1
  206. package/dist/commands/init/__tests__/tailwind.test.d.ts +0 -1
  207. package/dist/commands/init/__tests__/tailwind.test.js +0 -56
  208. package/dist/commands/init/__tests__/tailwind.test.js.map +0 -1
  209. package/dist/commands/init/__tests__/tsconfig.test.d.ts +0 -1
  210. package/dist/commands/init/__tests__/tsconfig.test.js +0 -108
  211. package/dist/commands/init/__tests__/tsconfig.test.js.map +0 -1
  212. package/dist/commands/init/__tests__/vite.test.d.ts +0 -1
  213. package/dist/commands/init/__tests__/vite.test.js +0 -66
  214. package/dist/commands/init/__tests__/vite.test.js.map +0 -1
  215. package/dist/commands/list-sections.d.ts +0 -2
  216. package/dist/commands/list-sections.js +0 -20
  217. package/dist/commands/list-sections.js.map +0 -1
  218. package/dist/commands/list-wrappers.d.ts +0 -2
  219. package/dist/commands/list-wrappers.js +0 -20
  220. package/dist/commands/list-wrappers.js.map +0 -1
  221. package/dist/commands/remove-section.d.ts +0 -2
  222. package/dist/commands/remove-section.js +0 -37
  223. package/dist/commands/remove-section.js.map +0 -1
  224. package/dist/commands/remove-wrapper.d.ts +0 -2
  225. package/dist/commands/remove-wrapper.js +0 -37
  226. package/dist/commands/remove-wrapper.js.map +0 -1
  227. package/dist/lib/__tests__/config.test.d.ts +0 -1
  228. package/dist/lib/__tests__/config.test.js +0 -49
  229. package/dist/lib/__tests__/config.test.js.map +0 -1
  230. package/dist/lib/__tests__/install.test.d.ts +0 -1
  231. package/dist/lib/__tests__/install.test.js +0 -149
  232. package/dist/lib/__tests__/install.test.js.map +0 -1
  233. package/dist/lib/__tests__/lockfile.test.d.ts +0 -1
  234. package/dist/lib/__tests__/lockfile.test.js +0 -89
  235. package/dist/lib/__tests__/lockfile.test.js.map +0 -1
  236. package/dist/lib/__tests__/paths.test.d.ts +0 -1
  237. package/dist/lib/__tests__/paths.test.js +0 -39
  238. package/dist/lib/__tests__/paths.test.js.map +0 -1
  239. package/dist/lib/__tests__/registry.test.d.ts +0 -1
  240. package/dist/lib/__tests__/registry.test.js +0 -76
  241. package/dist/lib/__tests__/registry.test.js.map +0 -1
@@ -1,105 +1,105 @@
1
- import path from "node:path";
2
- import { promises as fs } from "node:fs";
3
- import { Command } from "commander";
4
- import { Project } from "ts-morph";
5
- import { registryIndexSchema, registrySchema } from "../schema/index.js";
6
- import { transformIcons, transformMenu, transformRender } from "../utils/index.js";
7
- const DEFAULT_ITEM_SCHEMA = "https://ui.trix.com/schema/registry-item.json";
8
- export const buildCommand = new Command("build")
9
- .description("Build registry items into JSON files")
10
- .argument("[registry]", "path to registry.json", "registry.json")
11
- .option("--output <dir>", "output directory", "dist")
12
- .option("--style <name>", "style name")
13
- .option("--icon-library <name>", "icon library")
14
- .option("--menu-color <name>", "menu color")
15
- .option("--schema <url>", "registry item schema URL")
16
- .action(async (registryArg, options) => {
17
- try {
18
- const cwd = process.cwd();
19
- const registryPath = resolvePath(cwd, registryArg);
20
- const { registry, items } = await loadRegistry(registryPath);
21
- const outputDir = resolvePath(cwd, options.output ?? "dist");
22
- const transformConfig = getTransformConfig(items, options);
23
- const project = new Project({ useInMemoryFileSystem: true });
24
- await fs.mkdir(outputDir, { recursive: true });
25
- for (const item of items) {
26
- const payload = await buildRegistryItem(cwd, project, item, transformConfig, options.schema);
27
- const outputPath = path.join(outputDir, `${item.name}.json`);
28
- await fs.writeFile(outputPath, JSON.stringify(payload, null, 2));
29
- }
30
- if (registry) {
31
- const registryOutput = { ...registry, items };
32
- await fs.writeFile(path.join(outputDir, "registry.json"), JSON.stringify(registryOutput, null, 2));
33
- }
34
- }
35
- catch (error) {
36
- console.error(error.message);
37
- process.exit(1);
38
- }
39
- });
40
- function resolvePath(cwd, value) {
41
- return path.isAbsolute(value) ? value : path.resolve(cwd, value);
42
- }
43
- async function loadRegistry(registryPath) {
44
- const raw = await fs.readFile(registryPath, "utf8");
45
- const parsed = JSON.parse(raw);
46
- if (Array.isArray(parsed)) {
47
- return {
48
- items: registryIndexSchema.parse(parsed)
49
- };
50
- }
51
- const registry = registrySchema.parse(parsed);
52
- return {
53
- registry,
54
- items: registry.items
55
- };
56
- }
57
- function getTransformConfig(items, options) {
58
- const config = {
59
- style: options.style,
60
- iconLibrary: options.iconLibrary,
61
- menuColor: options.menuColor
62
- };
63
- const baseItem = items.find((item) => item.type === "registry:base");
64
- if (baseItem?.config) {
65
- config.style ??= baseItem.config.style;
66
- config.iconLibrary ??= baseItem.config.iconLibrary;
67
- config.menuColor ??= baseItem.config.menuColor;
68
- }
69
- return config;
70
- }
71
- async function buildRegistryItem(cwd, project, item, config, schemaOverride) {
72
- const payload = { ...item };
73
- const schemaValue = schemaOverride ?? DEFAULT_ITEM_SCHEMA;
74
- if (!payload.$schema && schemaValue) {
75
- payload.$schema = schemaValue;
76
- }
77
- if (item.files) {
78
- payload.files = await Promise.all(item.files.map(async (file) => {
79
- const sourcePath = resolvePath(cwd, file.path);
80
- const raw = file.content ?? (await fs.readFile(sourcePath, "utf8"));
81
- const content = isSourceFile(file.path)
82
- ? await transformSource(project, file.path, raw, config)
83
- : raw;
84
- return {
85
- ...file,
86
- content
87
- };
88
- }));
89
- }
90
- return payload;
91
- }
92
- async function transformSource(project, filename, raw, config) {
93
- const sourceFile = project.createSourceFile(filename, raw, {
94
- overwrite: true
95
- });
96
- let next = await transformRender({ filename, raw, config, sourceFile });
97
- next = await transformMenu({ filename, raw, config, sourceFile: next });
98
- next = await transformIcons({ filename, raw, config, sourceFile: next });
99
- return next.getFullText();
100
- }
101
- function isSourceFile(filePath) {
102
- const ext = path.extname(filePath).toLowerCase();
103
- return ext === ".ts" || ext === ".tsx" || ext === ".js" || ext === ".jsx";
104
- }
1
+ import path from "node:path";
2
+ import { promises as fs } from "node:fs";
3
+ import { Command } from "commander";
4
+ import { Project } from "ts-morph";
5
+ import { registryIndexSchema, registrySchema } from "../schema/index.js";
6
+ import { transformIcons, transformMenu, transformRender } from "../utils/index.js";
7
+ const DEFAULT_ITEM_SCHEMA = "https://ui.trix.com/schema/registry-item.json";
8
+ export const buildCommand = new Command("build")
9
+ .description("Build registry items into JSON files")
10
+ .argument("[registry]", "path to registry.json", "registry.json")
11
+ .option("--output <dir>", "output directory", "dist")
12
+ .option("--style <name>", "style name")
13
+ .option("--icon-library <name>", "icon library")
14
+ .option("--menu-color <name>", "menu color")
15
+ .option("--schema <url>", "registry item schema URL")
16
+ .action(async (registryArg, options) => {
17
+ try {
18
+ const cwd = process.cwd();
19
+ const registryPath = resolvePath(cwd, registryArg);
20
+ const { registry, items } = await loadRegistry(registryPath);
21
+ const outputDir = resolvePath(cwd, options.output ?? "dist");
22
+ const transformConfig = getTransformConfig(items, options);
23
+ const project = new Project({ useInMemoryFileSystem: true });
24
+ await fs.mkdir(outputDir, { recursive: true });
25
+ for (const item of items) {
26
+ const payload = await buildRegistryItem(cwd, project, item, transformConfig, options.schema);
27
+ const outputPath = path.join(outputDir, `${item.name}.json`);
28
+ await fs.writeFile(outputPath, JSON.stringify(payload, null, 2));
29
+ }
30
+ if (registry) {
31
+ const registryOutput = { ...registry, items };
32
+ await fs.writeFile(path.join(outputDir, "registry.json"), JSON.stringify(registryOutput, null, 2));
33
+ }
34
+ }
35
+ catch (error) {
36
+ console.error(error.message);
37
+ process.exit(1);
38
+ }
39
+ });
40
+ function resolvePath(cwd, value) {
41
+ return path.isAbsolute(value) ? value : path.resolve(cwd, value);
42
+ }
43
+ async function loadRegistry(registryPath) {
44
+ const raw = await fs.readFile(registryPath, "utf8");
45
+ const parsed = JSON.parse(raw);
46
+ if (Array.isArray(parsed)) {
47
+ return {
48
+ items: registryIndexSchema.parse(parsed)
49
+ };
50
+ }
51
+ const registry = registrySchema.parse(parsed);
52
+ return {
53
+ registry,
54
+ items: registry.items
55
+ };
56
+ }
57
+ function getTransformConfig(items, options) {
58
+ const config = {
59
+ style: options.style,
60
+ iconLibrary: options.iconLibrary,
61
+ menuColor: options.menuColor
62
+ };
63
+ const baseItem = items.find((item) => item.type === "registry:base");
64
+ if (baseItem?.config) {
65
+ config.style ??= baseItem.config.style;
66
+ config.iconLibrary ??= baseItem.config.iconLibrary;
67
+ config.menuColor ??= baseItem.config.menuColor;
68
+ }
69
+ return config;
70
+ }
71
+ async function buildRegistryItem(cwd, project, item, config, schemaOverride) {
72
+ const payload = { ...item };
73
+ const schemaValue = schemaOverride ?? DEFAULT_ITEM_SCHEMA;
74
+ if (!payload.$schema && schemaValue) {
75
+ payload.$schema = schemaValue;
76
+ }
77
+ if (item.files) {
78
+ payload.files = await Promise.all(item.files.map(async (file) => {
79
+ const sourcePath = resolvePath(cwd, file.path);
80
+ const raw = file.content ?? (await fs.readFile(sourcePath, "utf8"));
81
+ const content = isSourceFile(file.path)
82
+ ? await transformSource(project, file.path, raw, config)
83
+ : raw;
84
+ return {
85
+ ...file,
86
+ content
87
+ };
88
+ }));
89
+ }
90
+ return payload;
91
+ }
92
+ async function transformSource(project, filename, raw, config) {
93
+ const sourceFile = project.createSourceFile(filename, raw, {
94
+ overwrite: true
95
+ });
96
+ let next = await transformRender({ filename, raw, config, sourceFile });
97
+ next = await transformMenu({ filename, raw, config, sourceFile: next });
98
+ next = await transformIcons({ filename, raw, config, sourceFile: next });
99
+ return next.getFullText();
100
+ }
101
+ function isSourceFile(filePath) {
102
+ const ext = path.extname(filePath).toLowerCase();
103
+ return ext === ".ts" || ext === ".tsx" || ext === ".js" || ext === ".jsx";
104
+ }
105
105
  //# sourceMappingURL=build.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAElC,OAAO,EACL,mBAAmB,EACnB,cAAc,EAIf,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EACL,cAAc,EACd,aAAa,EACb,eAAe,EAEhB,MAAM,mBAAmB,CAAA;AAE1B,MAAM,mBAAmB,GACvB,iDAAiD,CAAA;AAenD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,sCAAsC,CAAC;KACnD,QAAQ,CAAC,YAAY,EAAE,uBAAuB,EAAE,eAAe,CAAC;KAChE,MAAM,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,CAAC;KACpD,MAAM,CAAC,gBAAgB,EAAE,YAAY,CAAC;KACtC,MAAM,CAAC,uBAAuB,EAAE,cAAc,CAAC;KAC/C,MAAM,CAAC,qBAAqB,EAAE,YAAY,CAAC;KAC3C,MAAM,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;KACpD,MAAM,CAAC,KAAK,EAAE,WAAmB,EAAE,OAAqB,EAAE,EAAE;IAC3D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;QACzB,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;QAClD,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,CAAA;QAC5D,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,CAAA;QAC5D,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QAC1D,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAA;QAE5D,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAE9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,MAAM,iBAAiB,CACrC,GAAG,EACH,OAAO,EACP,IAAI,EACJ,eAAe,EACf,OAAO,CAAC,MAAM,CACf,CAAA;YACD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,IAAI,OAAO,CAAC,CAAA;YAC5D,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAClE,CAAC;QAED,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,cAAc,GAAG,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,CAAA;YAC7C,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,EACrC,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CACxC,CAAA;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAA;QACvC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;AACH,CAAC,CAAC,CAAA;AAEJ,SAAS,WAAW,CAAC,GAAW,EAAE,KAAa;IAC7C,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;AAClE,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,YAAoB;IAC9C,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAA;IAEzC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO;YACL,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC;SACzC,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;IAC7C,OAAO;QACL,QAAQ;QACR,KAAK,EAAE,QAAQ,CAAC,KAAK;KACtB,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAqB,EAAE,OAAqB;IACtE,MAAM,MAAM,GAAoB;QAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAA;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CACzB,CAAC,IAAI,EAA4B,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,CAClE,CAAA;IAED,IAAI,QAAQ,EAAE,MAAM,EAAE,CAAC;QACrB,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAA;QACtC,MAAM,CAAC,WAAW,KAAK,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAA;QAClD,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAA;IAChD,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,GAAW,EACX,OAAgB,EAChB,IAAkB,EAClB,MAAuB,EACvB,cAAuB;IAEvB,MAAM,OAAO,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAA;IACpD,MAAM,WAAW,GAAG,cAAc,IAAI,mBAAmB,CAAA;IAEzD,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,WAAW,EAAE,CAAC;QACpC,OAAO,CAAC,OAAO,GAAG,WAAW,CAAA;IAC/B,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAC5B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAA;YACnE,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;gBACrC,CAAC,CAAC,MAAM,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC;gBACxD,CAAC,CAAC,GAAG,CAAA;YAEP,OAAO;gBACL,GAAG,IAAI;gBACP,OAAO;aACR,CAAA;QACH,CAAC,CAAC,CACH,CAAA;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,OAAgB,EAChB,QAAgB,EAChB,GAAW,EACX,MAAuB;IAEvB,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;QACzD,SAAS,EAAE,IAAI;KAChB,CAAC,CAAA;IACF,IAAI,IAAI,GAAG,MAAM,eAAe,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAA;IACvE,IAAI,GAAG,MAAM,aAAa,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IACvE,IAAI,GAAG,MAAM,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;IACxE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAA;AAC3B,CAAC;AAED,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;IAChD,OAAO,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,CAAA;AAC3E,CAAC"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { Command } from "commander";
2
- export declare const doctorCommand: Command;
1
+ import { Command } from "commander";
2
+ export declare const doctorCommand: Command;
@@ -1,68 +1,68 @@
1
- import path from "node:path";
2
- import { Command } from "commander";
3
- import { loadConfig, getConfigPath } from "../lib/config.js";
4
- import { fileExists } from "../lib/fs.js";
5
- import { lockfileExists } from "../lib/lockfile.js";
6
- import { loadRegistry } from "../lib/registry.js";
7
- export const doctorCommand = new Command("doctor")
8
- .description("Check project setup and suggest fixes")
9
- .option("-c, --cwd <path>", "working directory to check")
10
- .action(async (options) => {
11
- const cwd = path.resolve(options.cwd || process.cwd());
12
- const issues = [];
13
- if (!(await fileExists(getConfigPath(cwd)))) {
14
- issues.push("Missing components.json. Run: ui init");
15
- }
16
- let config;
17
- try {
18
- config = await loadConfig(cwd);
19
- }
20
- catch (error) {
21
- issues.push(error.message);
22
- }
23
- if (config) {
24
- const componentsDir = path.resolve(cwd, config.paths.components);
25
- if (!(await fileExists(componentsDir))) {
26
- issues.push(`Missing components directory: ${componentsDir}`);
27
- }
28
- const sectionsDir = path.resolve(cwd, config.paths.sections);
29
- if (!(await fileExists(sectionsDir))) {
30
- issues.push(`Missing sections directory: ${sectionsDir}`);
31
- }
32
- const wrappersDir = path.resolve(cwd, config.paths.wrappers);
33
- if (!(await fileExists(wrappersDir))) {
34
- issues.push(`Missing wrappers directory: ${wrappersDir}`);
35
- }
36
- const compositesDir = path.resolve(cwd, config.paths.composites);
37
- if (!(await fileExists(compositesDir))) {
38
- issues.push(`Missing composites directory: ${compositesDir}`);
39
- }
40
- const utilsPath = path.resolve(cwd, config.paths.utils);
41
- if (!(await fileExists(utilsPath))) {
42
- issues.push(`Missing utils file: ${utilsPath}`);
43
- }
44
- const stylesPath = path.resolve(cwd, config.paths.styles);
45
- if (!(await fileExists(stylesPath))) {
46
- issues.push(`Missing styles file: ${stylesPath}`);
47
- }
48
- try {
49
- await loadRegistry(config, cwd);
50
- }
51
- catch (error) {
52
- issues.push(`Registry load failed: ${error.message}`);
53
- }
54
- }
55
- if (!(await lockfileExists(cwd))) {
56
- issues.push("Missing lockfile. Run: ui init");
57
- }
58
- if (issues.length === 0) {
59
- console.log("All checks passed.");
60
- return;
61
- }
62
- console.log("Doctor found issues:");
63
- for (const issue of issues) {
64
- console.log(`- ${issue}`);
65
- }
66
- process.exit(1);
67
- });
1
+ import path from "node:path";
2
+ import { Command } from "commander";
3
+ import { loadConfig, getConfigPath } from "../lib/config.js";
4
+ import { fileExists } from "../lib/fs.js";
5
+ import { lockfileExists } from "../lib/lockfile.js";
6
+ import { loadRegistry } from "../lib/registry.js";
7
+ export const doctorCommand = new Command("doctor")
8
+ .description("Check project setup and suggest fixes")
9
+ .option("-c, --cwd <path>", "working directory to check")
10
+ .action(async (options) => {
11
+ const cwd = path.resolve(options.cwd || process.cwd());
12
+ const issues = [];
13
+ if (!(await fileExists(getConfigPath(cwd)))) {
14
+ issues.push("Missing trix-ui.json. Run: ui init");
15
+ }
16
+ let config;
17
+ try {
18
+ config = await loadConfig(cwd);
19
+ }
20
+ catch (error) {
21
+ issues.push(error.message);
22
+ }
23
+ if (config) {
24
+ const componentsDir = path.resolve(cwd, config.paths.components);
25
+ if (!(await fileExists(componentsDir))) {
26
+ issues.push(`Missing components directory: ${componentsDir}`);
27
+ }
28
+ const sectionsDir = path.resolve(cwd, config.paths.sections);
29
+ if (!(await fileExists(sectionsDir))) {
30
+ issues.push(`Missing sections directory: ${sectionsDir}`);
31
+ }
32
+ const wrappersDir = path.resolve(cwd, config.paths.wrappers);
33
+ if (!(await fileExists(wrappersDir))) {
34
+ issues.push(`Missing wrappers directory: ${wrappersDir}`);
35
+ }
36
+ const compositesDir = path.resolve(cwd, config.paths.composites);
37
+ if (!(await fileExists(compositesDir))) {
38
+ issues.push(`Missing composites directory: ${compositesDir}`);
39
+ }
40
+ const utilsPath = path.resolve(cwd, config.paths.utils);
41
+ if (!(await fileExists(utilsPath))) {
42
+ issues.push(`Missing utils file: ${utilsPath}`);
43
+ }
44
+ const stylesPath = path.resolve(cwd, config.paths.styles);
45
+ if (!(await fileExists(stylesPath))) {
46
+ issues.push(`Missing styles file: ${stylesPath}`);
47
+ }
48
+ try {
49
+ await loadRegistry(config, cwd);
50
+ }
51
+ catch (error) {
52
+ issues.push(`Registry load failed: ${error.message}`);
53
+ }
54
+ }
55
+ if (!(await lockfileExists(cwd))) {
56
+ issues.push("Missing lockfile. Run: ui init");
57
+ }
58
+ if (issues.length === 0) {
59
+ console.log("All checks passed.");
60
+ return;
61
+ }
62
+ console.log("Doctor found issues:");
63
+ for (const issue of issues) {
64
+ console.log(`- ${issue}`);
65
+ }
66
+ process.exit(1);
67
+ });
68
68
  //# sourceMappingURL=doctor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,8 @@
1
- import { Command } from "commander";
2
- export declare const initCommand: Command;
1
+ import { Command } from "commander";
2
+ /**
3
+ * Commander definition for the `trix-ui init` CLI command.
4
+ *
5
+ * The command wiring (flags/help) lives here; the implementation lives in
6
+ * `handleInitCommand()`.
7
+ */
8
+ export declare const initCommand: Command;