agnosticui-cli 2.0.0-alpha.13 → 2.0.0-alpha.15
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 +30 -1
- package/dist/cli.js +11 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/context.d.ts +3 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +243 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +7 -5
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ AgnosticUI Local is a new approach to UI libraries. Instead of installing compon
|
|
|
10
10
|
|
|
11
11
|
**Benefits:**
|
|
12
12
|
|
|
13
|
-
- **AI-Friendly**:
|
|
13
|
+
- **AI-Friendly**: Run `ag context` to generate a `CLAUDE.md` that gives AI coding tools (Claude Code, Cursor, Windsurf) full awareness of your installed components and their props
|
|
14
14
|
- **Complete Ownership**: Components are copied to your project - modify them however you want
|
|
15
15
|
- **Zero Lock-in**: No black boxes, no vendor dependencies
|
|
16
16
|
- **Upgrade Safety**: Reference library updates independently from your customized components
|
|
@@ -121,6 +121,35 @@ Available playbooks include: `login`, `login-v2`, `onboarding`, `onboarding-v2`,
|
|
|
121
121
|
Each playbook is a self-contained Vite project you can run directly (`npm install && npm run dev`)
|
|
122
122
|
or use as a reference while copying the pieces you need into your own project.
|
|
123
123
|
|
|
124
|
+
### `ag context`
|
|
125
|
+
|
|
126
|
+
Generate an AI context file from your installed components. The file describes every installed
|
|
127
|
+
component — its import path, props, and types — so AI coding tools (Claude Code, Cursor, Windsurf,
|
|
128
|
+
Copilot) automatically understand your local component library.
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
ag context [options]
|
|
132
|
+
|
|
133
|
+
Options:
|
|
134
|
+
-f, --format <tool> AI tool to target: claude, cursor, copilot, windsurf, openai, gemini, generic
|
|
135
|
+
-o, --output <path> Explicit output path (overrides --format and auto-detect)
|
|
136
|
+
|
|
137
|
+
Examples:
|
|
138
|
+
npx agnosticui-cli context # Auto-detect tool, default to CLAUDE.md
|
|
139
|
+
npx agnosticui-cli context --format cursor # Write to .cursor/rules/agnosticui.mdc
|
|
140
|
+
npx agnosticui-cli context --format copilot # Write to .github/copilot-instructions.md
|
|
141
|
+
npx agnosticui-cli context --format windsurf # Write to .windsurfrules
|
|
142
|
+
npx agnosticui-cli context --format openai # Write to AGENTS.md
|
|
143
|
+
npx agnosticui-cli context --output my-ai.md # Custom path
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
When no `--format` or `--output` is given, the command auto-detects configured AI tools
|
|
147
|
+
(by checking for `.claude/`, `.cursor/`, `.windsurfrules`, etc.) and picks the right file.
|
|
148
|
+
If multiple tools are detected, an interactive prompt asks which to use.
|
|
149
|
+
|
|
150
|
+
The output file uses HTML sentinel markers so re-running only replaces the AgnosticUI
|
|
151
|
+
section — anything else in the file is preserved. Re-run after adding or updating components.
|
|
152
|
+
|
|
124
153
|
## How It Works
|
|
125
154
|
|
|
126
155
|
After running `ag init`, your project structure looks like this:
|
package/dist/cli.js
CHANGED
|
@@ -34,11 +34,12 @@ import { remove } from "./commands/remove.js";
|
|
|
34
34
|
import { list } from "./commands/list.js";
|
|
35
35
|
import { sync } from "./commands/sync.js";
|
|
36
36
|
import { playbook } from "./commands/playbook.js";
|
|
37
|
+
import { context } from "./commands/context.js";
|
|
37
38
|
const program = new Command();
|
|
38
39
|
program
|
|
39
40
|
.name("ag")
|
|
40
41
|
.description("AgnosticUI Local - The UI kit that lives in your codebase")
|
|
41
|
-
.version("2.0.0-alpha.
|
|
42
|
+
.version("2.0.0-alpha.15");
|
|
42
43
|
// ag init command
|
|
43
44
|
program
|
|
44
45
|
.command("init")
|
|
@@ -116,6 +117,15 @@ program
|
|
|
116
117
|
force: options.force,
|
|
117
118
|
});
|
|
118
119
|
});
|
|
120
|
+
// ag context command
|
|
121
|
+
program
|
|
122
|
+
.command("context")
|
|
123
|
+
.description("Generate an AI context file from your installed components")
|
|
124
|
+
.option("-o, --output <path>", "Explicit output file path (overrides --format and auto-detect)")
|
|
125
|
+
.option("-f, --format <tool>", "AI tool to target: claude, cursor, copilot, windsurf, openai, gemini, generic")
|
|
126
|
+
.action(async (options) => {
|
|
127
|
+
await context({ output: options.output, format: options.format });
|
|
128
|
+
});
|
|
119
129
|
// Parse arguments
|
|
120
130
|
program.parse();
|
|
121
131
|
//# 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":";AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAsJxD,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsHzE"}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ag context command - Generate an AI context file from installed components
|
|
3
|
+
*/
|
|
4
|
+
import * as p from '@clack/prompts';
|
|
5
|
+
import path from 'node:path';
|
|
6
|
+
import { existsSync } from 'node:fs';
|
|
7
|
+
import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
|
8
|
+
import { loadConfig, saveConfig } from '../utils/config.js';
|
|
9
|
+
import { logger } from '../utils/logger.js';
|
|
10
|
+
import pc from 'picocolors';
|
|
11
|
+
const SECTION_START = '<!-- agnosticui:context:start -->';
|
|
12
|
+
const SECTION_END = '<!-- agnosticui:context:end -->';
|
|
13
|
+
// Known AI tool formats and their default output paths.
|
|
14
|
+
// Detection signals are files/dirs that indicate the tool is configured in this project.
|
|
15
|
+
const AI_TOOLS = {
|
|
16
|
+
claude: { label: 'Claude Code', file: 'CLAUDE.md', detect: ['.claude', 'CLAUDE.md'] },
|
|
17
|
+
cursor: { label: 'Cursor', file: '.cursor/rules/agnosticui.mdc', detect: ['.cursor', '.cursorrules'] },
|
|
18
|
+
copilot: { label: 'GitHub Copilot', file: '.github/copilot-instructions.md', detect: ['.github/copilot-instructions.md'] },
|
|
19
|
+
windsurf: { label: 'Windsurf', file: '.windsurfrules', detect: ['.windsurfrules', '.windsurf'] },
|
|
20
|
+
openai: { label: 'OpenAI / Codex', file: 'AGENTS.md', detect: ['AGENTS.md'] },
|
|
21
|
+
gemini: { label: 'Gemini CLI', file: 'GEMINI.md', detect: ['GEMINI.md'] },
|
|
22
|
+
generic: { label: 'Generic (llms.txt)', file: 'llms.txt', detect: [] },
|
|
23
|
+
};
|
|
24
|
+
/** Detect which AI tools appear to be configured in the project */
|
|
25
|
+
function detectTools(cwd) {
|
|
26
|
+
return Object.keys(AI_TOOLS).filter(tool => AI_TOOLS[tool].detect.some(signal => existsSync(path.join(cwd, signal))));
|
|
27
|
+
}
|
|
28
|
+
/** Wrap section content with Cursor MDC frontmatter when needed */
|
|
29
|
+
function wrapForTool(tool, content) {
|
|
30
|
+
if (tool === 'cursor') {
|
|
31
|
+
return `---\napplyTo: '**'\n---\n\n${content}`;
|
|
32
|
+
}
|
|
33
|
+
return content;
|
|
34
|
+
}
|
|
35
|
+
/** Convert PascalCase component name to ag-kebab-case web component tag */
|
|
36
|
+
function toAgTag(name) {
|
|
37
|
+
return 'ag-' + name.replace(/([A-Z])/g, (m, l, i) => (i === 0 ? '' : '-') + l.toLowerCase());
|
|
38
|
+
}
|
|
39
|
+
/** Build the framework-specific import statement */
|
|
40
|
+
function buildImport(componentName, framework, componentsPath) {
|
|
41
|
+
const base = componentsPath.replace(/^\.\//, '').replace(/\/$/, '');
|
|
42
|
+
switch (framework) {
|
|
43
|
+
case 'react':
|
|
44
|
+
return `import { React${componentName} } from './${base}/${componentName}/react/React${componentName}';`;
|
|
45
|
+
case 'vue':
|
|
46
|
+
return `import Vue${componentName} from './${base}/${componentName}/vue/Vue${componentName}.vue';`;
|
|
47
|
+
default:
|
|
48
|
+
// Lit, Svelte, other — import the core web component
|
|
49
|
+
return `import './${base}/${componentName}/core/${componentName}';`;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Extract the Props interface block from a TypeScript source file.
|
|
54
|
+
* Returns the raw property lines (trimmed, comments stripped) or null if not found.
|
|
55
|
+
*/
|
|
56
|
+
async function extractProps(filePath) {
|
|
57
|
+
try {
|
|
58
|
+
const content = await readFile(filePath, 'utf-8');
|
|
59
|
+
const match = content.match(/export interface \w+Props \{([\s\S]*?)\n\}/);
|
|
60
|
+
if (!match)
|
|
61
|
+
return null;
|
|
62
|
+
return match[1]
|
|
63
|
+
.split('\n')
|
|
64
|
+
.filter(line => line.trim() && !line.trim().startsWith('//') && !line.trim().startsWith('*'))
|
|
65
|
+
.map(line => line.trim())
|
|
66
|
+
.join('\n');
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Find the canonical _Component.ts props file in the component's core directory.
|
|
74
|
+
* Tries PascalCase first (_Button.ts), then lowercase (_dialog.ts).
|
|
75
|
+
*/
|
|
76
|
+
function findPropsFile(cwd, componentsPath, componentName) {
|
|
77
|
+
const coreDir = path.join(cwd, componentsPath, componentName, 'core');
|
|
78
|
+
const pascal = path.join(coreDir, `_${componentName}.ts`);
|
|
79
|
+
if (existsSync(pascal))
|
|
80
|
+
return pascal;
|
|
81
|
+
const lower = path.join(coreDir, `_${componentName.toLowerCase()}.ts`);
|
|
82
|
+
if (existsSync(lower))
|
|
83
|
+
return lower;
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
/** Generate the AgnosticUI markdown body (shared across all tool formats) */
|
|
87
|
+
async function generateBody(config, cwd) {
|
|
88
|
+
const { framework, version, paths, components } = config;
|
|
89
|
+
const componentNames = Object.keys(components).sort();
|
|
90
|
+
const usesWebComponentTag = framework === 'lit' || framework === 'svelte' || framework === 'other';
|
|
91
|
+
const lines = [
|
|
92
|
+
SECTION_START,
|
|
93
|
+
'## AgnosticUI Components',
|
|
94
|
+
'',
|
|
95
|
+
`This project uses AgnosticUI Local (v${version}, ${framework} framework).`,
|
|
96
|
+
`Components are installed at \`${paths.components}\`.`,
|
|
97
|
+
'',
|
|
98
|
+
`> Re-run \`npx agnosticui-cli context\` after adding or updating components.`,
|
|
99
|
+
'',
|
|
100
|
+
];
|
|
101
|
+
for (const name of componentNames) {
|
|
102
|
+
const importLine = buildImport(name, framework, paths.components);
|
|
103
|
+
const propsFile = findPropsFile(cwd, paths.components, name);
|
|
104
|
+
const propsBlock = propsFile ? await extractProps(propsFile) : null;
|
|
105
|
+
lines.push(`### ${name}`, '');
|
|
106
|
+
lines.push(`**Import:** \`${importLine}\``);
|
|
107
|
+
if (usesWebComponentTag) {
|
|
108
|
+
lines.push(`**Tag:** \`<${toAgTag(name)}>\``);
|
|
109
|
+
}
|
|
110
|
+
lines.push('');
|
|
111
|
+
if (propsBlock) {
|
|
112
|
+
lines.push('**Props:**');
|
|
113
|
+
lines.push('```typescript');
|
|
114
|
+
lines.push(propsBlock);
|
|
115
|
+
lines.push('```');
|
|
116
|
+
lines.push('');
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
lines.push(SECTION_END);
|
|
120
|
+
return lines.join('\n');
|
|
121
|
+
}
|
|
122
|
+
/** Insert or replace the AgnosticUI section in an existing file using sentinel markers */
|
|
123
|
+
function spliceSection(existing, newSection) {
|
|
124
|
+
const startIdx = existing.indexOf(SECTION_START);
|
|
125
|
+
const endIdx = existing.indexOf(SECTION_END);
|
|
126
|
+
if (startIdx !== -1 && endIdx !== -1) {
|
|
127
|
+
return (existing.slice(0, startIdx) +
|
|
128
|
+
newSection +
|
|
129
|
+
existing.slice(endIdx + SECTION_END.length));
|
|
130
|
+
}
|
|
131
|
+
// Section not found — append
|
|
132
|
+
return existing.trimEnd() + '\n\n' + newSection + '\n';
|
|
133
|
+
}
|
|
134
|
+
export async function context(options = {}) {
|
|
135
|
+
console.log('');
|
|
136
|
+
p.intro(pc.bold(pc.cyan('AgnosticUI Context Generator')));
|
|
137
|
+
const config = await loadConfig();
|
|
138
|
+
if (!config) {
|
|
139
|
+
logger.error('No agnosticui.config.json found. Run npx agnosticui-cli init first.');
|
|
140
|
+
process.exit(1);
|
|
141
|
+
}
|
|
142
|
+
const componentCount = Object.keys(config.components).length;
|
|
143
|
+
if (componentCount === 0) {
|
|
144
|
+
logger.warn('No components installed yet. Run npx agnosticui-cli add <component> first.');
|
|
145
|
+
process.exit(0);
|
|
146
|
+
}
|
|
147
|
+
const cwd = process.cwd();
|
|
148
|
+
// Resolve the output path in priority order:
|
|
149
|
+
// 1. --output flag (explicit user override)
|
|
150
|
+
// 2. --format flag (use that tool's default file)
|
|
151
|
+
// 3. Previously persisted contextPath (set by a prior ag context run — identified by file extension)
|
|
152
|
+
// 4. Auto-detect configured AI tools in the project
|
|
153
|
+
// 5. Fall back to CLAUDE.md
|
|
154
|
+
let outputPath;
|
|
155
|
+
if (options.output) {
|
|
156
|
+
outputPath = options.output;
|
|
157
|
+
}
|
|
158
|
+
else if (options.format) {
|
|
159
|
+
const tool = options.format;
|
|
160
|
+
if (!AI_TOOLS[tool]) {
|
|
161
|
+
logger.error(`Unknown format "${options.format}". Valid formats: ${Object.keys(AI_TOOLS).join(', ')}`);
|
|
162
|
+
process.exit(1);
|
|
163
|
+
}
|
|
164
|
+
outputPath = AI_TOOLS[tool].file;
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
const storedPath = config.ai?.contextPath;
|
|
168
|
+
const storedIsFile = storedPath ? path.extname(storedPath) !== '' : false;
|
|
169
|
+
if (storedIsFile) {
|
|
170
|
+
outputPath = storedPath;
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
const detected = detectTools(cwd);
|
|
174
|
+
if (detected.length === 1) {
|
|
175
|
+
outputPath = AI_TOOLS[detected[0]].file;
|
|
176
|
+
console.log(pc.dim(` Detected ${AI_TOOLS[detected[0]].label} — writing to ${outputPath}`));
|
|
177
|
+
}
|
|
178
|
+
else if (detected.length > 1) {
|
|
179
|
+
const choice = await p.select({
|
|
180
|
+
message: 'Multiple AI tools detected. Which should receive the context file?',
|
|
181
|
+
options: detected.map(tool => ({
|
|
182
|
+
value: tool,
|
|
183
|
+
label: `${AI_TOOLS[tool].label} ${pc.dim(AI_TOOLS[tool].file)}`,
|
|
184
|
+
})),
|
|
185
|
+
});
|
|
186
|
+
if (p.isCancel(choice)) {
|
|
187
|
+
p.cancel('Operation cancelled.');
|
|
188
|
+
process.exit(0);
|
|
189
|
+
}
|
|
190
|
+
outputPath = AI_TOOLS[choice].file;
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
// No tool detected — default to CLAUDE.md
|
|
194
|
+
outputPath = AI_TOOLS.claude.file;
|
|
195
|
+
console.log(pc.dim(` No AI tool detected — defaulting to ${outputPath}`));
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
const absOutputPath = path.resolve(cwd, outputPath);
|
|
200
|
+
const relOutputPath = path.relative(cwd, absOutputPath);
|
|
201
|
+
// Determine which tool this output file belongs to (for format-specific wrapping)
|
|
202
|
+
const matchedTool = Object.keys(AI_TOOLS).find(t => AI_TOOLS[t].file === outputPath || AI_TOOLS[t].file === relOutputPath) ?? 'claude';
|
|
203
|
+
const spinner = p.spinner();
|
|
204
|
+
spinner.start(`Generating context for ${componentCount} component(s)...`);
|
|
205
|
+
try {
|
|
206
|
+
const body = await generateBody(config, cwd);
|
|
207
|
+
// Ensure parent directory exists (e.g. .cursor/rules/)
|
|
208
|
+
await mkdir(path.dirname(absOutputPath), { recursive: true });
|
|
209
|
+
let finalContent;
|
|
210
|
+
if (existsSync(absOutputPath)) {
|
|
211
|
+
const existing = await readFile(absOutputPath, 'utf-8');
|
|
212
|
+
finalContent = spliceSection(existing, body);
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
finalContent = wrapForTool(matchedTool, body) + '\n';
|
|
216
|
+
}
|
|
217
|
+
await writeFile(absOutputPath, finalContent, 'utf-8');
|
|
218
|
+
spinner.stop(pc.green('✓') + ` Context written to ${pc.cyan(relOutputPath)}`);
|
|
219
|
+
}
|
|
220
|
+
catch (err) {
|
|
221
|
+
spinner.stop(pc.red('✖') + ' Failed to generate context');
|
|
222
|
+
logger.error(err instanceof Error ? err.message : 'Unknown error');
|
|
223
|
+
process.exit(1);
|
|
224
|
+
}
|
|
225
|
+
// Persist the output path so subsequent runs use the same file automatically
|
|
226
|
+
const persistPath = `./${relOutputPath}`;
|
|
227
|
+
if (config.ai?.contextPath !== persistPath) {
|
|
228
|
+
config.ai = { ...config.ai, contextPath: persistPath };
|
|
229
|
+
await saveConfig(config);
|
|
230
|
+
}
|
|
231
|
+
logger.newline();
|
|
232
|
+
logger.box('Context generated!', [
|
|
233
|
+
pc.dim('File: ') + pc.cyan(relOutputPath),
|
|
234
|
+
pc.dim('Components: ') + pc.white(String(componentCount)),
|
|
235
|
+
pc.dim('Framework: ') + pc.white(config.framework),
|
|
236
|
+
'',
|
|
237
|
+
pc.dim('AI coding tools (Claude Code, Cursor, Windsurf) will now'),
|
|
238
|
+
pc.dim('automatically know about your installed components.'),
|
|
239
|
+
'',
|
|
240
|
+
pc.dim('Re-run after adding components: ') + pc.cyan('npx agnosticui-cli context'),
|
|
241
|
+
]);
|
|
242
|
+
}
|
|
243
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/commands/context.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -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"}
|
|
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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agnosticui-cli",
|
|
3
|
-
"version": "2.0.0-alpha.
|
|
3
|
+
"version": "2.0.0-alpha.15",
|
|
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": "
|
|
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
|
-
"
|
|
47
|
+
"@floating-ui/dom": "^1.0.0",
|
|
46
48
|
"focus-trap": "^7.0.0",
|
|
47
|
-
"
|
|
49
|
+
"lit": "^3.0.0"
|
|
48
50
|
},
|
|
49
51
|
"peerDependenciesMeta": {
|
|
50
52
|
"focus-trap": {
|