trix-ui 0.2.8 → 0.2.10

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 (204) hide show
  1. package/dist/__tests__/contracts/registry.test.d.ts +1 -0
  2. package/dist/__tests__/contracts/registry.test.js +42 -0
  3. package/dist/__tests__/contracts/registry.test.js.map +1 -0
  4. package/dist/__tests__/e2e/cli.test.d.ts +1 -0
  5. package/dist/__tests__/e2e/cli.test.js +67 -0
  6. package/dist/__tests__/e2e/cli.test.js.map +1 -0
  7. package/dist/__tests__/helpers/fs.d.ts +5 -0
  8. package/dist/__tests__/helpers/fs.js +26 -0
  9. package/dist/__tests__/helpers/fs.js.map +1 -0
  10. package/dist/__tests__/integration/commands.integration.test.d.ts +1 -0
  11. package/dist/__tests__/integration/commands.integration.test.js +184 -0
  12. package/dist/__tests__/integration/commands.integration.test.js.map +1 -0
  13. package/dist/commands/__tests__/add-composite.test.d.ts +2 -0
  14. package/dist/commands/__tests__/add-composite.test.js +171 -0
  15. package/dist/commands/__tests__/add-composite.test.js.map +1 -0
  16. package/dist/commands/__tests__/add-entry.mocks.d.ts +23 -0
  17. package/dist/commands/__tests__/add-entry.mocks.js +64 -0
  18. package/dist/commands/__tests__/add-entry.mocks.js.map +1 -0
  19. package/dist/commands/__tests__/add-section.test.d.ts +2 -0
  20. package/dist/commands/__tests__/add-section.test.js +191 -0
  21. package/dist/commands/__tests__/add-section.test.js.map +1 -0
  22. package/dist/commands/__tests__/add-wrapper.test.d.ts +2 -0
  23. package/dist/commands/__tests__/add-wrapper.test.js +171 -0
  24. package/dist/commands/__tests__/add-wrapper.test.js.map +1 -0
  25. package/dist/commands/__tests__/cli-mocks.d.ts +1 -0
  26. package/dist/commands/__tests__/cli-mocks.js +24 -0
  27. package/dist/commands/__tests__/cli-mocks.js.map +1 -0
  28. package/dist/commands/__tests__/doctor.mocks.d.ts +6 -0
  29. package/dist/commands/__tests__/doctor.mocks.js +20 -0
  30. package/dist/commands/__tests__/doctor.mocks.js.map +1 -0
  31. package/dist/commands/__tests__/doctor.test.d.ts +2 -0
  32. package/dist/commands/__tests__/doctor.test.js +80 -0
  33. package/dist/commands/__tests__/doctor.test.js.map +1 -0
  34. package/dist/commands/__tests__/list.mocks.d.ts +8 -0
  35. package/dist/commands/__tests__/list.mocks.js +20 -0
  36. package/dist/commands/__tests__/list.mocks.js.map +1 -0
  37. package/dist/commands/__tests__/list.test.d.ts +2 -0
  38. package/dist/commands/__tests__/list.test.js +60 -0
  39. package/dist/commands/__tests__/list.test.js.map +1 -0
  40. package/dist/commands/__tests__/remove.mocks.d.ts +9 -0
  41. package/dist/commands/__tests__/remove.mocks.js +26 -0
  42. package/dist/commands/__tests__/remove.mocks.js.map +1 -0
  43. package/dist/commands/__tests__/remove.test.d.ts +2 -0
  44. package/dist/commands/__tests__/remove.test.js +116 -0
  45. package/dist/commands/__tests__/remove.test.js.map +1 -0
  46. package/dist/commands/add/__tests__/add.mocks.d.ts +19 -19
  47. package/dist/commands/add/__tests__/add.mocks.js +59 -59
  48. package/dist/commands/add/__tests__/add.test.d.ts +2 -2
  49. package/dist/commands/add/__tests__/add.test.js +140 -140
  50. package/dist/commands/add/analysis.d.ts +4 -4
  51. package/dist/commands/add/analysis.js +56 -56
  52. package/dist/commands/add/command.d.ts +2 -2
  53. package/dist/commands/add/command.js +202 -202
  54. package/dist/commands/add/config.d.ts +2 -2
  55. package/dist/commands/add/config.js +11 -11
  56. package/dist/commands/add/install.d.ts +27 -27
  57. package/dist/commands/add/install.js +80 -80
  58. package/dist/commands/add/package-manager.d.ts +1 -1
  59. package/dist/commands/add/package-manager.js +4 -4
  60. package/dist/commands/add/project-files.d.ts +2 -2
  61. package/dist/commands/add/project-files.js +17 -17
  62. package/dist/commands/add/prompts.d.ts +3 -3
  63. package/dist/commands/add/prompts.js +28 -28
  64. package/dist/commands/add/registry.d.ts +4 -4
  65. package/dist/commands/add/registry.js +6 -6
  66. package/dist/commands/add/types.d.ts +33 -33
  67. package/dist/commands/add/types.js +1 -1
  68. package/dist/commands/add/ui.d.ts +4 -4
  69. package/dist/commands/add/ui.js +55 -55
  70. package/dist/commands/add/validation.d.ts +3 -3
  71. package/dist/commands/add/validation.js +30 -30
  72. package/dist/commands/add-collection.d.ts +1 -1
  73. package/dist/commands/add-collection.js +1 -1
  74. package/dist/commands/add-composite.d.ts +2 -2
  75. package/dist/commands/add-composite.js +201 -201
  76. package/dist/commands/add-section.d.ts +2 -2
  77. package/dist/commands/add-section.js +201 -201
  78. package/dist/commands/add-wrapper.d.ts +2 -2
  79. package/dist/commands/add-wrapper.js +201 -201
  80. package/dist/commands/add.d.ts +1 -1
  81. package/dist/commands/add.js +1 -1
  82. package/dist/commands/build.d.ts +2 -2
  83. package/dist/commands/doctor.d.ts +2 -2
  84. package/dist/commands/doctor.js +67 -67
  85. package/dist/commands/init/__tests__/init.mocks.d.ts +24 -0
  86. package/dist/commands/init/__tests__/init.mocks.js +84 -0
  87. package/dist/commands/init/__tests__/init.mocks.js.map +1 -0
  88. package/dist/commands/init/__tests__/init.test.d.ts +2 -0
  89. package/dist/commands/init/__tests__/init.test.js +283 -0
  90. package/dist/commands/init/__tests__/init.test.js.map +1 -0
  91. package/dist/commands/init/__tests__/tailwind.test.d.ts +1 -0
  92. package/dist/commands/init/__tests__/tailwind.test.js +56 -0
  93. package/dist/commands/init/__tests__/tailwind.test.js.map +1 -0
  94. package/dist/commands/init/__tests__/tsconfig.test.d.ts +1 -0
  95. package/dist/commands/init/__tests__/tsconfig.test.js +108 -0
  96. package/dist/commands/init/__tests__/tsconfig.test.js.map +1 -0
  97. package/dist/commands/init/__tests__/vite.test.d.ts +1 -0
  98. package/dist/commands/init/__tests__/vite.test.js +66 -0
  99. package/dist/commands/init/__tests__/vite.test.js.map +1 -0
  100. package/dist/commands/init/command.d.ts +2 -2
  101. package/dist/commands/init/command.js +114 -114
  102. package/dist/commands/init/config.d.ts +2 -2
  103. package/dist/commands/init/config.js +25 -25
  104. package/dist/commands/init/constants.d.ts +3 -3
  105. package/dist/commands/init/constants.js +105 -105
  106. package/dist/commands/init/dependencies.d.ts +5 -5
  107. package/dist/commands/init/dependencies.js +52 -52
  108. package/dist/commands/init/filesystem.d.ts +1 -1
  109. package/dist/commands/init/filesystem.js +10 -10
  110. package/dist/commands/init/lockfile.d.ts +1 -1
  111. package/dist/commands/init/lockfile.js +1 -1
  112. package/dist/commands/init/package-json.d.ts +6 -6
  113. package/dist/commands/init/package-json.js +18 -18
  114. package/dist/commands/init/project-files.d.ts +8 -0
  115. package/dist/commands/init/project-files.js +37 -0
  116. package/dist/commands/init/project-files.js.map +1 -0
  117. package/dist/commands/init/project.d.ts +3 -3
  118. package/dist/commands/init/project.js +97 -97
  119. package/dist/commands/init/style-imports.d.ts +9 -0
  120. package/dist/commands/init/style-imports.js +218 -0
  121. package/dist/commands/init/style-imports.js.map +1 -0
  122. package/dist/commands/init/tailwind.d.ts +3 -3
  123. package/dist/commands/init/tailwind.js +34 -34
  124. package/dist/commands/init/templates.d.ts +3 -3
  125. package/dist/commands/init/templates.js +15 -15
  126. package/dist/commands/init/tsconfig.d.ts +2 -2
  127. package/dist/commands/init/tsconfig.js +273 -273
  128. package/dist/commands/init/types.d.ts +33 -33
  129. package/dist/commands/init/types.js +1 -1
  130. package/dist/commands/init/ui.d.ts +3 -3
  131. package/dist/commands/init/ui.js +33 -33
  132. package/dist/commands/init/vite.d.ts +23 -0
  133. package/dist/commands/init/vite.js +347 -0
  134. package/dist/commands/init/vite.js.map +1 -0
  135. package/dist/commands/init.d.ts +1 -1
  136. package/dist/commands/init.js +1 -1
  137. package/dist/commands/list.d.ts +2 -2
  138. package/dist/commands/list.js +62 -62
  139. package/dist/commands/remove.d.ts +2 -2
  140. package/dist/commands/remove.js +93 -93
  141. package/dist/commands/shared/add-collection.d.ts +50 -50
  142. package/dist/commands/shared/add-collection.js +206 -206
  143. package/dist/commands/shared/list-entries.d.ts +6 -6
  144. package/dist/commands/shared/list-entries.js +12 -12
  145. package/dist/commands/shared/name-utils.d.ts +1 -1
  146. package/dist/commands/shared/name-utils.js +13 -13
  147. package/dist/commands/shared/remove-entries.d.ts +16 -16
  148. package/dist/commands/shared/remove-entries.js +41 -41
  149. package/dist/icons/index.d.ts +1 -1
  150. package/dist/icons/index.js +1 -1
  151. package/dist/icons/libraries.d.ts +37 -37
  152. package/dist/icons/libraries.js +34 -34
  153. package/dist/index.d.ts +2 -2
  154. package/dist/index.js +30 -30
  155. package/dist/lib/__tests__/config.test.d.ts +1 -0
  156. package/dist/lib/__tests__/config.test.js +49 -0
  157. package/dist/lib/__tests__/config.test.js.map +1 -0
  158. package/dist/lib/__tests__/install.test.d.ts +1 -0
  159. package/dist/lib/__tests__/install.test.js +149 -0
  160. package/dist/lib/__tests__/install.test.js.map +1 -0
  161. package/dist/lib/__tests__/lockfile.test.d.ts +1 -0
  162. package/dist/lib/__tests__/lockfile.test.js +89 -0
  163. package/dist/lib/__tests__/lockfile.test.js.map +1 -0
  164. package/dist/lib/__tests__/paths.test.d.ts +1 -0
  165. package/dist/lib/__tests__/paths.test.js +39 -0
  166. package/dist/lib/__tests__/paths.test.js.map +1 -0
  167. package/dist/lib/__tests__/registry.test.d.ts +1 -0
  168. package/dist/lib/__tests__/registry.test.js +76 -0
  169. package/dist/lib/__tests__/registry.test.js.map +1 -0
  170. package/dist/lib/config.d.ts +45 -45
  171. package/dist/lib/config.js +97 -97
  172. package/dist/lib/fs.d.ts +76 -76
  173. package/dist/lib/fs.js +302 -302
  174. package/dist/lib/highlighter.d.ts +6 -6
  175. package/dist/lib/highlighter.js +7 -7
  176. package/dist/lib/install.d.ts +19 -19
  177. package/dist/lib/install.js +55 -55
  178. package/dist/lib/lockfile.d.ts +63 -63
  179. package/dist/lib/lockfile.js +173 -173
  180. package/dist/lib/logger.d.ts +8 -8
  181. package/dist/lib/logger.js +41 -41
  182. package/dist/lib/paths.d.ts +14 -14
  183. package/dist/lib/paths.js +31 -31
  184. package/dist/lib/registry.d.ts +35 -35
  185. package/dist/lib/registry.js +180 -180
  186. package/dist/schema/index.d.ts +1128 -1128
  187. package/dist/schema/index.js +238 -238
  188. package/dist/styles/create-style-map.d.ts +4 -4
  189. package/dist/styles/create-style-map.js +68 -68
  190. package/dist/styles/transform-style-map.d.ts +3 -3
  191. package/dist/styles/transform-style-map.js +428 -428
  192. package/dist/styles/transform.d.ts +10 -10
  193. package/dist/styles/transform.js +15 -15
  194. package/dist/utils/index.d.ts +6 -6
  195. package/dist/utils/index.js +5 -5
  196. package/dist/utils/transformers/transform-icons.d.ts +2 -2
  197. package/dist/utils/transformers/transform-icons.js +164 -164
  198. package/dist/utils/transformers/transform-menu.d.ts +2 -2
  199. package/dist/utils/transformers/transform-menu.js +39 -39
  200. package/dist/utils/transformers/transform-render.d.ts +2 -2
  201. package/dist/utils/transformers/transform-render.js +97 -97
  202. package/dist/utils/transformers/types.d.ts +14 -14
  203. package/dist/utils/transformers/types.js +1 -1
  204. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- import { detect } from "@antfu/ni";
2
- export async function detectPackageManager(cwd) {
3
- return (await detect({ cwd })) || "npm";
4
- }
1
+ import { detect } from "@antfu/ni";
2
+ export async function detectPackageManager(cwd) {
3
+ return (await detect({ cwd })) || "npm";
4
+ }
5
5
  //# sourceMappingURL=package-manager.js.map
@@ -1,2 +1,2 @@
1
- import type { AddConfig } from "./types.js";
2
- export declare function ensureProjectFiles(cwd: string, config: AddConfig): Promise<void>;
1
+ import type { AddConfig } from "./types.js";
2
+ export declare function ensureProjectFiles(cwd: string, config: AddConfig): Promise<void>;
@@ -1,18 +1,18 @@
1
- import path from "node:path";
2
- import { copyFileSafe, fileExists } from "../../lib/fs.js";
3
- import { resolveTemplatePath } from "../../lib/paths.js";
4
- import { resolveRegistrySource } from "../../lib/registry.js";
5
- import { inferScriptExtension } from "./config.js";
6
- export async function ensureProjectFiles(cwd, config) {
7
- const { templatesPath } = resolveRegistrySource(config, cwd);
8
- const utilsPath = path.resolve(cwd, config.paths.utils);
9
- if (!(await fileExists(utilsPath))) {
10
- const ext = inferScriptExtension(config);
11
- await copyFileSafe(resolveTemplatePath(`lib/utils.${ext}`, templatesPath), utilsPath, true);
12
- }
13
- const stylesPath = path.resolve(cwd, config.paths.styles);
14
- if (!(await fileExists(stylesPath))) {
15
- await copyFileSafe(resolveTemplatePath("styles/globals.css", templatesPath), stylesPath, true);
16
- }
17
- }
1
+ import path from "node:path";
2
+ import { copyFileSafe, fileExists } from "../../lib/fs.js";
3
+ import { resolveTemplatePath } from "../../lib/paths.js";
4
+ import { resolveRegistrySource } from "../../lib/registry.js";
5
+ import { inferScriptExtension } from "./config.js";
6
+ export async function ensureProjectFiles(cwd, config) {
7
+ const { templatesPath } = resolveRegistrySource(config, cwd);
8
+ const utilsPath = path.resolve(cwd, config.paths.utils);
9
+ if (!(await fileExists(utilsPath))) {
10
+ const ext = inferScriptExtension(config);
11
+ await copyFileSafe(resolveTemplatePath(`lib/utils.${ext}`, templatesPath), utilsPath, true);
12
+ }
13
+ const stylesPath = path.resolve(cwd, config.paths.styles);
14
+ if (!(await fileExists(stylesPath))) {
15
+ await copyFileSafe(resolveTemplatePath("styles/globals.css", templatesPath), stylesPath, true);
16
+ }
17
+ }
18
18
  //# sourceMappingURL=project-files.js.map
@@ -1,3 +1,3 @@
1
- export declare function confirmInstallation(what: string): Promise<boolean>;
2
- export declare function confirmOverwrite(): Promise<boolean>;
3
- export declare function confirmDependencyInstallation(dependencies: Set<string>): Promise<boolean>;
1
+ export declare function confirmInstallation(what: string): Promise<boolean>;
2
+ export declare function confirmOverwrite(): Promise<boolean>;
3
+ export declare function confirmDependencyInstallation(dependencies: Set<string>): Promise<boolean>;
@@ -1,29 +1,29 @@
1
- import prompts from "prompts";
2
- export async function confirmInstallation(what) {
3
- const { confirmed } = await prompts({
4
- type: "confirm",
5
- name: "confirmed",
6
- message: `Install ${what}?`,
7
- initial: true
8
- });
9
- return confirmed;
10
- }
11
- export async function confirmOverwrite() {
12
- const { overwrite } = await prompts({
13
- type: "confirm",
14
- name: "overwrite",
15
- message: "Overwrite existing components?",
16
- initial: false
17
- });
18
- return overwrite;
19
- }
20
- export async function confirmDependencyInstallation(dependencies) {
21
- const { shouldInstall } = await prompts({
22
- type: "confirm",
23
- name: "shouldInstall",
24
- message: `Install ${dependencies.size} npm package${dependencies.size > 1 ? "s" : ""}?`,
25
- initial: true
26
- });
27
- return shouldInstall;
28
- }
1
+ import prompts from "prompts";
2
+ export async function confirmInstallation(what) {
3
+ const { confirmed } = await prompts({
4
+ type: "confirm",
5
+ name: "confirmed",
6
+ message: `Install ${what}?`,
7
+ initial: true
8
+ });
9
+ return confirmed;
10
+ }
11
+ export async function confirmOverwrite() {
12
+ const { overwrite } = await prompts({
13
+ type: "confirm",
14
+ name: "overwrite",
15
+ message: "Overwrite existing components?",
16
+ initial: false
17
+ });
18
+ return overwrite;
19
+ }
20
+ export async function confirmDependencyInstallation(dependencies) {
21
+ const { shouldInstall } = await prompts({
22
+ type: "confirm",
23
+ name: "shouldInstall",
24
+ message: `Install ${dependencies.size} npm package${dependencies.size > 1 ? "s" : ""}?`,
25
+ initial: true
26
+ });
27
+ return shouldInstall;
28
+ }
29
29
  //# sourceMappingURL=prompts.js.map
@@ -1,4 +1,4 @@
1
- import type { RegistryIndex } from "../../lib/registry.js";
2
- import type { ComponentMap } from "./types.js";
3
- export declare function getComponentNames(registry: RegistryIndex): string[];
4
- export declare function createComponentMap(registry: RegistryIndex): ComponentMap;
1
+ import type { RegistryIndex } from "../../lib/registry.js";
2
+ import type { ComponentMap } from "./types.js";
3
+ export declare function getComponentNames(registry: RegistryIndex): string[];
4
+ export declare function createComponentMap(registry: RegistryIndex): ComponentMap;
@@ -1,7 +1,7 @@
1
- export function getComponentNames(registry) {
2
- return registry.components.map((component) => component.name);
3
- }
4
- export function createComponentMap(registry) {
5
- return new Map(registry.components.map((component) => [component.name, component]));
6
- }
1
+ export function getComponentNames(registry) {
2
+ return registry.components.map((component) => component.name);
3
+ }
4
+ export function createComponentMap(registry) {
5
+ return new Map(registry.components.map((component) => [component.name, component]));
6
+ }
7
7
  //# sourceMappingURL=registry.js.map
@@ -1,33 +1,33 @@
1
- import type { TrixUIConfig } from "../../lib/config.js";
2
- import type { RegistryItem } from "../../lib/registry.js";
3
- export interface AddOptions {
4
- force?: boolean;
5
- yes?: boolean;
6
- silent?: boolean;
7
- skipDeps?: boolean;
8
- cwd?: string;
9
- }
10
- export interface InstallationResult {
11
- installed: string[];
12
- skipped: string[];
13
- failed: string[];
14
- npmDependencies: Set<string>;
15
- conflicts: string[];
16
- }
17
- export interface ComponentValidation {
18
- valid: string[];
19
- invalid: string[];
20
- suggestions: string[];
21
- }
22
- export interface DependencyAnalysis {
23
- components: string[];
24
- dependencies: Set<string>;
25
- npmDependencies: Set<string>;
26
- conflicts: string[];
27
- totalToInstall: number;
28
- missingDependencies: string[];
29
- }
30
- export type AddConfig = TrixUIConfig & {
31
- typescript?: boolean;
32
- };
33
- export type ComponentMap = Map<string, RegistryItem>;
1
+ import type { TrixUIConfig } from "../../lib/config.js";
2
+ import type { RegistryItem } from "../../lib/registry.js";
3
+ export interface AddOptions {
4
+ force?: boolean;
5
+ yes?: boolean;
6
+ silent?: boolean;
7
+ skipDeps?: boolean;
8
+ cwd?: string;
9
+ }
10
+ export interface InstallationResult {
11
+ installed: string[];
12
+ skipped: string[];
13
+ failed: string[];
14
+ npmDependencies: Set<string>;
15
+ conflicts: string[];
16
+ }
17
+ export interface ComponentValidation {
18
+ valid: string[];
19
+ invalid: string[];
20
+ suggestions: string[];
21
+ }
22
+ export interface DependencyAnalysis {
23
+ components: string[];
24
+ dependencies: Set<string>;
25
+ npmDependencies: Set<string>;
26
+ conflicts: string[];
27
+ totalToInstall: number;
28
+ missingDependencies: string[];
29
+ }
30
+ export type AddConfig = TrixUIConfig & {
31
+ typescript?: boolean;
32
+ };
33
+ export type ComponentMap = Map<string, RegistryItem>;
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=types.js.map
@@ -1,4 +1,4 @@
1
- import type { AddOptions, DependencyAnalysis, InstallationResult } from "./types.js";
2
- export declare function displayInstallationPlan(analysis: DependencyAnalysis, options: AddOptions): void;
3
- export declare function displayManualInstallInstructions(dependencies: Set<string>, cwd: string): Promise<void>;
4
- export declare function displayResults(result: InstallationResult, options: AddOptions): void;
1
+ import type { AddOptions, DependencyAnalysis, InstallationResult } from "./types.js";
2
+ export declare function displayInstallationPlan(analysis: DependencyAnalysis, options: AddOptions): void;
3
+ export declare function displayManualInstallInstructions(dependencies: Set<string>, cwd: string): Promise<void>;
4
+ export declare function displayResults(result: InstallationResult, options: AddOptions): void;
@@ -1,56 +1,56 @@
1
- import chalk from "chalk";
2
- import { detectPackageManager } from "./package-manager.js";
3
- export function displayInstallationPlan(analysis, options) {
4
- const totalToInstall = options.force
5
- ? analysis.components.length
6
- : analysis.totalToInstall;
7
- console.log("\n" + chalk.bold("Installation Plan:"));
8
- console.log(chalk.gray("\u00c4".repeat(50)));
9
- console.log(`${chalk.cyan("Components to install:")} ${chalk.white(totalToInstall)}`);
10
- if (analysis.dependencies.size > 0) {
11
- console.log(`${chalk.cyan("Additional dependencies:")} ${chalk.white(analysis.dependencies.size)}`);
12
- console.log(chalk.gray(` ${Array.from(analysis.dependencies).join(", ")}`));
13
- }
14
- if (analysis.npmDependencies.size > 0) {
15
- console.log(`${chalk.cyan("NPM packages required:")} ${chalk.white(analysis.npmDependencies.size)}`);
16
- console.log(chalk.gray(` ${Array.from(analysis.npmDependencies).join(", ")}`));
17
- }
18
- if (analysis.missingDependencies.length > 0) {
19
- console.log(`${chalk.red("Missing registry dependencies:")} ${chalk.white(analysis.missingDependencies.length)}`);
20
- console.log(chalk.gray(` ${analysis.missingDependencies.join(", ")}`));
21
- }
22
- if (analysis.conflicts.length > 0 && !options.force) {
23
- console.log(`${chalk.yellow("Conflicts detected:")} ${chalk.white(analysis.conflicts.length)}`);
24
- console.log(chalk.gray(` ${analysis.conflicts.join(", ")}`));
25
- }
26
- console.log(chalk.gray("\u00c4".repeat(50)) + "\n");
27
- }
28
- export async function displayManualInstallInstructions(dependencies, cwd) {
29
- const packageManager = await detectPackageManager(cwd);
30
- const installCmd = packageManager === "npm" ? "install" : "add";
31
- console.log(chalk.yellow("\nPlease install the following dependencies:"));
32
- console.log(chalk.cyan(`${packageManager} ${installCmd} ${Array.from(dependencies).join(" ")}`));
33
- console.log();
34
- }
35
- export function displayResults(result, options) {
36
- console.log("\n" + chalk.bold("Installation Results:"));
37
- console.log(chalk.gray("\u00c4".repeat(50)));
38
- if (result.installed.length > 0) {
39
- console.log(chalk.green(`\u00fb Installed (${result.installed.length}):`));
40
- result.installed.forEach((name) => console.log(chalk.gray(` \u0007 ${name}`)));
41
- }
42
- if (result.skipped.length > 0 && !options.force) {
43
- console.log(chalk.yellow(`? Skipped (${result.skipped.length}):`));
44
- result.skipped.forEach((name) => console.log(chalk.gray(` \u0007 ${name} (already exists)`)));
45
- }
46
- if (result.failed.length > 0) {
47
- console.log(chalk.red(`? Failed (${result.failed.length}):`));
48
- result.failed.forEach((name) => console.log(chalk.gray(` \u0007 ${name}`)));
49
- }
50
- console.log(chalk.gray("\u00c4".repeat(50)));
51
- if (result.installed.length > 0) {
52
- console.log(chalk.green.bold(`\n\u00fb Successfully installed ${result.installed.length} component${result.installed.length !== 1 ? "s" : ""}!`));
53
- }
54
- console.log();
55
- }
1
+ import chalk from "chalk";
2
+ import { detectPackageManager } from "./package-manager.js";
3
+ export function displayInstallationPlan(analysis, options) {
4
+ const totalToInstall = options.force
5
+ ? analysis.components.length
6
+ : analysis.totalToInstall;
7
+ console.log("\n" + chalk.bold("Installation Plan:"));
8
+ console.log(chalk.gray("\u00c4".repeat(50)));
9
+ console.log(`${chalk.cyan("Components to install:")} ${chalk.white(totalToInstall)}`);
10
+ if (analysis.dependencies.size > 0) {
11
+ console.log(`${chalk.cyan("Additional dependencies:")} ${chalk.white(analysis.dependencies.size)}`);
12
+ console.log(chalk.gray(` ${Array.from(analysis.dependencies).join(", ")}`));
13
+ }
14
+ if (analysis.npmDependencies.size > 0) {
15
+ console.log(`${chalk.cyan("NPM packages required:")} ${chalk.white(analysis.npmDependencies.size)}`);
16
+ console.log(chalk.gray(` ${Array.from(analysis.npmDependencies).join(", ")}`));
17
+ }
18
+ if (analysis.missingDependencies.length > 0) {
19
+ console.log(`${chalk.red("Missing registry dependencies:")} ${chalk.white(analysis.missingDependencies.length)}`);
20
+ console.log(chalk.gray(` ${analysis.missingDependencies.join(", ")}`));
21
+ }
22
+ if (analysis.conflicts.length > 0 && !options.force) {
23
+ console.log(`${chalk.yellow("Conflicts detected:")} ${chalk.white(analysis.conflicts.length)}`);
24
+ console.log(chalk.gray(` ${analysis.conflicts.join(", ")}`));
25
+ }
26
+ console.log(chalk.gray("\u00c4".repeat(50)) + "\n");
27
+ }
28
+ export async function displayManualInstallInstructions(dependencies, cwd) {
29
+ const packageManager = await detectPackageManager(cwd);
30
+ const installCmd = packageManager === "npm" ? "install" : "add";
31
+ console.log(chalk.yellow("\nPlease install the following dependencies:"));
32
+ console.log(chalk.cyan(`${packageManager} ${installCmd} ${Array.from(dependencies).join(" ")}`));
33
+ console.log();
34
+ }
35
+ export function displayResults(result, options) {
36
+ console.log("\n" + chalk.bold("Installation Results:"));
37
+ console.log(chalk.gray("\u00c4".repeat(50)));
38
+ if (result.installed.length > 0) {
39
+ console.log(chalk.green(`\u00fb Installed (${result.installed.length}):`));
40
+ result.installed.forEach((name) => console.log(chalk.gray(` \u0007 ${name}`)));
41
+ }
42
+ if (result.skipped.length > 0 && !options.force) {
43
+ console.log(chalk.yellow(`? Skipped (${result.skipped.length}):`));
44
+ result.skipped.forEach((name) => console.log(chalk.gray(` \u0007 ${name} (already exists)`)));
45
+ }
46
+ if (result.failed.length > 0) {
47
+ console.log(chalk.red(`? Failed (${result.failed.length}):`));
48
+ result.failed.forEach((name) => console.log(chalk.gray(` \u0007 ${name}`)));
49
+ }
50
+ console.log(chalk.gray("\u00c4".repeat(50)));
51
+ if (result.installed.length > 0) {
52
+ console.log(chalk.green.bold(`\n\u00fb Successfully installed ${result.installed.length} component${result.installed.length !== 1 ? "s" : ""}!`));
53
+ }
54
+ console.log();
55
+ }
56
56
  //# sourceMappingURL=ui.js.map
@@ -1,3 +1,3 @@
1
- import type { RegistryIndex } from "../../lib/registry.js";
2
- import type { ComponentValidation } from "./types.js";
3
- export declare function validateComponents(components: string[], registry: RegistryIndex): ComponentValidation;
1
+ import type { RegistryIndex } from "../../lib/registry.js";
2
+ import type { ComponentValidation } from "./types.js";
3
+ export declare function validateComponents(components: string[], registry: RegistryIndex): ComponentValidation;
@@ -1,31 +1,31 @@
1
- import { createComponentMap, getComponentNames } from "./registry.js";
2
- export function validateComponents(components, registry) {
3
- const valid = [];
4
- const invalid = [];
5
- const suggestions = [];
6
- const componentMap = createComponentMap(registry);
7
- const availableComponents = getComponentNames(registry);
8
- for (const component of components) {
9
- const trimmed = component.trim();
10
- if (!trimmed) {
11
- continue;
12
- }
13
- if (componentMap.has(trimmed)) {
14
- valid.push(trimmed);
15
- continue;
16
- }
17
- invalid.push(trimmed);
18
- const lower = trimmed.toLowerCase();
19
- const similar = availableComponents.filter((name) => {
20
- const candidate = name.toLowerCase();
21
- return candidate.includes(lower) || lower.includes(candidate);
22
- });
23
- suggestions.push(...similar);
24
- }
25
- return {
26
- valid,
27
- invalid,
28
- suggestions: [...new Set(suggestions)]
29
- };
30
- }
1
+ import { createComponentMap, getComponentNames } from "./registry.js";
2
+ export function validateComponents(components, registry) {
3
+ const valid = [];
4
+ const invalid = [];
5
+ const suggestions = [];
6
+ const componentMap = createComponentMap(registry);
7
+ const availableComponents = getComponentNames(registry);
8
+ for (const component of components) {
9
+ const trimmed = component.trim();
10
+ if (!trimmed) {
11
+ continue;
12
+ }
13
+ if (componentMap.has(trimmed)) {
14
+ valid.push(trimmed);
15
+ continue;
16
+ }
17
+ invalid.push(trimmed);
18
+ const lower = trimmed.toLowerCase();
19
+ const similar = availableComponents.filter((name) => {
20
+ const candidate = name.toLowerCase();
21
+ return candidate.includes(lower) || lower.includes(candidate);
22
+ });
23
+ suggestions.push(...similar);
24
+ }
25
+ return {
26
+ valid,
27
+ invalid,
28
+ suggestions: [...new Set(suggestions)]
29
+ };
30
+ }
31
31
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- export * from "./shared/add-collection.js";
1
+ export * from "./shared/add-collection.js";
@@ -1,2 +1,2 @@
1
- export * from "./shared/add-collection.js";
1
+ export * from "./shared/add-collection.js";
2
2
  //# sourceMappingURL=add-collection.js.map
@@ -1,2 +1,2 @@
1
- import { Command } from "commander";
2
- export declare const addCompositeCommand: Command;
1
+ import { Command } from "commander";
2
+ export declare const addCompositeCommand: Command;