agnosticui-cli 2.0.0-alpha.14 → 2.0.0-alpha.16

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.
package/README.md CHANGED
@@ -150,6 +150,37 @@ If multiple tools are detected, an interactive prompt asks which to use.
150
150
  The output file uses HTML sentinel markers so re-running only replaces the AgnosticUI
151
151
  section — anything else in the file is preserved. Re-run after adding or updating components.
152
152
 
153
+ ### `ag view`
154
+
155
+ Launch a lightweight Vite-powered component viewer for all your installed (ejected) components.
156
+ No Storybook setup required — just run the command from your project root.
157
+
158
+ ```bash
159
+ ag view [options]
160
+
161
+ Options:
162
+ -p, --port <number> Dev server port (default: 7173)
163
+ --clean Delete .agnosticui-viewer/ and rebuild from scratch
164
+ --no-open Skip auto-opening the browser
165
+
166
+ Examples:
167
+ ag view # Start viewer at http://localhost:7173
168
+ ag view --port 8080 # Use a custom port
169
+ ag view --clean # Full rebuild (use after ag add / ag sync)
170
+ ag view --no-open # Don't auto-open browser
171
+ ```
172
+
173
+ The viewer generates a self-contained Vite app in `.agnosticui-viewer/` (gitignored) using
174
+ your project's framework (React, Vue, or Lit/vanilla). It shows each installed component with
175
+ a three-tab panel: **Preview**, **HTML** import snippet, and **Info** metadata.
176
+
177
+ CSS tokens and any `ag-theme.css` skin override in your styles directory are automatically
178
+ applied so components look exactly as they do in your app.
179
+
180
+ `node_modules` inside `.agnosticui-viewer/` are cached between runs. The App entry file is
181
+ always regenerated (cheap) so the component list stays current. Run `ag view --clean` after
182
+ a `ag add` or `ag sync` when you want a guaranteed fresh install.
183
+
153
184
  ## How It Works
154
185
 
155
186
  After running `ag init`, your project structure looks like this:
package/dist/cli.js CHANGED
@@ -35,11 +35,12 @@ import { list } from "./commands/list.js";
35
35
  import { sync } from "./commands/sync.js";
36
36
  import { playbook } from "./commands/playbook.js";
37
37
  import { context } from "./commands/context.js";
38
+ import { view } from "./commands/view.js";
38
39
  const program = new Command();
39
40
  program
40
41
  .name("ag")
41
42
  .description("AgnosticUI Local - The UI kit that lives in your codebase")
42
- .version("2.0.0-alpha.14");
43
+ .version("2.0.0-alpha.16");
43
44
  // ag init command
44
45
  program
45
46
  .command("init")
@@ -126,6 +127,20 @@ program
126
127
  .action(async (options) => {
127
128
  await context({ output: options.output, format: options.format });
128
129
  });
130
+ // ag view command
131
+ program
132
+ .command("view")
133
+ .description("Launch a component viewer for your installed (ejected) components")
134
+ .option("-p, --port <number>", "Port for the Vite dev server", "7173")
135
+ .option("--clean", "Delete .agnosticui-viewer/ and rebuild from scratch")
136
+ .option("--no-open", "Skip auto-opening the browser")
137
+ .action(async (options) => {
138
+ await view({
139
+ port: parseInt(options.port, 10),
140
+ clean: options.clean ?? false,
141
+ open: options.open ?? true,
142
+ });
143
+ });
129
144
  // Parse arguments
130
145
  program.parse();
131
146
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgBhE,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAyPnE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgBhE,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0PnE"}
@@ -157,6 +157,7 @@ export async function init(options = {}) {
157
157
  const referenceDirName = path.basename(DEFAULT_REFERENCE_PATH);
158
158
  const ignorePattern = `${referenceDirName}/`;
159
159
  await updateIgnoreFile(path.join(process.cwd(), '.gitignore'), ignorePattern);
160
+ await updateIgnoreFile(path.join(process.cwd(), '.gitignore'), '.agnosticui-viewer/');
160
161
  const eslintConfigPath = path.join(process.cwd(), 'eslint.config.js');
161
162
  if (pathExists(eslintConfigPath)) {
162
163
  spinner.message('Updating eslint.config.js...');
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjE,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAChH,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,YAAY,CAAC;AAE5B,MAAM,uBAAuB,GAAG,qBAAqB,CAAC;AACtD,MAAM,sBAAsB,GAAG,cAAc,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,UAAuB,EAAE;IAClD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC;IAE/D,+BAA+B;IAC/B,MAAM,cAAc,GAAG,MAAM,UAAU,EAAE,CAAC;IAC1C,IAAI,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;YACnE,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,oCAAoC,CAAC,GAAG,qBAAqB,CAAC,CAAC;YAC5F,MAAM,CAAC,IAAI,CAAC,yBAAyB,GAAG,EAAE,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;YACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,qFAAqF;QACrF,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,cAAc,CAAC,SAAS,CAAC;QAClE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,cAAc,CAAC,KAAK,CAAC,UAAU,CAAC;QACnF,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,iCAAiC,CAAC,CAAC;IAChF,CAAC;IAED,4CAA4C;IAC5C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;QAC1D,MAAM,CAAC,KAAK,CAAC,iFAAiF,CAAC,CAAC;QAChG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IACzE,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC;IAC3E,qFAAqF;IACrF,MAAM,UAAU,GAAkB,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzF,uCAAuC;IACvC,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAClC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;YACzF,MAAM,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC,CAAC;YAC/F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC;YACrC,OAAO,EAAE,gCAAgC;YACzC,OAAO,EAAE;gBACP,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;gBAClC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC9B,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC9B,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACpC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,4DAA4D,EAAE;aACxF;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YAChC,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,SAAS,GAAG,eAA4B,CAAC;IAC3C,CAAC;IAED,6CAA6C;IAC7C,IAAI,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAC5C,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,cAAc,GAAG,uBAAuB,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC;gBAC9B,OAAO,EAAE,uCAAuC;gBAChD,WAAW,EAAE,uBAAuB;gBACpC,YAAY,EAAE,uBAAuB;aACtC,CAAC,CAAC;YAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;gBACjC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YAED,cAAc,GAAG,UAAoB,CAAC;QACxC,CAAC;IACH,CAAC;IAED,yBAAyB;IACzB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC;IACvC,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE3E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,oGAAoG,CAAC,CAAC;QAClH,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,gBAAgB;IAChB,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC;IAE3G,IAAI,CAAC;QACH,oCAAoC;QACpC,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;QACnD,MAAM,SAAS,CAAC,sBAAsB,CAAC,CAAC;QACxC,MAAM,cAAc,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAC;QAE1D,sCAAsC;QACtC,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAC;QAC1E,IAAI,cAAc,GAAG,aAAa,CAAC,CAAC,WAAW;QAC/C,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;gBACzE,cAAc,GAAG,WAAW,CAAC,OAAO,IAAI,cAAc,CAAC;YACzD,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAuB;YACzB,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;QAE9E,6BAA6B;QAC7B,MAAM,CAAC,OAAO,GAAG;YACf,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;YACjC,OAAO,EAAE,cAAc;YACvB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC;QAEF,MAAM,UAAU,CAAC,MAAM,CAAC,CAAC;QAEzB,8BAA8B;QAC9B,OAAO,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QACpD,MAAM,SAAS,CAAC,cAAc,CAAC,CAAC;QAEhC,iDAAiD;QACjD,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACvD,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;QAE5B,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5E,MAAM,UAAU,GAAG,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;QAE3D,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAClD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACxB,MAAM,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,4DAA4D;QAC5D,OAAO,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QACpD,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEzD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;YAE/C,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvB,MAAM,qBAAqB,CAAC,MAAM,EAAE,OAAO,EAAE;oBAC3C,OAAO,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,kBAAkB;iBACvD,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC;QAEhH,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,kFAAkF;YAClF,MAAM,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YAEzD,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;YAC1C,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;YAC/D,MAAM,aAAa,GAAG,GAAG,gBAAgB,GAAG,CAAC;YAE7C,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,EAAE,aAAa,CAAC,CAAC;YAE9E,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,kBAAkB,CAAC,CAAC;YACtE,IAAI,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC;gBAChD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,gBAAgB,EAAE,GAAG,gBAAgB,GAAG,CAAC,CAAC;gBAEnF,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,CAAC,OAAO,EAAE,CAAC;oBACjB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC,GAAG,oCAAoC,GAAG,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,GAAG,CAAC,CAAC;oBAC3H,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAChC,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,gBAAgB,KAAK,CAAC,CAAC,CAAC;oBACnE,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;YAC7C,MAAM,eAAe,EAAE,CAAC;QAC1B,CAAC;QAED,MAAM,CAAC,OAAO,EAAE,CAAC;QAEjB,IAAI,cAAc,EAAE,CAAC;YACnB,8CAA8C;YAC9C,MAAM,CAAC,GAAG,CAAC,6BAA6B,EAAE;gBACxC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC;gBAClB,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,uBAAuB,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC;gBACvE,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,gBAAgB,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,cAAc,UAAU,CAAC;gBAC5E,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,2BAA2B,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,cAAc,aAAa,cAAc,SAAS,CAAC;gBACjH,EAAE;gBACF,EAAE,CAAC,GAAG,CAAC,8CAA8C,CAAC;gBACtD,EAAE,CAAC,GAAG,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,4CAA4C,CAAC;aAC1F,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,8CAA8C;QAC9C,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC1B,aAAa,GAAG,gCAAgC,cAAc,4BAA4B,CAAC;QAC7F,CAAC;aAAM,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YAC/B,aAAa,GAAG,0BAA0B,cAAc,4BAA4B,CAAC;QACvF,CAAC;aAAM,CAAC;YACN,6EAA6E;YAC7E,aAAa,GAAG,WAAW,cAAc,sBAAsB,CAAC;QAClE,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE;YACxB,EAAE,CAAC,GAAG,CAAC,+CAA+C,UAAU,CAAC,CAAC,CAAC,KAAK,UAAU,GAAG,CAAC,CAAC,CAAC,qBAAqB,GAAG,CAAC;YACjH,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,cAAc,wBAAwB,CAAC;YACrE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,cAAc,6BAA6B,CAAC;YAC1E,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,+EAA+E,CAAC;YAClJ,EAAE;YACF,EAAE,CAAC,GAAG,CAAC,yDAAyD,CAAC;YACjE,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,2CAA2C,CAAC;YAC1D,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,mFAAmF,CAAC;YACvG,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,iDAAiD,CAAC;YAChE,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,8CAA8C,CAAC;YAC7D,EAAE;YACF,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAC7B,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,+BAA+B,CAAC;YACtD,EAAE;YACF,EAAE,CAAC,GAAG,CAAC,+BAA+B,CAAC;YACvC,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC;YAChD,EAAE;YACF,EAAE,CAAC,GAAG,CAAC,qBAAqB,CAAC;YAC7B,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;SAClC,CAAC,CAAC;QAEH,qDAAqD;QACrD,MAAM,mBAAmB,EAAE,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,uBAAuB,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAEnG,wBAAwB;QACxB,MAAM,mBAAmB,EAAE,CAAC;QAE5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe;IAC5B,MAAM,aAAa,GAAG,CAAC,eAAe,EAAE,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;IACnF,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1B,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;gBAElD,yDAAyD;gBACzD,IAAI,IAAI,CAAC;gBACT,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;oBAC/C,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACjC,CAAC;gBAAC,MAAM,CAAC;oBACP,yBAAyB;oBACzB,SAAS;gBACX,CAAC;gBAED,IAAI,QAAQ,GAAG,KAAK,CAAC;gBAErB,gCAAgC;gBAChC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;oBAC1B,QAAQ,GAAG,IAAI,CAAC;gBAClB,CAAC;gBAED,6BAA6B;gBAC7B,IAAI,IAAI,CAAC,eAAe,CAAC,sBAAsB,KAAK,IAAI,EAAE,CAAC;oBACzD,IAAI,CAAC,eAAe,CAAC,sBAAsB,GAAG,IAAI,CAAC;oBACnD,QAAQ,GAAG,IAAI,CAAC;gBAClB,CAAC;gBAED,8BAA8B;gBAC9B,IAAI,IAAI,CAAC,eAAe,CAAC,uBAAuB,KAAK,KAAK,EAAE,CAAC;oBAC3D,IAAI,CAAC,eAAe,CAAC,uBAAuB,GAAG,KAAK,CAAC;oBACrD,QAAQ,GAAG,IAAI,CAAC;gBAClB,CAAC;gBAED,0EAA0E;gBAC1E,IAAI,IAAI,CAAC,eAAe,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;oBACrD,IAAI,CAAC,eAAe,CAAC,kBAAkB,GAAG,KAAK,CAAC;oBAChD,QAAQ,GAAG,IAAI,CAAC;gBAClB,CAAC;gBAED,qCAAqC;gBACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;gBACpB,CAAC;gBAED,MAAM,eAAe,GAAG,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;gBAC3D,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;oBACtC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;wBACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC3B,QAAQ,GAAG,IAAI,CAAC;oBAClB,CAAC;gBACH,CAAC;gBAED,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBACzD,MAAM,CAAC,IAAI,CAAC,WAAW,IAAI,+BAA+B,CAAC,CAAC;oBAC5D,UAAU,GAAG,IAAI,CAAC;gBACpB,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,wCAAwC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED,8DAA8D;IAC9D,kBAAkB,CAAC,UAAU,CAAC,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,SAAoB,EAAE,cAAuB,KAAK;IAClF,MAAM,YAAY,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAEzD,8CAA8C;IAC9C,IAAI,0BAA0B,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7C,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,2CAA2C,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3F,OAAO;IACT,CAAC;IAED,4CAA4C;IAC5C,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACnE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACzB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,IAAI,CAAC,GAAG,cAAc,IAAI,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5I,OAAO;IACT,CAAC;IAED,yBAAyB;IACzB,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;IAE9C,cAAc;IACd,MAAM,CAAC,OAAO,EAAE,CAAC;IACjB,MAAM,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;IACnE,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACzB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,EAAE,CAAC;IAEjB,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC;QACpC,OAAO,EAAE,iBAAiB,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG;QACpD,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE,CAAC,IAAI,CAAC,GAAG,cAAc,IAAI,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9J,OAAO;IACT,CAAC;IAED,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QAChD,MAAM,CAAC,IAAI,CAAC,wCAAwC,EAAE,CAAC,IAAI,CAAC,GAAG,cAAc,IAAI,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9J,OAAO;IACT,CAAC;IAED,uBAAuB;IACvB,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC5B,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAE5C,IAAI,CAAC;QACH,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAClC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,uCAAuC,CAAC,CAAC;IACxE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,iCAAiC,CAAC,CAAC;QAC9D,MAAM,CAAC,KAAK,CAAC,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QACjG,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE,CAAC,IAAI,CAAC,GAAG,cAAc,IAAI,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1J,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,aAAsB,KAAK;IACrD,IAAI,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,mCAAmC,CAAC,GAAG,mCAAmC,CAAC,CAAC;QACnG,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAAG,UAAU,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,kBAAkB,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAChC,MAAM,CAAC,OAAO,EAAE,CAAC;QACjB,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,SAAS,iBAAiB,CAAC,IAAY;IACrC,OAAO,IAAI,CAAC,OAAO,CAAC,4CAA4C,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ViewOptions } from '../types/index.js';
2
+ export declare function view(options?: ViewOptions): Promise<void>;
3
+ //# sourceMappingURL=view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../src/commands/view.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrD,wBAAsB,IAAI,CAAC,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8GnE"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * ag view command - Launch a lightweight component viewer for ejected components
3
+ */
4
+ import path from 'node:path';
5
+ import { existsSync } from 'node:fs';
6
+ import { rm } from 'node:fs/promises';
7
+ import { execSync, spawn } from 'node:child_process';
8
+ import * as p from '@clack/prompts';
9
+ import pc from 'picocolors';
10
+ import { loadConfig } from '../utils/config.js';
11
+ import { logger } from '../utils/logger.js';
12
+ import { ensureDir } from '../utils/files.js';
13
+ import { generateViewerApp } from '../utils/viewer.js';
14
+ const VIEWER_DIR = '.agnosticui-viewer';
15
+ const DEFAULT_PORT = 7173;
16
+ export async function view(options = {}) {
17
+ const port = options.port ?? DEFAULT_PORT;
18
+ const clean = options.clean ?? false;
19
+ const autoOpen = options.open ?? true;
20
+ p.intro(pc.bold(pc.cyan('AgnosticUI Component Viewer')));
21
+ // Require initialized project
22
+ const config = await loadConfig();
23
+ if (!config) {
24
+ logger.error('AgnosticUI is not initialized in this project.');
25
+ logger.info('Run ' + pc.cyan('npx agnosticui-cli init') + ' to get started.');
26
+ process.exit(1);
27
+ }
28
+ const installedComponents = Object.keys(config.components);
29
+ if (installedComponents.length === 0) {
30
+ logger.warn('No components installed yet.');
31
+ logger.info('Run ' + pc.cyan('npx agnosticui-cli add button') + ' to add components first.');
32
+ process.exit(0);
33
+ }
34
+ const cwd = process.cwd();
35
+ const viewerPath = path.join(cwd, VIEWER_DIR);
36
+ const nodeModulesPath = path.join(viewerPath, 'node_modules');
37
+ // --clean: nuke viewer directory and start fresh
38
+ if (clean && existsSync(viewerPath)) {
39
+ const spinner = p.spinner();
40
+ spinner.start('Cleaning viewer directory...');
41
+ await rm(viewerPath, { recursive: true, force: true });
42
+ spinner.stop(pc.green('✓') + ' Cleaned viewer directory');
43
+ }
44
+ await ensureDir(viewerPath);
45
+ await ensureDir(path.join(viewerPath, 'src'));
46
+ // Always regenerate app files (cheap — keeps component list current)
47
+ const genSpinner = p.spinner();
48
+ genSpinner.start('Generating viewer app...');
49
+ await generateViewerApp(config, viewerPath, cwd);
50
+ genSpinner.stop(pc.green('✓') + ' Viewer app ready');
51
+ // Install dependencies only when node_modules is absent (fast path on re-runs)
52
+ if (!existsSync(nodeModulesPath)) {
53
+ const installSpinner = p.spinner();
54
+ installSpinner.start('Installing viewer dependencies (first run only — subsequent runs skip this step)...');
55
+ try {
56
+ execSync('npm install', { cwd: viewerPath, stdio: 'pipe' });
57
+ installSpinner.stop(pc.green('✓') + ' Dependencies installed');
58
+ }
59
+ catch (err) {
60
+ installSpinner.stop(pc.red('✖') + ' Failed to install dependencies');
61
+ logger.error(`npm install failed: ${err instanceof Error ? err.message : String(err)}`);
62
+ logger.info('Try running ' + pc.cyan('ag view --clean') + ' to rebuild the viewer from scratch.');
63
+ process.exit(1);
64
+ }
65
+ }
66
+ else {
67
+ logger.info('Using cached dependencies. Run ' +
68
+ pc.cyan('ag view --clean') +
69
+ ' to rebuild from scratch.');
70
+ }
71
+ logger.newline();
72
+ logger.box('Component Viewer', [
73
+ pc.dim(`Framework: ${config.framework}`),
74
+ pc.dim(`Components: ${installedComponents.length}`),
75
+ '',
76
+ pc.green(`→ http://localhost:${port}`),
77
+ '',
78
+ pc.dim('Press Ctrl+C to stop'),
79
+ ]);
80
+ // Spawn Vite dev server inside the viewer directory
81
+ const viteProcess = spawn('npx', ['vite', '--port', String(port)], {
82
+ cwd: viewerPath,
83
+ stdio: 'inherit',
84
+ shell: true,
85
+ });
86
+ // Auto-open browser after a short startup delay
87
+ if (autoOpen) {
88
+ setTimeout(() => {
89
+ const url = `http://localhost:${port}`;
90
+ const openCmd = process.platform === 'darwin'
91
+ ? 'open'
92
+ : process.platform === 'win32'
93
+ ? 'start'
94
+ : 'xdg-open';
95
+ spawn(openCmd, [url], { shell: true, detached: true });
96
+ }, 1500);
97
+ }
98
+ // Clean exit on Ctrl+C / SIGTERM
99
+ const handleExit = () => {
100
+ viteProcess.kill();
101
+ process.exit(0);
102
+ };
103
+ process.on('SIGINT', handleExit);
104
+ process.on('SIGTERM', handleExit);
105
+ viteProcess.on('close', (code) => {
106
+ process.exit(code ?? 0);
107
+ });
108
+ }
109
+ //# sourceMappingURL=view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"view.js","sourceRoot":"","sources":["../../src/commands/view.ts"],"names":[],"mappings":"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"}
@@ -75,4 +75,9 @@ export interface ContextOptions {
75
75
  output?: string;
76
76
  format?: string;
77
77
  }
78
+ export interface ViewOptions {
79
+ port?: number;
80
+ clean?: boolean;
81
+ open?: boolean;
82
+ }
78
83
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3C,EAAE,CAAC,EAAE;QACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE;QACL,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC3C,EAAE,CAAC,EAAE;QACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,eAAe,CAAC,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB"}
@@ -0,0 +1,4 @@
1
+ import type { AgnosticUIConfig } from '../types/index.js';
2
+ export declare function detectThemeFile(componentsAbsPath: string): boolean;
3
+ export declare function generateViewerApp(config: AgnosticUIConfig, viewerPath: string, cwd: string): Promise<void>;
4
+ //# sourceMappingURL=viewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewer.d.ts","sourceRoot":"","sources":["../../src/utils/viewer.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAa,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAmIrE,wBAAgB,eAAe,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAElE;AAmwBD,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,IAAI,CAAC,CAqDf"}
@@ -0,0 +1,898 @@
1
+ /**
2
+ * Viewer app template generation utilities for `ag view`
3
+ *
4
+ * Generates a lightweight Vite-powered component viewer app in
5
+ * .agnosticui-viewer/ that renders all ejected components using
6
+ * the project's own framework (React, Vue, or Lit/vanilla).
7
+ */
8
+ import path from 'node:path';
9
+ import { existsSync } from 'node:fs';
10
+ import { writeFile } from 'node:fs/promises';
11
+ import { ensureDir } from './files.js';
12
+ // ---------------------------------------------------------------------------
13
+ // Component render defaults
14
+ // ---------------------------------------------------------------------------
15
+ const TEXT_CHILD_COMPONENTS = new Set([
16
+ 'Alert', 'Badge', 'BadgeFx', 'Button', 'ButtonFx', 'Card',
17
+ 'Kbd', 'Link', 'Mark', 'MessageBubble', 'Tag',
18
+ ]);
19
+ // React-specific minimal renders for form/display components
20
+ const REACT_SPECIFIC = {
21
+ Avatar: '<ReactAvatar text="AG" />',
22
+ Checkbox: '<ReactCheckbox id="viewer-cb" label="Checkbox" />',
23
+ Collapsible: '<ReactCollapsible><span slot="summary">Toggle details</span><div>Content goes here.</div></ReactCollapsible>',
24
+ CopyButton: '<ReactCopyButton text="ag add button" />',
25
+ Divider: '<ReactDivider />',
26
+ EmptyState: '<ReactEmptyState />',
27
+ Flex: '<ReactFlex><span>Item 1</span><span>Item 2</span><span>Item 3</span></ReactFlex>',
28
+ IconButton: '<ReactIconButton aria-label="settings"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><circle cx="12" cy="12" r="3"/><path d="M12 1v4M12 19v4M4.22 4.22l2.83 2.83M16.95 16.95l2.83 2.83M1 12h4M19 12h4M4.22 19.78l2.83-2.83M16.95 7.05l2.83-2.83"/></svg></ReactIconButton>',
29
+ IconButtonFx: '<ReactIconButtonFx aria-label="settings"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2"><circle cx="12" cy="12" r="3"/></svg></ReactIconButtonFx>',
30
+ Input: '<ReactInput id="viewer-input" label="Label" type="text" />',
31
+ Loader: '<ReactLoader />',
32
+ Progress: '<ReactProgress value={50} max={100} />',
33
+ ProgressRing: '<ReactProgressRing value={50} />',
34
+ Radio: '<ReactRadio id="viewer-radio" label="Radio" name="viewer-group" />',
35
+ Rating: '<ReactRating value={3} />',
36
+ ScrollProgress: '<ReactScrollProgress />',
37
+ ScrollToButton: '<ReactScrollToButton />',
38
+ Select: '<ReactSelect id="viewer-select" label="Select" />',
39
+ SkeletonLoader: '<ReactSkeletonLoader />',
40
+ Slider: '<ReactSlider id="viewer-slider" label="Slider" min={0} max={100} value={50} />',
41
+ Spinner: '<ReactSpinner />',
42
+ Toggle: '<ReactToggle id="viewer-toggle" label="Toggle" />',
43
+ VisuallyHidden: '<ReactVisuallyHidden>Screen reader only text</ReactVisuallyHidden>',
44
+ };
45
+ // Vue-specific minimal renders
46
+ const VUE_SPECIFIC = {
47
+ Avatar: { props: 'text="AG"', slot: '' },
48
+ Checkbox: { props: 'id="viewer-cb" label="Checkbox"', slot: '' },
49
+ CopyButton: { props: 'text="ag add button"', slot: '' },
50
+ Divider: { props: '', slot: '' },
51
+ EmptyState: { props: '', slot: '' },
52
+ IconButton: { props: 'aria-label="settings"', slot: '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="3"/></svg>' },
53
+ IconButtonFx: { props: 'aria-label="settings"', slot: '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="3"/></svg>' },
54
+ Input: { props: 'id="viewer-input" label="Label" type="text"', slot: '' },
55
+ Loader: { props: '', slot: '' },
56
+ Progress: { props: ':value="50" :max="100"', slot: '' },
57
+ ProgressRing: { props: ':value="50"', slot: '' },
58
+ Radio: { props: 'id="viewer-radio" label="Radio" name="viewer-group"', slot: '' },
59
+ Rating: { props: ':value="3"', slot: '' },
60
+ ScrollProgress: { props: '', slot: '' },
61
+ ScrollToButton: { props: '', slot: '' },
62
+ Select: { props: 'id="viewer-select" label="Select"', slot: '' },
63
+ SkeletonLoader: { props: '', slot: '' },
64
+ Slider: { props: 'id="viewer-slider" label="Slider" :min="0" :max="100" :value="50"', slot: '' },
65
+ Spinner: { props: '', slot: '' },
66
+ Toggle: { props: 'id="viewer-toggle" label="Toggle"', slot: '' },
67
+ VisuallyHidden: { props: '', slot: 'Screen reader only text' },
68
+ };
69
+ // Lit/vanilla minimal HTML renders (uses ag-* tag names)
70
+ const LIT_SPECIFIC = {
71
+ Avatar: (tag) => `<${tag} text="AG"></${tag}>`,
72
+ Checkbox: (tag) => `<${tag} id="viewer-cb" label="Checkbox"></${tag}>`,
73
+ CopyButton: (tag) => `<${tag} text="ag add button"></${tag}>`,
74
+ Divider: (tag) => `<${tag}></${tag}>`,
75
+ EmptyState: (tag) => `<${tag}></${tag}>`,
76
+ Input: (tag) => `<${tag} id="viewer-input" label="Label" type="text"></${tag}>`,
77
+ Loader: (tag) => `<${tag}></${tag}>`,
78
+ Progress: (tag) => `<${tag} value="50" max="100"></${tag}>`,
79
+ ProgressRing: (tag) => `<${tag} value="50"></${tag}>`,
80
+ Radio: (tag) => `<${tag} id="viewer-radio" label="Radio" name="viewer-group"></${tag}>`,
81
+ Rating: (tag) => `<${tag} value="3"></${tag}>`,
82
+ ScrollProgress: (tag) => `<${tag}></${tag}>`,
83
+ ScrollToButton: (tag) => `<${tag}></${tag}>`,
84
+ Select: (tag) => `<${tag} id="viewer-select" label="Select"></${tag}>`,
85
+ SkeletonLoader: (tag) => `<${tag}></${tag}>`,
86
+ Slider: (tag) => `<${tag} id="viewer-slider" label="Slider" min="0" max="100" value="50"></${tag}>`,
87
+ Spinner: (tag) => `<${tag}></${tag}>`,
88
+ Toggle: (tag) => `<${tag} id="viewer-toggle" label="Toggle"></${tag}>`,
89
+ VisuallyHidden: (tag) => `<${tag}>Screen reader only text</${tag}>`,
90
+ };
91
+ function toKebabCase(name) {
92
+ return name.replace(/([A-Z])/g, (match, char, offset) => (offset > 0 ? '-' : '') + char.toLowerCase());
93
+ }
94
+ function getAgTagName(name) {
95
+ return `ag-${toKebabCase(name)}`;
96
+ }
97
+ function getReactRender(name) {
98
+ const wrapper = `React${name}`;
99
+ if (TEXT_CHILD_COMPONENTS.has(name))
100
+ return `<${wrapper}>${name}</${wrapper}>`;
101
+ if (REACT_SPECIFIC[name])
102
+ return REACT_SPECIFIC[name];
103
+ return `<${wrapper} />`;
104
+ }
105
+ function getVueRenderBlock(name) {
106
+ const wrapper = `Vue${name}`;
107
+ if (TEXT_CHILD_COMPONENTS.has(name)) {
108
+ return `<${wrapper}>${name}</${wrapper}>`;
109
+ }
110
+ const specific = VUE_SPECIFIC[name];
111
+ if (specific) {
112
+ if (specific.slot) {
113
+ return `<${wrapper}${specific.props ? ' ' + specific.props : ''}>${specific.slot}</${wrapper}>`;
114
+ }
115
+ return `<${wrapper}${specific.props ? ' ' + specific.props : ''} />`;
116
+ }
117
+ return `<${wrapper} />`;
118
+ }
119
+ function getLitRenderHtml(name) {
120
+ const tag = getAgTagName(name);
121
+ if (TEXT_CHILD_COMPONENTS.has(name))
122
+ return `<${tag}>${name}</${tag}>`;
123
+ const specificFn = LIT_SPECIFIC[name];
124
+ if (specificFn)
125
+ return specificFn(tag);
126
+ return `<${tag}></${tag}>`;
127
+ }
128
+ // ---------------------------------------------------------------------------
129
+ // Public: detect optional theme file
130
+ // ---------------------------------------------------------------------------
131
+ export function detectThemeFile(componentsAbsPath) {
132
+ return existsSync(path.join(componentsAbsPath, 'styles', 'ag-theme.css'));
133
+ }
134
+ // ---------------------------------------------------------------------------
135
+ // Template generators
136
+ // ---------------------------------------------------------------------------
137
+ function generatePackageJson(framework) {
138
+ const deps = {
139
+ 'lit': '^3.0.0',
140
+ 'focus-trap': '^7.0.0',
141
+ '@floating-ui/dom': '^1.0.0',
142
+ };
143
+ const devDeps = {
144
+ 'vite': '^5.0.0',
145
+ 'typescript': '^5.0.0',
146
+ };
147
+ if (framework === 'react') {
148
+ deps['react'] = '^18.0.0';
149
+ deps['react-dom'] = '^18.0.0';
150
+ deps['@lit/react'] = '^1.0.0';
151
+ devDeps['@vitejs/plugin-react'] = '^4.0.0';
152
+ devDeps['@types/react'] = '^18.0.0';
153
+ devDeps['@types/react-dom'] = '^18.0.0';
154
+ }
155
+ else if (framework === 'vue') {
156
+ deps['vue'] = '^3.0.0';
157
+ devDeps['@vitejs/plugin-vue'] = '^5.0.0';
158
+ deps['@lit/react'] = '^1.0.0'; // needed by some ag-ref core files
159
+ }
160
+ else {
161
+ // lit / svelte / other
162
+ deps['@lit/react'] = '^1.0.0'; // pulled in by reference lib React wrappers if resolved
163
+ }
164
+ return JSON.stringify({
165
+ name: 'agnosticui-viewer',
166
+ version: '1.0.0',
167
+ private: true,
168
+ type: 'module',
169
+ scripts: { dev: 'vite' },
170
+ dependencies: deps,
171
+ devDependencies: devDeps,
172
+ }, null, 2) + '\n';
173
+ }
174
+ function generateTsConfig(framework) {
175
+ return JSON.stringify({
176
+ compilerOptions: {
177
+ target: 'ES2020',
178
+ lib: ['ES2020', 'DOM', 'DOM.Iterable'],
179
+ module: 'ESNext',
180
+ skipLibCheck: true,
181
+ moduleResolution: 'bundler',
182
+ allowImportingTsExtensions: true,
183
+ resolveJsonModule: true,
184
+ isolatedModules: true,
185
+ noEmit: true,
186
+ ...(framework === 'react' ? { jsx: 'react-jsx' } : {}),
187
+ strict: false,
188
+ experimentalDecorators: true,
189
+ useDefineForClassFields: false,
190
+ },
191
+ include: ['src'],
192
+ }, null, 2) + '\n';
193
+ }
194
+ function generateViteConfig(framework, componentsAbsPath, refLibAbsPath) {
195
+ const refComponentsPath = path.join(refLibAbsPath, 'src', 'components');
196
+ const agRefAlias = JSON.stringify(refComponentsPath);
197
+ const agComponentsAlias = JSON.stringify(componentsAbsPath);
198
+ const optimizeIncludes = framework === 'react'
199
+ ? `['react', 'react/jsx-runtime', 'react-dom', 'react-dom/client', 'lit', 'lit/decorators.js', '@lit/react', '@floating-ui/dom', 'focus-trap']`
200
+ : framework === 'vue'
201
+ ? `['vue', 'lit', 'lit/decorators.js', '@floating-ui/dom', 'focus-trap']`
202
+ : `['lit', 'lit/decorators.js', '@floating-ui/dom', 'focus-trap']`;
203
+ const pluginImport = framework === 'react'
204
+ ? `import react from '@vitejs/plugin-react'`
205
+ : framework === 'vue'
206
+ ? `import vue from '@vitejs/plugin-vue'`
207
+ : '';
208
+ const pluginUsage = framework === 'react'
209
+ ? `react()`
210
+ : framework === 'vue'
211
+ ? `vue({ template: { compilerOptions: { isCustomElement: (tag) => tag.startsWith('ag-') } } })`
212
+ : '';
213
+ const pluginsLine = pluginUsage
214
+ ? ` plugins: [${pluginUsage}],\n`
215
+ : '';
216
+ return `import { defineConfig } from 'vite'
217
+ ${pluginImport ? pluginImport + '\n' : ''}
218
+ export default defineConfig({
219
+ ${pluginsLine} resolve: {
220
+ alias: {
221
+ '@ag-ref': ${agRefAlias},
222
+ '@ag-components': ${agComponentsAlias},
223
+ },
224
+ dedupe: ['lit', 'focus-trap', '@floating-ui/dom'],
225
+ },
226
+ server: {
227
+ fs: {
228
+ allow: ['..'],
229
+ },
230
+ },
231
+ optimizeDeps: {
232
+ noDiscovery: true,
233
+ holdUntilCrawlEnd: false,
234
+ include: ${optimizeIncludes},
235
+ },
236
+ })
237
+ `;
238
+ }
239
+ function generateIndexHtml(framework) {
240
+ const scriptSrc = framework === 'react' ? '/src/main.tsx' : '/src/main.ts';
241
+ return `<!DOCTYPE html>
242
+ <html lang="en">
243
+ <head>
244
+ <meta charset="UTF-8" />
245
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
246
+ <title>AgnosticUI Component Viewer</title>
247
+ </head>
248
+ <body>
249
+ ${framework === 'react' || framework === 'vue' ? '<div id="root"></div>' : ''}
250
+ <script type="module" src="${scriptSrc}"></script>
251
+ </body>
252
+ </html>
253
+ `;
254
+ }
255
+ function generateReactMain() {
256
+ return `import React from 'react'
257
+ import ReactDOM from 'react-dom/client'
258
+ import App from './App'
259
+
260
+ ReactDOM.createRoot(document.getElementById('root')!).render(
261
+ <React.StrictMode>
262
+ <App />
263
+ </React.StrictMode>
264
+ )
265
+ `;
266
+ }
267
+ function generateVueMain() {
268
+ return `import { createApp } from 'vue'
269
+ import App from './App.vue'
270
+
271
+ createApp(App).mount('#root')
272
+ `;
273
+ }
274
+ function generateLitMain() {
275
+ return `import './App'
276
+ `;
277
+ }
278
+ // ---------------------------------------------------------------------------
279
+ // React App (App.tsx)
280
+ // ---------------------------------------------------------------------------
281
+ function generateReactApp(installedComponents, componentsPath, hasTheme) {
282
+ const names = Object.keys(installedComponents).sort();
283
+ const componentImports = names
284
+ .map(n => `import { React${n} } from '@ag-components/${n}/react/React${n}'`)
285
+ .join('\n');
286
+ const themeImport = hasTheme
287
+ ? `import '@ag-components/styles/ag-theme.css'`
288
+ : '';
289
+ const componentEntries = names.map(n => {
290
+ const meta = installedComponents[n];
291
+ const snippet = `import { React${n} } from '${componentsPath}/${n}/react/React${n}'`;
292
+ const render = getReactRender(n);
293
+ return ` {
294
+ name: ${JSON.stringify(n)},
295
+ version: ${JSON.stringify(meta.version)},
296
+ addedDate: ${JSON.stringify(meta.added)},
297
+ files: ${JSON.stringify(meta.files)},
298
+ importSnippet: ${JSON.stringify(snippet)},
299
+ render: () => (${render}),
300
+ }`;
301
+ }).join(',\n');
302
+ return `// Auto-generated by \`ag view\`. Do not edit manually.
303
+ import { useState } from 'react'
304
+ import { ReactHeader } from '@ag-ref/Header/react/ReactHeader'
305
+ import { ReactTabs, ReactTab, ReactTabPanel } from '@ag-ref/Tabs/react/ReactTabs'
306
+ import { ReactCopyButton } from '@ag-ref/CopyButton/react/ReactCopyButton'
307
+ import '@ag-components/styles/ag-tokens.css'
308
+ import '@ag-components/styles/ag-tokens-dark.css'
309
+ ${themeImport}
310
+ import './viewer.css'
311
+
312
+ ${componentImports}
313
+
314
+ type ComponentInfo = {
315
+ name: string
316
+ version: string
317
+ addedDate: string
318
+ files: string[]
319
+ importSnippet: string
320
+ render: () => any
321
+ }
322
+
323
+ const COMPONENTS: ComponentInfo[] = [
324
+ ${componentEntries}
325
+ ]
326
+
327
+ export default function App() {
328
+ const [selected, setSelected] = useState(COMPONENTS[0]?.name ?? '')
329
+ const [activeTab, setActiveTab] = useState(0)
330
+ const current = COMPONENTS.find(c => c.name === selected) ?? COMPONENTS[0]
331
+
332
+ return (
333
+ <div className="av-layout">
334
+ <ReactHeader>
335
+ <span className="av-brand">AgnosticUI Component Viewer</span>
336
+ </ReactHeader>
337
+ <div className="av-body">
338
+ <aside className="av-sidebar">
339
+ <div className="av-overview">
340
+ <p>Browse your ejected components. Click a name to preview.</p>
341
+ <p>
342
+ Add more with <code>ag add &lt;name&gt;</code>.{' '}
343
+ <a
344
+ href="https://www.agnosticui.com/installation.html#agnosticui-cli-recommended"
345
+ target="_blank"
346
+ rel="noopener noreferrer"
347
+ >
348
+ CLI docs →
349
+ </a>
350
+ </p>
351
+ </div>
352
+ <nav className="av-nav">
353
+ {COMPONENTS.map(c => (
354
+ <button
355
+ key={c.name}
356
+ onClick={() => { setSelected(c.name); setActiveTab(0) }}
357
+ className={\`av-nav-item\${c.name === selected ? ' av-nav-item--active' : ''}\`}
358
+ >
359
+ {c.name}
360
+ </button>
361
+ ))}
362
+ </nav>
363
+ </aside>
364
+ <main className="av-main">
365
+ {current && (
366
+ <>
367
+ <h2 className="av-component-title">{current.name}</h2>
368
+ <ReactTabs
369
+ activeTab={activeTab}
370
+ ariaLabel={\`\${current.name} tabs\`}
371
+ onTabChange={(e: any) => setActiveTab(e.detail.activeTab)}
372
+ >
373
+ <ReactTab slot="tab" panel="preview">Preview</ReactTab>
374
+ <ReactTab slot="tab" panel="html">HTML</ReactTab>
375
+ <ReactTab slot="tab" panel="info">Info</ReactTab>
376
+ <ReactTabPanel slot="panel" id="preview">
377
+ <div className="av-preview">{current.render()}</div>
378
+ </ReactTabPanel>
379
+ <ReactTabPanel slot="panel" id="html">
380
+ <div className="av-code-block">
381
+ <pre><code>{current.importSnippet}</code></pre>
382
+ <ReactCopyButton text={current.importSnippet} size="sm" />
383
+ </div>
384
+ </ReactTabPanel>
385
+ <ReactTabPanel slot="panel" id="info">
386
+ <div className="av-info">
387
+ <dl>
388
+ <dt>Version</dt>
389
+ <dd>{current.version}</dd>
390
+ <dt>Added</dt>
391
+ <dd>{new Date(current.addedDate).toLocaleDateString()}</dd>
392
+ </dl>
393
+ </div>
394
+ </ReactTabPanel>
395
+ </ReactTabs>
396
+ </>
397
+ )}
398
+ </main>
399
+ </div>
400
+ </div>
401
+ )
402
+ }
403
+ `;
404
+ }
405
+ // ---------------------------------------------------------------------------
406
+ // Vue App (App.vue)
407
+ // ---------------------------------------------------------------------------
408
+ function generateVueApp(installedComponents, componentsPath, hasTheme) {
409
+ const names = Object.keys(installedComponents).sort();
410
+ const componentImports = names
411
+ .map(n => `import Vue${n} from '@ag-components/${n}/vue/Vue${n}.vue'`)
412
+ .join('\n');
413
+ const themeImport = hasTheme
414
+ ? `import '@ag-components/styles/ag-theme.css'` : '';
415
+ const componentMapEntries = names
416
+ .map(n => ` ${JSON.stringify(n)}: Vue${n}`)
417
+ .join(',\n');
418
+ const componentDataEntries = names.map(n => {
419
+ const meta = installedComponents[n];
420
+ const snippet = `import Vue${n} from '${componentsPath}/${n}/vue/Vue${n}.vue'`;
421
+ return ` {
422
+ name: ${JSON.stringify(n)},
423
+ version: ${JSON.stringify(meta.version)},
424
+ addedDate: ${JSON.stringify(meta.added)},
425
+ files: ${JSON.stringify(meta.files)},
426
+ importSnippet: ${JSON.stringify(snippet)},
427
+ }`;
428
+ }).join(',\n');
429
+ // Build per-component v-if render blocks
430
+ const previewBlocks = names.map((n, i) => {
431
+ const block = getVueRenderBlock(n);
432
+ const condition = i === 0 ? `v-if="current?.name === ${JSON.stringify(n)}"` : `v-else-if="current?.name === ${JSON.stringify(n)}"`;
433
+ return ` <template ${condition}>${block}</template>`;
434
+ }).join('\n');
435
+ return `<!-- Auto-generated by \`ag view\`. Do not edit manually. -->
436
+ <script setup lang="ts">
437
+ import { ref, computed } from 'vue'
438
+ import { VueHeader } from '@ag-ref/Header/vue'
439
+ import { VueTabs, VueTab, VueTabPanel } from '@ag-ref/Tabs/vue'
440
+ import { VueCopyButton } from '@ag-ref/CopyButton/vue'
441
+ import '@ag-components/styles/ag-tokens.css'
442
+ import '@ag-components/styles/ag-tokens-dark.css'
443
+ ${themeImport}
444
+ import './viewer.css'
445
+
446
+ ${componentImports}
447
+
448
+ const componentMap: Record<string, any> = {
449
+ ${componentMapEntries}
450
+ }
451
+
452
+ type ComponentInfo = {
453
+ name: string
454
+ version: string
455
+ addedDate: string
456
+ files: string[]
457
+ importSnippet: string
458
+ }
459
+
460
+ const COMPONENTS: ComponentInfo[] = [
461
+ ${componentDataEntries}
462
+ ]
463
+
464
+ const selected = ref(COMPONENTS[0]?.name ?? '')
465
+ const activeTab = ref(0)
466
+ const current = computed(() => COMPONENTS.find(c => c.name === selected.value) ?? COMPONENTS[0])
467
+
468
+ function selectComponent(name: string) {
469
+ selected.value = name
470
+ activeTab.value = 0
471
+ }
472
+ </script>
473
+
474
+ <template>
475
+ <div class="av-layout">
476
+ <VueHeader>
477
+ <span class="av-brand">AgnosticUI Component Viewer</span>
478
+ </VueHeader>
479
+ <div class="av-body">
480
+ <aside class="av-sidebar">
481
+ <div class="av-overview">
482
+ <p>Browse your ejected components. Click a name to preview.</p>
483
+ <p>
484
+ Add more with <code>ag add &lt;name&gt;</code>.
485
+ <a
486
+ href="https://www.agnosticui.com/installation.html#agnosticui-cli-recommended"
487
+ target="_blank"
488
+ rel="noopener noreferrer"
489
+ >CLI docs →</a>
490
+ </p>
491
+ </div>
492
+ <nav class="av-nav">
493
+ <button
494
+ v-for="c in COMPONENTS"
495
+ :key="c.name"
496
+ @click="selectComponent(c.name)"
497
+ :class="['av-nav-item', { 'av-nav-item--active': c.name === selected }]"
498
+ >{{ c.name }}</button>
499
+ </nav>
500
+ </aside>
501
+ <main class="av-main">
502
+ <template v-if="current">
503
+ <h2 class="av-component-title">{{ current.name }}</h2>
504
+ <VueTabs
505
+ :active-tab="activeTab"
506
+ :aria-label="\`\${current.name} tabs\`"
507
+ @tab-change="activeTab = $event.activeTab"
508
+ >
509
+ <VueTab panel="preview">Preview</VueTab>
510
+ <VueTab panel="html">HTML</VueTab>
511
+ <VueTab panel="info">Info</VueTab>
512
+ <VueTabPanel panel="preview" id="preview">
513
+ <div class="av-preview">
514
+ ${previewBlocks}
515
+ <template v-else>
516
+ <component
517
+ v-if="componentMap[current.name]"
518
+ :is="componentMap[current.name]"
519
+ />
520
+ <div v-else class="av-complex-note">
521
+ <p>{{ current.name }} requires additional props or interaction to preview.</p>
522
+ </div>
523
+ </template>
524
+ </div>
525
+ </VueTabPanel>
526
+ <VueTabPanel panel="html" id="html">
527
+ <div class="av-code-block">
528
+ <pre><code>{{ current.importSnippet }}</code></pre>
529
+ <VueCopyButton :text="current.importSnippet" size="sm" />
530
+ </div>
531
+ </VueTabPanel>
532
+ <VueTabPanel panel="info" id="info">
533
+ <div class="av-info">
534
+ <dl>
535
+ <dt>Version</dt>
536
+ <dd>{{ current.version }}</dd>
537
+ <dt>Added</dt>
538
+ <dd>{{ new Date(current.addedDate).toLocaleDateString() }}</dd>
539
+ </dl>
540
+ </div>
541
+ </VueTabPanel>
542
+ </VueTabs>
543
+ </template>
544
+ </main>
545
+ </div>
546
+ </div>
547
+ </template>
548
+ `;
549
+ }
550
+ // ---------------------------------------------------------------------------
551
+ // Lit / vanilla App (App.ts) — vanilla DOM approach
552
+ // ---------------------------------------------------------------------------
553
+ function generateLitApp(installedComponents, componentsPath, hasTheme) {
554
+ const names = Object.keys(installedComponents).sort();
555
+ const coreImports = names
556
+ .map(n => `import '@ag-components/${n}/core/${n}'`)
557
+ .join('\n');
558
+ const themeImport = hasTheme
559
+ ? `import '@ag-components/styles/ag-theme.css'` : '';
560
+ const componentEntries = names.map(n => {
561
+ const meta = installedComponents[n];
562
+ const snippet = `import '${componentsPath}/${n}/core/${n}'`;
563
+ const renderHtml = getLitRenderHtml(n);
564
+ return ` {
565
+ name: ${JSON.stringify(n)},
566
+ tagName: ${JSON.stringify(getAgTagName(n))},
567
+ version: ${JSON.stringify(meta.version)},
568
+ addedDate: ${JSON.stringify(meta.added)},
569
+ files: ${JSON.stringify(meta.files)},
570
+ importSnippet: ${JSON.stringify(snippet)},
571
+ renderHTML: ${JSON.stringify(renderHtml)},
572
+ }`;
573
+ }).join(',\n');
574
+ return `// Auto-generated by \`ag view\`. Do not edit manually.
575
+ import '@ag-ref/Header/core/Header'
576
+ import '@ag-ref/Tabs/core/Tabs'
577
+ import '@ag-ref/CopyButton/core/CopyButton'
578
+ import '@ag-components/styles/ag-tokens.css'
579
+ import '@ag-components/styles/ag-tokens-dark.css'
580
+ ${themeImport}
581
+ import './viewer.css'
582
+
583
+ ${coreImports}
584
+
585
+ type ComponentInfo = {
586
+ name: string
587
+ tagName: string
588
+ version: string
589
+ addedDate: string
590
+ files: string[]
591
+ importSnippet: string
592
+ renderHTML: string
593
+ }
594
+
595
+ const COMPONENTS: ComponentInfo[] = [
596
+ ${componentEntries}
597
+ ]
598
+
599
+ let selectedName = COMPONENTS[0]?.name ?? ''
600
+
601
+ function escHtml(str: string): string {
602
+ return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;')
603
+ }
604
+
605
+ function render(): void {
606
+ const current = COMPONENTS.find(c => c.name === selectedName) ?? COMPONENTS[0]
607
+ if (!current) return
608
+
609
+ const navItems = COMPONENTS.map(c =>
610
+ \`<button class="av-nav-item\${c.name === selectedName ? ' av-nav-item--active' : ''}" data-component="\${c.name}">\${c.name}</button>\`
611
+ ).join('\\n')
612
+
613
+ document.body.innerHTML = \`
614
+ <div class="av-layout">
615
+ <ag-header>
616
+ <span class="av-brand">AgnosticUI Component Viewer</span>
617
+ </ag-header>
618
+ <div class="av-body">
619
+ <aside class="av-sidebar">
620
+ <div class="av-overview">
621
+ <p>Browse your ejected components. Click a name to preview.</p>
622
+ <p>Add more with <<code>ag add &lt;name&gt;</code>. <a href="https://www.agnosticui.com/installation.html#agnosticui-cli-recommended" target="_blank" rel="noopener">CLI docs &rarr;</a></p>
623
+ </div>
624
+ <nav class="av-nav">
625
+ \${navItems}
626
+ </nav>
627
+ </aside>
628
+ <main class="av-main">
629
+ <h2 class="av-component-title">\${current.name}</h2>
630
+ <ag-tabs aria-label="\${current.name} tabs">
631
+ <ag-tab slot="tab" panel="preview">Preview</ag-tab>
632
+ <ag-tab slot="tab" panel="html">HTML</ag-tab>
633
+ <ag-tab slot="tab" panel="info">Info</ag-tab>
634
+ <ag-tab-panel slot="panel" id="preview">
635
+ <div class="av-preview">\${current.renderHTML}</div>
636
+ </ag-tab-panel>
637
+ <ag-tab-panel slot="panel" id="html">
638
+ <div class="av-code-block">
639
+ <pre><code>\${escHtml(current.importSnippet)}</code></pre>
640
+ <ag-copy-button text="\${current.importSnippet.replace(/"/g, '&quot;')}" size="sm"></ag-copy-button>
641
+ </div>
642
+ </ag-tab-panel>
643
+ <ag-tab-panel slot="panel" id="info">
644
+ <div class="av-info">
645
+ <dl>
646
+ <dt>Version</dt><dd>\${current.version}</dd>
647
+ <dt>Added</dt><dd>\${new Date(current.addedDate).toLocaleDateString()}</dd>
648
+ </dl>
649
+ </div>
650
+ </ag-tab-panel>
651
+ </ag-tabs>
652
+ </main>
653
+ </div>
654
+ </div>
655
+ \`
656
+
657
+ // Re-attach nav listeners after each re-render
658
+ document.querySelectorAll<HTMLElement>('.av-nav-item').forEach(btn => {
659
+ btn.addEventListener('click', () => {
660
+ selectedName = btn.dataset.component ?? ''
661
+ render()
662
+ })
663
+ })
664
+ }
665
+
666
+ render()
667
+ `;
668
+ }
669
+ // ---------------------------------------------------------------------------
670
+ // Viewer CSS (same for all frameworks)
671
+ // ---------------------------------------------------------------------------
672
+ function generateViewerCss() {
673
+ return `/* AgnosticUI Component Viewer — Chrome Styles */
674
+ *, *::before, *::after { box-sizing: border-box; }
675
+
676
+ body {
677
+ margin: 0;
678
+ font-family: var(--ag-font-family-base, system-ui, -apple-system, sans-serif);
679
+ background: var(--ag-background-primary, #ffffff);
680
+ color: var(--ag-text-primary, #111827);
681
+ font-size: 16px;
682
+ line-height: 1.5;
683
+ }
684
+
685
+ .av-layout {
686
+ display: flex;
687
+ flex-direction: column;
688
+ min-height: 100vh;
689
+ }
690
+
691
+ .av-body {
692
+ display: flex;
693
+ flex: 1;
694
+ min-height: 0;
695
+ overflow: hidden;
696
+ }
697
+
698
+ /* Sidebar */
699
+ .av-sidebar {
700
+ width: 220px;
701
+ flex-shrink: 0;
702
+ border-right: 1px solid var(--ag-border-color, #e5e7eb);
703
+ overflow-y: auto;
704
+ padding: 1.25rem 1rem;
705
+ background: var(--ag-background-secondary, #f9fafb);
706
+ }
707
+
708
+ .av-overview {
709
+ font-size: 0.8125rem;
710
+ color: var(--ag-text-secondary, #6b7280);
711
+ margin-bottom: 1.25rem;
712
+ padding-bottom: 1rem;
713
+ border-bottom: 1px solid var(--ag-border-color, #e5e7eb);
714
+ line-height: 1.55;
715
+ }
716
+
717
+ .av-overview p { margin: 0 0 0.5rem; }
718
+ .av-overview p:last-child { margin-bottom: 0; }
719
+
720
+ .av-overview a {
721
+ color: var(--ag-color-primary, #2563eb);
722
+ text-decoration: none;
723
+ }
724
+ .av-overview a:hover { text-decoration: underline; }
725
+
726
+ .av-overview code {
727
+ font-family: var(--ag-font-family-mono, monospace);
728
+ font-size: 0.75rem;
729
+ background: var(--ag-background-muted, #f3f4f6);
730
+ padding: 0.125rem 0.25rem;
731
+ border-radius: 3px;
732
+ }
733
+
734
+ /* Nav */
735
+ .av-nav {
736
+ display: flex;
737
+ flex-direction: column;
738
+ gap: 2px;
739
+ }
740
+
741
+ .av-nav-item {
742
+ display: block;
743
+ width: 100%;
744
+ text-align: left;
745
+ padding: 0.375rem 0.625rem;
746
+ border: none;
747
+ border-radius: 0.25rem;
748
+ background: transparent;
749
+ color: var(--ag-text-secondary, #374151);
750
+ cursor: pointer;
751
+ font-size: 0.875rem;
752
+ font-family: inherit;
753
+ transition: background 0.1s, color 0.1s;
754
+ }
755
+
756
+ .av-nav-item:hover {
757
+ background: var(--ag-background-muted, #f3f4f6);
758
+ color: var(--ag-text-primary, #111827);
759
+ }
760
+
761
+ .av-nav-item--active {
762
+ background: var(--ag-color-primary-50, #eff6ff);
763
+ color: var(--ag-color-primary-700, #1d4ed8);
764
+ font-weight: 600;
765
+ }
766
+
767
+ /* Main content */
768
+ .av-main {
769
+ flex: 1;
770
+ padding: 2rem;
771
+ overflow-y: auto;
772
+ }
773
+
774
+ .av-component-title {
775
+ margin: 0 0 1.25rem;
776
+ font-size: 1.5rem;
777
+ font-weight: 700;
778
+ color: var(--ag-text-primary, #111827);
779
+ }
780
+
781
+ /* Header brand */
782
+ .av-brand {
783
+ font-weight: 600;
784
+ font-size: 1rem;
785
+ }
786
+
787
+ /* Preview area */
788
+ .av-preview {
789
+ padding: 2rem;
790
+ border: 1px solid var(--ag-border-color, #e5e7eb);
791
+ border-radius: 0.5rem;
792
+ background: var(--ag-background-primary, #ffffff);
793
+ min-height: 120px;
794
+ display: flex;
795
+ flex-wrap: wrap;
796
+ align-items: flex-start;
797
+ gap: 1rem;
798
+ }
799
+
800
+ /* Code block */
801
+ .av-code-block {
802
+ background: var(--ag-background-secondary, #f9fafb);
803
+ border: 1px solid var(--ag-border-color, #e5e7eb);
804
+ border-radius: 0.5rem;
805
+ padding: 1.25rem;
806
+ }
807
+
808
+ .av-code-block pre {
809
+ margin: 0 0 1rem;
810
+ overflow-x: auto;
811
+ }
812
+
813
+ .av-code-block code {
814
+ font-family: var(--ag-font-family-mono, 'Fira Code', 'Cascadia Code', monospace);
815
+ font-size: 0.875rem;
816
+ color: var(--ag-text-primary, #111827);
817
+ }
818
+
819
+ /* Info panel */
820
+ .av-info { font-size: 0.875rem; }
821
+
822
+ .av-info dl {
823
+ display: grid;
824
+ grid-template-columns: auto 1fr;
825
+ gap: 0.5rem 1.5rem;
826
+ margin: 0;
827
+ }
828
+
829
+ .av-info dt {
830
+ font-weight: 600;
831
+ color: var(--ag-text-secondary, #6b7280);
832
+ }
833
+
834
+ .av-info dd {
835
+ margin: 0;
836
+ color: var(--ag-text-primary, #374151);
837
+ word-break: break-all;
838
+ }
839
+
840
+ /* Complex component placeholder */
841
+ .av-complex-note {
842
+ color: var(--ag-text-secondary, #6b7280);
843
+ font-size: 0.875rem;
844
+ font-style: italic;
845
+ }
846
+ `;
847
+ }
848
+ // ---------------------------------------------------------------------------
849
+ // Public: orchestrator
850
+ // ---------------------------------------------------------------------------
851
+ export async function generateViewerApp(config, viewerPath, cwd) {
852
+ const componentsAbsPath = path.resolve(cwd, config.paths.components);
853
+ const refLibAbsPath = path.resolve(cwd, config.paths.reference);
854
+ const hasTheme = detectThemeFile(componentsAbsPath);
855
+ // Extract component metadata
856
+ const installedComponents = {};
857
+ for (const [name, entry] of Object.entries(config.components)) {
858
+ installedComponents[name] = {
859
+ version: entry.version,
860
+ added: entry.added,
861
+ files: entry.files,
862
+ };
863
+ }
864
+ const { framework } = config;
865
+ const srcPath = path.join(viewerPath, 'src');
866
+ await ensureDir(srcPath);
867
+ // Root files
868
+ await writeFile(path.join(viewerPath, 'package.json'), generatePackageJson(framework));
869
+ await writeFile(path.join(viewerPath, 'tsconfig.json'), generateTsConfig(framework));
870
+ await writeFile(path.join(viewerPath, 'vite.config.ts'), generateViteConfig(framework, componentsAbsPath, refLibAbsPath));
871
+ await writeFile(path.join(viewerPath, 'index.html'), generateIndexHtml(framework));
872
+ // src/ files
873
+ let mainContent;
874
+ let appContent;
875
+ let appFileName;
876
+ if (framework === 'react') {
877
+ mainContent = generateReactMain();
878
+ appContent = generateReactApp(installedComponents, config.paths.components, hasTheme);
879
+ appFileName = 'App.tsx';
880
+ await writeFile(path.join(srcPath, 'main.tsx'), mainContent);
881
+ }
882
+ else if (framework === 'vue') {
883
+ mainContent = generateVueMain();
884
+ appContent = generateVueApp(installedComponents, config.paths.components, hasTheme);
885
+ appFileName = 'App.vue';
886
+ await writeFile(path.join(srcPath, 'main.ts'), mainContent);
887
+ }
888
+ else {
889
+ // lit / svelte / other
890
+ mainContent = generateLitMain();
891
+ appContent = generateLitApp(installedComponents, config.paths.components, hasTheme);
892
+ appFileName = 'App.ts';
893
+ await writeFile(path.join(srcPath, 'main.ts'), mainContent);
894
+ }
895
+ await writeFile(path.join(srcPath, appFileName), appContent);
896
+ await writeFile(path.join(srcPath, 'viewer.css'), generateViewerCss());
897
+ }
898
+ //# sourceMappingURL=viewer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/utils/viewer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agnosticui-cli",
3
- "version": "2.0.0-alpha.14",
3
+ "version": "2.0.0-alpha.16",
4
4
  "description": "CLI for AgnosticUI Local - The UI kit that lives in your codebase",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -16,7 +16,8 @@
16
16
  "scripts": {
17
17
  "build": "tsc",
18
18
  "dev": "tsc --watch",
19
- "test": "echo \"Tests coming soon\"",
19
+ "test": "vitest run",
20
+ "test:watch": "vitest",
20
21
  "lint": "eslint .",
21
22
  "typecheck": "tsc --noEmit"
22
23
  },
@@ -39,12 +40,13 @@
39
40
  "devDependencies": {
40
41
  "@types/node": "^22.10.1",
41
42
  "@types/tar": "^6.1.13",
42
- "typescript": "^5.7.2"
43
+ "typescript": "^5.7.2",
44
+ "vitest": "^2.1.9"
43
45
  },
44
46
  "peerDependencies": {
45
- "lit": "^3.0.0",
47
+ "@floating-ui/dom": "^1.0.0",
46
48
  "focus-trap": "^7.0.0",
47
- "@floating-ui/dom": "^1.0.0"
49
+ "lit": "^3.0.0"
48
50
  },
49
51
  "peerDependenciesMeta": {
50
52
  "focus-trap": {