trix-ui 0.2.0 → 0.2.2

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 (84) hide show
  1. package/README.md +110 -19
  2. package/dist/commands/add/__tests__/add.test.js +18 -6
  3. package/dist/commands/add/__tests__/add.test.js.map +1 -1
  4. package/dist/commands/add/analysis.js +6 -1
  5. package/dist/commands/add/analysis.js.map +1 -1
  6. package/dist/commands/add/command.js +6 -0
  7. package/dist/commands/add/command.js.map +1 -1
  8. package/dist/commands/add/types.d.ts +1 -0
  9. package/dist/commands/add/ui.js +4 -0
  10. package/dist/commands/add/ui.js.map +1 -1
  11. package/dist/commands/add-composite.d.ts +2 -0
  12. package/dist/commands/add-composite.js +202 -0
  13. package/dist/commands/add-composite.js.map +1 -0
  14. package/dist/commands/add-section.js +6 -0
  15. package/dist/commands/add-section.js.map +1 -1
  16. package/dist/commands/add-wrapper.js +7 -1
  17. package/dist/commands/add-wrapper.js.map +1 -1
  18. package/dist/commands/doctor.js +9 -4
  19. package/dist/commands/doctor.js.map +1 -1
  20. package/dist/commands/init/config.js +1 -0
  21. package/dist/commands/init/config.js.map +1 -1
  22. package/dist/commands/list-sections.js +2 -7
  23. package/dist/commands/list-sections.js.map +1 -1
  24. package/dist/commands/list-wrappers.js +2 -7
  25. package/dist/commands/list-wrappers.js.map +1 -1
  26. package/dist/commands/list.js +51 -8
  27. package/dist/commands/list.js.map +1 -1
  28. package/dist/commands/remove-section.js +9 -34
  29. package/dist/commands/remove-section.js.map +1 -1
  30. package/dist/commands/remove-wrapper.js +9 -34
  31. package/dist/commands/remove-wrapper.js.map +1 -1
  32. package/dist/commands/remove.js +71 -38
  33. package/dist/commands/remove.js.map +1 -1
  34. package/dist/commands/shared/add-collection.d.ts +2 -1
  35. package/dist/commands/shared/add-collection.js +10 -13
  36. package/dist/commands/shared/add-collection.js.map +1 -1
  37. package/dist/commands/shared/list-entries.d.ts +6 -0
  38. package/dist/commands/shared/list-entries.js +13 -0
  39. package/dist/commands/shared/list-entries.js.map +1 -0
  40. package/dist/commands/shared/name-utils.d.ts +1 -0
  41. package/dist/commands/shared/name-utils.js +14 -0
  42. package/dist/commands/shared/name-utils.js.map +1 -0
  43. package/dist/commands/shared/remove-entries.d.ts +16 -0
  44. package/dist/commands/shared/remove-entries.js +42 -0
  45. package/dist/commands/shared/remove-entries.js.map +1 -0
  46. package/dist/index.js +11 -8
  47. package/dist/index.js.map +1 -1
  48. package/dist/lib/config.d.ts +1 -0
  49. package/dist/lib/config.js +1 -0
  50. package/dist/lib/config.js.map +1 -1
  51. package/dist/lib/install.js +14 -7
  52. package/dist/lib/install.js.map +1 -1
  53. package/dist/lib/lockfile.d.ts +6 -5
  54. package/dist/lib/lockfile.js +26 -7
  55. package/dist/lib/lockfile.js.map +1 -1
  56. package/dist/lib/paths.d.ts +1 -0
  57. package/dist/lib/paths.js +1 -0
  58. package/dist/lib/paths.js.map +1 -1
  59. package/dist/lib/registry.d.ts +3 -0
  60. package/dist/lib/registry.js +15 -0
  61. package/dist/lib/registry.js.map +1 -1
  62. package/package.json +12 -12
  63. package/registry/index.json +67 -128
  64. package/templates/components/ui/avatar.tsx +109 -0
  65. package/templates/components/ui/button.tsx +48 -44
  66. package/templates/components/ui/label.tsx +24 -0
  67. package/templates/composites/feature-collection-card.tsx +113 -0
  68. package/templates/composites/music-player-card.tsx +221 -0
  69. package/templates/composites/user-profile-card.tsx +145 -0
  70. package/templates/sections/modern-hero.tsx +1226 -0
  71. package/templates/wrappers/Interative-wrapper.tsx +555 -0
  72. package/LICENSE.md +0 -21
  73. package/templates/components/ui/checkbox.tsx +0 -33
  74. package/templates/components/ui/dialog.tsx +0 -92
  75. package/templates/components/ui/dropdown.tsx +0 -75
  76. package/templates/components/ui/select.tsx +0 -24
  77. package/templates/components/ui/switch.tsx +0 -27
  78. package/templates/components/ui/toast.tsx +0 -100
  79. package/templates/sections/cta.tsx +0 -22
  80. package/templates/sections/feature-grid.tsx +0 -62
  81. package/templates/sections/hero.tsx +0 -63
  82. package/templates/wrappers/border-wrapper.tsx +0 -34
  83. package/templates/wrappers/glow-wrapper.tsx +0 -31
  84. package/templates/wrappers/lift-wrapper.tsx +0 -27
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # trix-ui
1
+ <!-- # trix-ui
2
2
 
3
3
  A small, registry-driven CLI that installs minimal, accessible UI components into your app.
4
4
 
@@ -23,33 +23,104 @@ npx trix-ui add button card dialog
23
23
  npx trix-ui add-section hero
24
24
  npx trix-ui add-wrapper glow-wrapper
25
25
  npx trix-ui remove button
26
- npx trix-ui remove-section hero
27
- npx trix-ui remove-wrapper glow-wrapper
26
+ npx trix-ui remove --section hero
27
+ npx trix-ui remove --wrapper glow-wrapper
28
28
  npx trix-ui list
29
- npx trix-ui list-sections
30
- npx trix-ui list-wrappers
29
+ npx trix-ui list --type sections
30
+ npx trix-ui list --type wrappers
31
31
  npx trix-ui doctor
32
32
  ```
33
33
 
34
+ ## How it works (detailed)
35
+
36
+ ### High-level model
37
+ `trix-ui` is a registry-driven CLI. It installs UI assets into your app by copying
38
+ templates and recording those installs in a lockfile. The registry is a JSON catalog
39
+ of components, sections, wrappers, and composites. Each entry describes:
40
+ - which template files to copy
41
+ - where those files should land in your project
42
+ - any local or npm dependencies
43
+
44
+ ### Core files and directories
45
+ When you run `ui init`, the CLI prepares a project for installs:
46
+ - `trix-ui.json` (config)
47
+ - `components/ui`, `components/sections`, `components/wrappers`, `components/composites`
48
+ - `lib/utils.ts`
49
+ - `styles/globals.css`
50
+ - `.ui/lock.json` (install tracking)
51
+
52
+ The lockfile is the source of truth for what the CLI has installed and is used
53
+ to safely remove files later.
54
+
55
+ ### Data flow (install)
56
+ 1. Resolve working directory (`--cwd` or `process.cwd()`).
57
+ 2. Load config from `trix-ui.json` (merged with defaults).
58
+ 3. Load registry (bundled by default or local if configured).
59
+ 4. Load lockfile (creates empty lockfile if none exists).
60
+ 5. Validate inputs (normalize names and verify registry entries).
61
+ 6. Analyze dependencies:
62
+ - `dependencies.local` installs other registry components first.
63
+ - `dependencies.npm` are collected for optional install.
64
+ 7. Handle conflicts (existing files/lockfile entries) with prompts, or `--force`.
65
+ 8. Copy templates into target paths.
66
+ 9. Update lockfile with installed entries and files.
67
+ 10. Optionally install npm dependencies (`--skip-deps` to skip).
68
+
69
+ ### Dependency resolution
70
+ - **Local dependencies** (`dependencies.local`) are other registry components and
71
+ are installed before sections/wrappers/composites.
72
+ - **NPM dependencies** (`dependencies.npm`) are optional and can be installed
73
+ by the CLI via your package manager.
74
+
75
+ ### Conflict handling
76
+ If a target file already exists or an entry is in the lockfile:
77
+ - Default: skip and warn.
78
+ - `--force`: overwrite files and update lockfile entries.
79
+ - `--yes`: auto-confirm prompts.
80
+
81
+ ### Safe removal
82
+ - `ui remove` and related commands remove only files tracked in `.ui/lock.json`.
83
+ - `--force` removes files based on registry targets even if not tracked.
84
+
85
+ ### Registry resolution
86
+ - **Bundled registry** (default): packaged with the CLI (`registry/index.json`).
87
+ - **Local registry**: configure `registry` in `trix-ui.json` to point to a custom
88
+ registry file (and optional templates path).
89
+
90
+ ### Tokens and path resolution
91
+ Registry `target` fields support tokens:
92
+ `{{components}}`, `{{sections}}`, `{{wrappers}}`, `{{composites}}`, `{{lib}}`, `{{styles}}`.
93
+ Tokens are resolved using `trix-ui.json` paths, then converted to absolute paths.
94
+ Note: `{{lib}}` resolves to the `paths.utils` file path.
95
+
96
+ ### Doctor command
97
+ `ui doctor` checks:
98
+ - config presence and validity
99
+ - required directories/files
100
+ - registry load errors
101
+ - lockfile existence
102
+
34
103
  ## Commands
35
104
 
36
- - `ui init` - Creates `components.json`, `components/ui`, `lib/utils.ts`, `styles/globals.css`, and `.ui/lock.json`.
105
+ - `ui init` - Creates `trix-ui.json`, `components/ui`, `lib/utils.ts`, `styles/globals.css`, and `.ui/lock.json`.
37
106
  - `ui add <component...>` - Copies templates into `components/ui` and updates `.ui/lock.json`.
38
107
  - `ui add-section <section...>` - Copies section templates into `components/sections` and updates `.ui/lock.json`.
39
108
  - `ui add-wrapper <wrapper...>` - Copies wrapper templates into `components/wrappers` and updates `.ui/lock.json`.
109
+ - `ui add-composite <composite...>` - Copies composite templates into `components/composites` and updates `.ui/lock.json`.
40
110
  - `ui remove <component...>` - Removes only files tracked in `.ui/lock.json` (safe by default).
41
- - `ui remove-section <section...>` - Removes only section files tracked in `.ui/lock.json` (safe by default).
42
- - `ui remove-wrapper <wrapper...>` - Removes only wrapper files tracked in `.ui/lock.json` (safe by default).
43
- - `ui list` - Lists registry components.
44
- - `ui list-sections` - Lists registry sections.
45
- - `ui list-wrappers` - Lists registry wrappers.
111
+ - `ui remove --section <section...>` - Removes only section files tracked in `.ui/lock.json` (safe by default).
112
+ - `ui remove --wrapper <wrapper...>` - Removes only wrapper files tracked in `.ui/lock.json` (safe by default).
113
+ - `ui remove --composite <composite...>` - Removes only composite files tracked in `.ui/lock.json` (safe by default).
114
+ - `ui list` - Lists registry components, sections, wrappers, and composites.
115
+ - `ui list --type sections` - Lists registry sections only.
116
+ - `ui list --type wrappers` - Lists registry wrappers only.
117
+ - `ui list --type composites` - Lists registry composites only.
46
118
  - `ui doctor` - Checks config, registry, and required files.
47
119
 
48
- ## Config (components.json)
120
+ ## Config (trix-ui.json)
49
121
 
50
122
  ```json
51
123
  {
52
- "schemaVersion": 1,
53
124
  "registry": {
54
125
  "type": "bundled"
55
126
  },
@@ -57,7 +128,7 @@ npx trix-ui doctor
57
128
  "components": "components/ui",
58
129
  "sections": "components/sections",
59
130
  "wrappers": "components/wrappers",
60
- "lib": "lib",
131
+ "composites": "components/composites",
61
132
  "utils": "lib/utils.ts",
62
133
  "styles": "styles/globals.css"
63
134
  },
@@ -118,13 +189,28 @@ Notes:
118
189
  }
119
190
  ]
120
191
  }
192
+ ],
193
+ "composites": [
194
+ {
195
+ "name": "marketing-stack",
196
+ "description": "Composite layout for stacked marketing sections.",
197
+ "files": [
198
+ {
199
+ "source": "composites/marketing-stack.tsx",
200
+ "target": "{{composites}}/marketing-stack.tsx"
201
+ }
202
+ ],
203
+ "dependencies": {
204
+ "local": ["button", "card"]
205
+ }
206
+ }
121
207
  ]
122
208
  }
123
209
  ```
124
210
 
125
211
  - `source` is relative to `templates/`.
126
- - `target` supports tokens: `{{components}}`, `{{sections}}`, `{{wrappers}}`, `{{lib}}`, `{{styles}}`.
127
- - `dependencies.local` installs registry components before the section or wrapper.
212
+ - `target` supports tokens: `{{components}}`, `{{sections}}`, `{{wrappers}}`, `{{composites}}`, `{{lib}}`, `{{styles}}`.
213
+ - `dependencies.local` installs registry components before the section, wrapper, or composite.
128
214
  - `dependencies.npm` are printed after install; you install them manually.
129
215
 
130
216
  ## Add a new component
@@ -145,6 +231,12 @@ Notes:
145
231
  2. Add a registry entry in `registry/index.json` under `wrappers`.
146
232
  3. Run `ui add-wrapper <name>` in your app.
147
233
 
234
+ ## Add a new composite
235
+
236
+ 1. Create a template in `templates/composites/<name>.tsx`.
237
+ 2. Add a registry entry in `registry/index.json` under `composites`.
238
+ 3. Run `ui add-composite <name>` in your app.
239
+
148
240
  ## Tailwind setup
149
241
 
150
242
  Add CSS variables in `styles/globals.css` (installed by `ui init`).
@@ -202,7 +294,7 @@ export default {
202
294
  ## Troubleshooting
203
295
 
204
296
  `ui doctor` reports common issues:
205
- - missing `components.json`
297
+ - missing `trix-ui.json`
206
298
  - missing `components/ui` directory
207
299
  - missing `lib/utils.ts` or `styles/globals.css`
208
300
  - registry load failures
@@ -211,5 +303,4 @@ export default {
211
303
  ## Notes
212
304
 
213
305
  - Requires Node 18+ for built-in `fetch`.
214
- - Paths are stored in `.ui/lock.json` relative to the project root for Windows/Mac safety.
215
-
306
+ - Paths are stored in `.ui/lock.json` relative to the project root for Windows/Mac safety. -->
@@ -1,7 +1,7 @@
1
1
  import { describe, it, expect, vi, beforeEach } from "vitest";
2
+ import { addCommand } from "../../add.js";
2
3
  import "./__mocks__/cli-mocks.js";
3
4
  import "./add.mocks.js";
4
- import { addCommand } from "../../add.js";
5
5
  import { analyzeDependencies, directoryExists, getComponentNames, installComponents, loadConfig, loadLockfile, loadRegistry, validateComponents } from "./add.mocks.js";
6
6
  describe("add command", () => {
7
7
  beforeEach(() => {
@@ -37,8 +37,11 @@ describe("add command", () => {
37
37
  });
38
38
  analyzeDependencies.mockReturnValue({
39
39
  components: ["button"],
40
+ dependencies: new Set(),
41
+ npmDependencies: new Set(),
40
42
  conflicts: [],
41
- totalToInstall: 1
43
+ totalToInstall: 1,
44
+ missingDependencies: []
42
45
  });
43
46
  installComponents.mockResolvedValue({
44
47
  installed: ["button"],
@@ -61,8 +64,11 @@ describe("add command", () => {
61
64
  });
62
65
  analyzeDependencies.mockReturnValue({
63
66
  components: ["button", "card"],
67
+ dependencies: new Set(),
68
+ npmDependencies: new Set(),
64
69
  conflicts: [],
65
- totalToInstall: 2
70
+ totalToInstall: 2,
71
+ missingDependencies: []
66
72
  });
67
73
  installComponents.mockResolvedValue({
68
74
  installed: ["button", "card"],
@@ -84,8 +90,11 @@ describe("add command", () => {
84
90
  });
85
91
  analyzeDependencies.mockReturnValue({
86
92
  components: ["button"],
93
+ dependencies: new Set(),
94
+ npmDependencies: new Set(),
87
95
  conflicts: ["button"],
88
- totalToInstall: 0
96
+ totalToInstall: 0,
97
+ missingDependencies: []
89
98
  });
90
99
  installComponents.mockResolvedValue({
91
100
  installed: ["button"],
@@ -113,9 +122,12 @@ describe("add command", () => {
113
122
  suggestions: []
114
123
  });
115
124
  analyzeDependencies.mockReturnValue({
116
- components: ["button"],
125
+ components: ["hbutton"],
126
+ dependencies: new Set(),
127
+ npmDependencies: new Set(),
117
128
  conflicts: [],
118
- totalToInstall: 1
129
+ totalToInstall: 1,
130
+ missingDependencies: []
119
131
  });
120
132
  installComponents.mockResolvedValue({
121
133
  installed: [],
@@ -1 +1 @@
1
- {"version":3,"file":"add.test.js","sourceRoot":"","sources":["../../../../src/commands/add/__tests__/add.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.test.js","sourceRoot":"","sources":["../../../../src/commands/add/__tests__/add.test.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export function analyzeDependencies(components, registry, lockfile) {
10
10
  const allComponents = new Set(components);
11
11
  const dependencies = new Set();
12
12
  const npmDependencies = new Set();
13
+ const missingDependencies = new Set();
13
14
  const visited = new Set();
14
15
  const resolveDependencies = (componentName) => {
15
16
  if (visited.has(componentName)) {
@@ -18,6 +19,9 @@ export function analyzeDependencies(components, registry, lockfile) {
18
19
  visited.add(componentName);
19
20
  const entry = componentMap.get(componentName);
20
21
  if (!entry) {
22
+ missingDependencies.add(componentName);
23
+ allComponents.delete(componentName);
24
+ dependencies.delete(componentName);
21
25
  return;
22
26
  }
23
27
  for (const dep of collectLocalDependencies(entry)) {
@@ -46,7 +50,8 @@ export function analyzeDependencies(components, registry, lockfile) {
46
50
  dependencies,
47
51
  npmDependencies,
48
52
  conflicts,
49
- totalToInstall
53
+ totalToInstall,
54
+ missingDependencies: Array.from(missingDependencies).sort()
50
55
  };
51
56
  }
52
57
  //# sourceMappingURL=analysis.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../../src/commands/add/analysis.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAElD,SAAS,wBAAwB,CAAC,KAAmB;IACnD,OAAO,KAAK,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAA;AACxC,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAmB;IACjD,OAAO,KAAK,CAAC,YAAY,EAAE,GAAG,IAAI,EAAE,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,UAAoB,EACpB,QAAuB,EACvB,QAAkB;IAElB,MAAM,YAAY,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACjD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,UAAU,CAAC,CAAA;IACjD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;IACtC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAA;IAEzC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IAEjC,MAAM,mBAAmB,GAAG,CAAC,aAAqB,EAAQ,EAAE;QAC1D,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,OAAM;QACR,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAE1B,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAM;QACR,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACtB,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACvB,CAAC;YACD,mBAAmB,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC,CAAA;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,mBAAmB,CAAC,SAAS,CAAC,CAAA;IAChC,CAAC;IAED,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;QACtC,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IAEzE,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;QACrC,YAAY;QACZ,eAAe;QACf,SAAS;QACT,cAAc;KACf,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../../../src/commands/add/analysis.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAElD,SAAS,wBAAwB,CAAC,KAAmB;IACnD,OAAO,KAAK,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAA;AACxC,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAmB;IACjD,OAAO,KAAK,CAAC,YAAY,EAAE,GAAG,IAAI,EAAE,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,UAAoB,EACpB,QAAuB,EACvB,QAAkB;IAElB,MAAM,YAAY,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IACjD,MAAM,aAAa,GAAG,IAAI,GAAG,CAAS,UAAU,CAAC,CAAA;IACjD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;IACtC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAA;IACzC,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAA;IAE7C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAA;IAEjC,MAAM,mBAAmB,GAAG,CAAC,aAAqB,EAAQ,EAAE;QAC1D,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/B,OAAM;QACR,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAE1B,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;YACtC,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;YACnC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;YAClC,OAAM;QACR,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5B,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACtB,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACvB,CAAC;YACD,mBAAmB,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC1B,CAAC;IACH,CAAC,CAAA;IAED,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,mBAAmB,CAAC,SAAS,CAAC,CAAA;IAChC,CAAC;IAED,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,KAAK,MAAM,SAAS,IAAI,aAAa,EAAE,CAAC;QACtC,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAA;IAEzE,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;QACrC,YAAY;QACZ,eAAe;QACf,SAAS;QACT,cAAc;QACd,mBAAmB,EAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE;KAC5D,CAAA;AACH,CAAC"}
@@ -94,6 +94,12 @@ export const addCommand = new Command("add")
94
94
  spinner?.start("Analyzing dependencies...");
95
95
  const analysis = analyzeDependencies(validation.valid, registry, lockfile);
96
96
  spinner?.stop();
97
+ if (analysis.missingDependencies.length > 0) {
98
+ logger.error("Registry is missing required component dependencies:");
99
+ analysis.missingDependencies.forEach((name) => logger.error(` \u0007 ${name}`));
100
+ process.exit(1);
101
+ return;
102
+ }
97
103
  if (shouldLog) {
98
104
  displayInstallationPlan(analysis, options);
99
105
  }
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/add/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/add/command.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,7 @@ export interface DependencyAnalysis {
25
25
  npmDependencies: Set<string>;
26
26
  conflicts: string[];
27
27
  totalToInstall: number;
28
+ missingDependencies: string[];
28
29
  }
29
30
  export type AddConfig = TrixUIConfig & {
30
31
  typescript?: boolean;
@@ -15,6 +15,10 @@ export function displayInstallationPlan(analysis, options) {
15
15
  console.log(`${chalk.cyan("NPM packages required:")} ${chalk.white(analysis.npmDependencies.size)}`);
16
16
  console.log(chalk.gray(` ${Array.from(analysis.npmDependencies).join(", ")}`));
17
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
+ }
18
22
  if (analysis.conflicts.length > 0 && !options.force) {
19
23
  console.log(`${chalk.yellow("Conflicts detected:")} ${chalk.white(analysis.conflicts.length)}`);
20
24
  console.log(chalk.gray(` ${analysis.conflicts.join(", ")}`));
@@ -1 +1 @@
1
- {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../src/commands/add/ui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../src/commands/add/ui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const addCompositeCommand: Command;
@@ -0,0 +1,202 @@
1
+ import path from "node:path";
2
+ import chalk from "chalk";
3
+ import { Command } from "commander";
4
+ import ora from "ora";
5
+ import { loadConfig } from "../lib/config.js";
6
+ import { directoryExists } from "../lib/fs.js";
7
+ import { loadLockfile, saveLockfile } from "../lib/lockfile.js";
8
+ import { logger } from "../lib/logger.js";
9
+ import { getRegistryComposites, loadRegistry } from "../lib/registry.js";
10
+ import { analyzeEntryDependencies, confirmOverwrite, createEmptyResult, displayInstallationPlan, displayResults, getEntryNames, installEntries, normalizeEntryNames, validateEntries } from "./shared/add-collection.js";
11
+ import { ensureProjectFiles } from "./add/project-files.js";
12
+ import { confirmDependencyInstallation, confirmInstallation } from "./add/prompts.js";
13
+ import { displayManualInstallInstructions } from "./add/ui.js";
14
+ import { installNpmDependencies } from "./add/install.js";
15
+ const COMPOSITE_LABELS = {
16
+ entrySingular: "composite",
17
+ entryPlural: "composites"
18
+ };
19
+ function toAddConfig(config) {
20
+ return config;
21
+ }
22
+ export const addCompositeCommand = new Command("add-composite")
23
+ .description("Add prebuilt composites to your project")
24
+ .argument("<composites...>", "composite names (or 'all' to install everything)")
25
+ .option("-f, --force", "overwrite existing files", false)
26
+ .option("-y, --yes", "skip confirmation prompts", false)
27
+ .option("-s, --silent", "suppress output messages", false)
28
+ .option("-c, --cwd <path>", "working directory to add composites")
29
+ .option("--skip-deps", "skip dependency installation", false)
30
+ .action(async (composites, options) => {
31
+ const spinner = options.silent ? null : ora({ color: "blue" });
32
+ const shouldLog = !options.silent;
33
+ const shouldPrompt = !options.yes && !options.silent;
34
+ try {
35
+ const cwd = path.resolve(options.cwd || process.cwd());
36
+ if (shouldLog) {
37
+ logger.info({ cwd }, "Adding composites");
38
+ }
39
+ if (!(await directoryExists(cwd))) {
40
+ logger.error(`Directory does not exist: ${cwd}`);
41
+ process.exit(1);
42
+ }
43
+ spinner?.start("Loading configuration...");
44
+ const config = toAddConfig(await loadConfig(cwd));
45
+ spinner?.succeed("Configuration loaded");
46
+ spinner?.start("Loading registry and lockfile...");
47
+ const registry = await loadRegistry(config, cwd);
48
+ const lockfile = await loadLockfile(cwd);
49
+ spinner?.succeed("Registry and lockfile loaded");
50
+ const availableComposites = getRegistryComposites(registry);
51
+ if (availableComposites.length === 0) {
52
+ logger.error("No composites available in the registry.");
53
+ process.exit(1);
54
+ }
55
+ let requestedComposites = normalizeEntryNames(composites);
56
+ if (requestedComposites.length === 0) {
57
+ logger.error("No composite names provided.");
58
+ process.exit(1);
59
+ }
60
+ if (requestedComposites.includes("all")) {
61
+ const allComposites = getEntryNames(availableComposites);
62
+ if (shouldLog) {
63
+ console.log(chalk.yellow(`\nThis will install ${allComposites.length} composites:`));
64
+ console.log(chalk.gray(allComposites.join(", ")));
65
+ }
66
+ const shouldContinue = shouldPrompt
67
+ ? await confirmInstallation(`all ${allComposites.length} composites`)
68
+ : true;
69
+ if (!shouldContinue) {
70
+ logger.info("Installation cancelled");
71
+ process.exit(0);
72
+ }
73
+ requestedComposites = allComposites;
74
+ }
75
+ spinner?.start("Validating composites...");
76
+ const validation = validateEntries(requestedComposites, availableComposites);
77
+ spinner?.stop();
78
+ if (validation.invalid.length > 0) {
79
+ logger.error("The following composites were not found:");
80
+ validation.invalid.forEach((name) => logger.error(` \u0007 ${name}`));
81
+ if (validation.suggestions.length > 0 && shouldLog) {
82
+ console.log(chalk.yellow("\nDid you mean:"));
83
+ validation.suggestions.forEach((suggestion) => console.log(chalk.gray(` \u0007 ${suggestion}`)));
84
+ }
85
+ process.exit(1);
86
+ return;
87
+ }
88
+ spinner?.start("Analyzing dependencies...");
89
+ const analysis = analyzeEntryDependencies(validation.valid, availableComposites, registry, lockfile, "composites");
90
+ spinner?.stop();
91
+ if (analysis.missingDependencies.length > 0) {
92
+ logger.error("Registry is missing required component dependencies:");
93
+ analysis.missingDependencies.forEach((name) => logger.error(` \u0007 ${name}`));
94
+ process.exit(1);
95
+ return;
96
+ }
97
+ if (shouldLog) {
98
+ displayInstallationPlan(analysis, options, COMPOSITE_LABELS);
99
+ }
100
+ let forceInstall = Boolean(options.force);
101
+ if (analysis.conflicts.length > 0 && !forceInstall) {
102
+ if (shouldLog) {
103
+ logger.warn("The following composites or dependencies already exist:");
104
+ analysis.conflicts.forEach((name) => logger.warn(` \u0007 ${name}`));
105
+ }
106
+ if (options.yes) {
107
+ forceInstall = true;
108
+ }
109
+ else if (shouldPrompt) {
110
+ const shouldOverwrite = await confirmOverwrite(COMPOSITE_LABELS.entryPlural);
111
+ if (!shouldOverwrite) {
112
+ logger.info("Installation cancelled");
113
+ process.exit(0);
114
+ return;
115
+ }
116
+ forceInstall = true;
117
+ }
118
+ }
119
+ const installCount = forceInstall
120
+ ? analysis.totalTargets
121
+ : analysis.totalToInstall;
122
+ if (shouldPrompt && installCount > 0) {
123
+ const label = analysis.componentDependencies.length > 0
124
+ ? `${installCount} item${installCount > 1 ? "s" : ""}`
125
+ : `${installCount} ${COMPOSITE_LABELS.entrySingular}${installCount > 1 ? "s" : ""}`;
126
+ const shouldInstall = await confirmInstallation(label);
127
+ if (!shouldInstall) {
128
+ logger.info("Installation cancelled");
129
+ process.exit(0);
130
+ return;
131
+ }
132
+ }
133
+ spinner?.start("Verifying project setup...");
134
+ await ensureProjectFiles(cwd, config);
135
+ spinner?.succeed("Project setup verified");
136
+ const dependenciesResult = analysis.componentDependencies.length > 0
137
+ ? await installEntries(registry.components, analysis.componentDependencies, lockfile.components, {
138
+ cwd,
139
+ config,
140
+ force: forceInstall,
141
+ spinner,
142
+ itemLabel: "component"
143
+ })
144
+ : createEmptyResult();
145
+ const compositesResult = await installEntries(availableComposites, validation.valid, lockfile.composites, {
146
+ cwd,
147
+ config,
148
+ force: forceInstall,
149
+ spinner,
150
+ itemLabel: "composite"
151
+ });
152
+ const npmDependencies = new Set();
153
+ dependenciesResult.npmDependencies.forEach((dep) => npmDependencies.add(dep));
154
+ compositesResult.npmDependencies.forEach((dep) => npmDependencies.add(dep));
155
+ spinner?.start("Updating lockfile...");
156
+ await saveLockfile(cwd, lockfile);
157
+ spinner?.succeed("Lockfile updated");
158
+ const combinedResult = {
159
+ entries: compositesResult,
160
+ dependencies: dependenciesResult,
161
+ npmDependencies,
162
+ conflicts: analysis.conflicts
163
+ };
164
+ if (npmDependencies.size > 0 && !options.skipDeps) {
165
+ const shouldInstallDeps = shouldPrompt
166
+ ? await confirmDependencyInstallation(npmDependencies)
167
+ : true;
168
+ if (shouldInstallDeps) {
169
+ await installNpmDependencies({
170
+ cwd,
171
+ dependencies: npmDependencies,
172
+ spinner
173
+ });
174
+ }
175
+ else {
176
+ if (shouldLog) {
177
+ await displayManualInstallInstructions(npmDependencies, cwd);
178
+ }
179
+ }
180
+ }
181
+ else if (npmDependencies.size > 0 && shouldLog) {
182
+ await displayManualInstallInstructions(npmDependencies, cwd);
183
+ }
184
+ if (shouldLog) {
185
+ displayResults(combinedResult, { ...options, force: forceInstall }, COMPOSITE_LABELS);
186
+ }
187
+ if (compositesResult.failed.length > 0 || dependenciesResult.failed.length > 0) {
188
+ process.exit(1);
189
+ return;
190
+ }
191
+ }
192
+ catch (error) {
193
+ spinner?.fail("Installation failed");
194
+ logger.error(error.message);
195
+ if (process.env.DEBUG) {
196
+ console.error(error);
197
+ }
198
+ process.exit(1);
199
+ return;
200
+ }
201
+ });
202
+ //# sourceMappingURL=add-composite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-composite.js","sourceRoot":"","sources":["../../src/commands/add-composite.ts"],"names":[],"mappings":"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"}
@@ -88,6 +88,12 @@ export const addSectionCommand = new Command("add-section")
88
88
  spinner?.start("Analyzing dependencies...");
89
89
  const analysis = analyzeEntryDependencies(validation.valid, availableSections, registry, lockfile, "sections");
90
90
  spinner?.stop();
91
+ if (analysis.missingDependencies.length > 0) {
92
+ logger.error("Registry is missing required component dependencies:");
93
+ analysis.missingDependencies.forEach((name) => logger.error(` \u0007 ${name}`));
94
+ process.exit(1);
95
+ return;
96
+ }
91
97
  if (shouldLog) {
92
98
  displayInstallationPlan(analysis, options, SECTION_LABELS);
93
99
  }