aback-ui 0.0.0-stage → 0.2.1
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/LICENSE +21 -0
- package/README.md +85 -2
- package/dist/args.d.ts +15 -0
- package/dist/args.d.ts.map +1 -0
- package/dist/args.js +91 -0
- package/dist/args.js.map +1 -0
- package/dist/cli.d.ts +13 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +106 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/add.d.ts +29 -0
- package/dist/commands/add.d.ts.map +1 -0
- package/dist/commands/add.js +82 -0
- package/dist/commands/add.js.map +1 -0
- package/dist/commands/diff.d.ts +13 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +85 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/doctor.d.ts +8 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +45 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/init.d.ts +19 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +97 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/list.d.ts +11 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +42 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/view.d.ts +11 -0
- package/dist/commands/view.d.ts.map +1 -0
- package/dist/commands/view.js +43 -0
- package/dist/commands/view.js.map +1 -0
- package/dist/config.d.ts +66 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +297 -0
- package/dist/config.js.map +1 -0
- package/dist/diff.d.ts +30 -0
- package/dist/diff.d.ts.map +1 -0
- package/dist/diff.js +121 -0
- package/dist/diff.js.map +1 -0
- package/dist/doctor.d.ts +35 -0
- package/dist/doctor.d.ts.map +1 -0
- package/dist/doctor.js +203 -0
- package/dist/doctor.js.map +1 -0
- package/dist/errors.d.ts +6 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +12 -0
- package/dist/errors.js.map +1 -0
- package/dist/help.d.ts +3 -0
- package/dist/help.d.ts.map +1 -0
- package/dist/help.js +48 -0
- package/dist/help.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/install.d.ts +53 -0
- package/dist/install.d.ts.map +1 -0
- package/dist/install.js +119 -0
- package/dist/install.js.map +1 -0
- package/dist/logger.d.ts +14 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +47 -0
- package/dist/logger.js.map +1 -0
- package/dist/paths.d.ts +18 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +76 -0
- package/dist/paths.js.map +1 -0
- package/dist/prompt.d.ts +13 -0
- package/dist/prompt.d.ts.map +1 -0
- package/dist/prompt.js +25 -0
- package/dist/prompt.js.map +1 -0
- package/dist/registry.d.ts +49 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +216 -0
- package/dist/registry.js.map +1 -0
- package/dist/types.d.ts +88 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +59 -4
- package/registry/accordion.json +32 -0
- package/registry/alert-dialog.json +28 -0
- package/registry/alert.json +31 -0
- package/registry/article-layout.json +38 -0
- package/registry/avatar.json +31 -0
- package/registry/badge.json +33 -0
- package/registry/breadcrumbs.json +32 -0
- package/registry/button.json +34 -0
- package/registry/calendar.json +29 -0
- package/registry/card.json +30 -0
- package/registry/checkbox.json +33 -0
- package/registry/code-block.json +29 -0
- package/registry/collapsible.json +28 -0
- package/registry/combobox.json +30 -0
- package/registry/command.json +34 -0
- package/registry/contact-form.json +37 -0
- package/registry/cookie-consent.json +28 -0
- package/registry/copy-button.json +33 -0
- package/registry/cta-banner.json +32 -0
- package/registry/dashboard-shell.json +32 -0
- package/registry/date-picker.json +32 -0
- package/registry/description-list.json +28 -0
- package/registry/dialog.json +33 -0
- package/registry/dropdown-menu.json +33 -0
- package/registry/dropzone.json +31 -0
- package/registry/empty-state.json +32 -0
- package/registry/faq.json +31 -0
- package/registry/feature-grid.json +33 -0
- package/registry/field.json +29 -0
- package/registry/hero.json +32 -0
- package/registry/hover-card.json +28 -0
- package/registry/index.json +1633 -0
- package/registry/input-group.json +30 -0
- package/registry/input.json +29 -0
- package/registry/kbd.json +29 -0
- package/registry/label.json +29 -0
- package/registry/layout.json +32 -0
- package/registry/newsletter.json +35 -0
- package/registry/not-found.json +34 -0
- package/registry/page-header.json +29 -0
- package/registry/pagination.json +25 -0
- package/registry/popover.json +28 -0
- package/registry/pricing.json +35 -0
- package/registry/progress.json +28 -0
- package/registry/radio-group.json +28 -0
- package/registry/rating.json +32 -0
- package/registry/reading-progress.json +29 -0
- package/registry/relative-time.json +29 -0
- package/registry/scroll-area.json +28 -0
- package/registry/section-heading.json +30 -0
- package/registry/select.json +32 -0
- package/registry/separator.json +32 -0
- package/registry/settings-section.json +32 -0
- package/registry/share-buttons.json +34 -0
- package/registry/sheet.json +34 -0
- package/registry/sign-in.json +31 -0
- package/registry/site-footer.json +31 -0
- package/registry/site-header.json +37 -0
- package/registry/skeleton.json +28 -0
- package/registry/skip-link.json +30 -0
- package/registry/slider.json +28 -0
- package/registry/spinner.json +32 -0
- package/registry/stat.json +32 -0
- package/registry/steps.json +31 -0
- package/registry/switch.json +32 -0
- package/registry/table-of-contents.json +32 -0
- package/registry/table.json +28 -0
- package/registry/tabs.json +29 -0
- package/registry/textarea.json +29 -0
- package/registry/theme-toggle.json +34 -0
- package/registry/theme.json +16 -0
- package/registry/toast.json +29 -0
- package/registry/toggle-group.json +29 -0
- package/registry/tooltip.json +29 -0
- package/registry/users-table.json +36 -0
- package/registry/utils.json +19 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { findProjectRoot } from "../config.js";
|
|
2
|
+
import { diagnoseProject } from "../doctor.js";
|
|
3
|
+
import { commandError } from "../errors.js";
|
|
4
|
+
const SYMBOL = {
|
|
5
|
+
pass: "✓",
|
|
6
|
+
warn: "!",
|
|
7
|
+
fail: "✗",
|
|
8
|
+
skip: "–",
|
|
9
|
+
};
|
|
10
|
+
export async function runDoctor(options) {
|
|
11
|
+
const root = await findProjectRoot(options.cwd);
|
|
12
|
+
if (!root) {
|
|
13
|
+
throw commandError(`No package.json found from ${options.cwd}. Run this inside a JavaScript project.`);
|
|
14
|
+
}
|
|
15
|
+
const report = await diagnoseProject({ root });
|
|
16
|
+
if (options.json) {
|
|
17
|
+
options.logger.raw(JSON.stringify(report, null, 2));
|
|
18
|
+
return report.summary.ok ? 0 : 1;
|
|
19
|
+
}
|
|
20
|
+
const { logger } = options;
|
|
21
|
+
logger.raw("Aback UI doctor");
|
|
22
|
+
logger.dim(report.root);
|
|
23
|
+
logger.raw("");
|
|
24
|
+
for (const check of report.checks) {
|
|
25
|
+
logger.raw(`${SYMBOL[check.status]} ${check.title}: ${check.detail}`);
|
|
26
|
+
if (check.hint && check.status !== "pass") {
|
|
27
|
+
logger.dim(` → ${check.hint}`);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
const { passed, warnings, errors, skipped } = report.summary;
|
|
31
|
+
logger.raw("");
|
|
32
|
+
logger.raw(`${passed} passed, ${warnings} warning${warnings === 1 ? "" : "s"}, ` +
|
|
33
|
+
`${errors} error${errors === 1 ? "" : "s"}${skipped ? `, ${skipped} skipped` : ""}.`);
|
|
34
|
+
if (errors > 0) {
|
|
35
|
+
logger.warn("Fix the errors above, then run `aback-ui doctor` again.");
|
|
36
|
+
}
|
|
37
|
+
else if (warnings > 0) {
|
|
38
|
+
logger.info("No blocking problems. Review the warnings above.");
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
logger.success("Everything checks out.");
|
|
42
|
+
}
|
|
43
|
+
return report.summary.ok ? 0 : 1;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=doctor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAqB,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAS5C,MAAM,MAAM,GAAiC;IAC3C,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;IACT,IAAI,EAAE,GAAG;CACV,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAA6B;IAC3D,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,YAAY,CAChB,8BAA8B,OAAO,CAAC,GAAG,yCAAyC,CACnF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAC3B,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC9B,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACxB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEf,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC1C,MAAM,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;IAC7D,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACf,MAAM,CAAC,GAAG,CACR,GAAG,MAAM,YAAY,QAAQ,WAAW,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI;QACnE,GAAG,MAAM,SAAS,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CACvF,CAAC;IAEF,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACf,MAAM,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IACzE,CAAC;SAAM,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type InstallDependenciesOptions } from "../install.js";
|
|
2
|
+
import type { Logger } from "../logger.js";
|
|
3
|
+
import type { Prompter } from "../prompt.js";
|
|
4
|
+
import type { RegistryFetch } from "../types.js";
|
|
5
|
+
export interface InitCommandOptions {
|
|
6
|
+
cwd: string;
|
|
7
|
+
yes?: boolean;
|
|
8
|
+
force?: boolean;
|
|
9
|
+
css?: string;
|
|
10
|
+
noInstall?: boolean;
|
|
11
|
+
dryRun?: boolean;
|
|
12
|
+
registry?: string;
|
|
13
|
+
logger: Logger;
|
|
14
|
+
prompter: Prompter;
|
|
15
|
+
fetchImpl?: RegistryFetch;
|
|
16
|
+
installPackages?: (options: InstallDependenciesOptions) => Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
export declare function runInit(options: InitCommandOptions): Promise<number>;
|
|
19
|
+
//# sourceMappingURL=init.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAgBA,OAAO,EAIL,KAAK,0BAA0B,EAChC,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,0BAA0B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1E;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiH1E"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { createConfig, detectAlias, detectCssFile, detectFramework, detectPackageManager, detectTailwindMajor, findProjectRoot, loadConfig, readPackageJson, readTsconfig, resolveInstallDirs, writeConfig, } from "../config.js";
|
|
3
|
+
import { ensureThemeImport, installDependencies, writeItemFiles, } from "../install.js";
|
|
4
|
+
import { safeJoin } from "../paths.js";
|
|
5
|
+
import { RegistryClient, defaultRegistry } from "../registry.js";
|
|
6
|
+
import { commandError } from "../errors.js";
|
|
7
|
+
export async function runInit(options) {
|
|
8
|
+
const { logger } = options;
|
|
9
|
+
const projectRoot = await findProjectRoot(options.cwd);
|
|
10
|
+
if (!projectRoot) {
|
|
11
|
+
throw commandError(`No package.json found from ${options.cwd}. Run this inside a React project.`);
|
|
12
|
+
}
|
|
13
|
+
const existingConfig = await loadConfig(projectRoot);
|
|
14
|
+
if (existingConfig && !options.force) {
|
|
15
|
+
logger.info("aback-ui.json already exists. Nothing to do.");
|
|
16
|
+
logger.dim("Use `aback-ui add <component>` to install a component, or --force to rewrite the config.");
|
|
17
|
+
return 0;
|
|
18
|
+
}
|
|
19
|
+
const pkg = await readPackageJson(projectRoot);
|
|
20
|
+
const tailwindMajor = detectTailwindMajor(pkg);
|
|
21
|
+
if (tailwindMajor === null) {
|
|
22
|
+
throw commandError("Tailwind CSS is not installed. Aback UI needs Tailwind CSS v4; install it before running init.");
|
|
23
|
+
}
|
|
24
|
+
if (tailwindMajor < 4) {
|
|
25
|
+
throw commandError(`Tailwind CSS v${tailwindMajor} detected. The Aback theme uses Tailwind v4 directives (@theme inline); upgrade to v4 first.`);
|
|
26
|
+
}
|
|
27
|
+
const framework = detectFramework(pkg);
|
|
28
|
+
const tsconfig = await readTsconfig(projectRoot);
|
|
29
|
+
const alias = detectAlias(tsconfig, projectRoot);
|
|
30
|
+
if (!alias) {
|
|
31
|
+
logger.warn("No path alias found in tsconfig.json. Writing components with @/… aliases; add \"@/*\": [\"./src/*\"] to compilerOptions.paths if your build cannot resolve them.");
|
|
32
|
+
}
|
|
33
|
+
const cssRelative = options.css ?? existingConfig?.tailwind?.css ?? (await detectCssFile(projectRoot));
|
|
34
|
+
if (!cssRelative) {
|
|
35
|
+
throw commandError("Could not find your global stylesheet. Pass it explicitly, for example --css app/globals.css.");
|
|
36
|
+
}
|
|
37
|
+
const cssFile = safeJoin(projectRoot, cssRelative.replace(/^\.\//, ""));
|
|
38
|
+
const config = createConfig({
|
|
39
|
+
aliasPrefix: alias?.prefix ?? "@",
|
|
40
|
+
css: cssRelative.replace(/^\.\//, ""),
|
|
41
|
+
rsc: framework === "next",
|
|
42
|
+
tsx: true,
|
|
43
|
+
framework,
|
|
44
|
+
});
|
|
45
|
+
const registryBase = options.registry ?? process.env.ABACK_UI_REGISTRY ?? defaultRegistry();
|
|
46
|
+
const client = new RegistryClient({
|
|
47
|
+
registry: registryBase,
|
|
48
|
+
cwd: projectRoot,
|
|
49
|
+
registries: config.registries,
|
|
50
|
+
fetchImpl: options.fetchImpl,
|
|
51
|
+
});
|
|
52
|
+
logger.step("Adding the theme and shared utilities");
|
|
53
|
+
const items = await client.collect(["utils", "theme"]);
|
|
54
|
+
const dirs = await resolveInstallDirs(projectRoot, config);
|
|
55
|
+
const themeFile = path.join(dirs.styles, "aback.css");
|
|
56
|
+
if (!options.dryRun) {
|
|
57
|
+
await writeConfig(projectRoot, config);
|
|
58
|
+
logger.success("Wrote aback-ui.json");
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
logger.info("Would write aback-ui.json");
|
|
62
|
+
}
|
|
63
|
+
await writeItemFiles({
|
|
64
|
+
items,
|
|
65
|
+
projectRoot,
|
|
66
|
+
dirs,
|
|
67
|
+
overwrite: options.yes ? "never" : "prompt",
|
|
68
|
+
dryRun: options.dryRun,
|
|
69
|
+
log: logger,
|
|
70
|
+
prompt: options.prompter,
|
|
71
|
+
});
|
|
72
|
+
const themeImport = await ensureThemeImport({
|
|
73
|
+
cssFile,
|
|
74
|
+
themeFile,
|
|
75
|
+
dryRun: options.dryRun,
|
|
76
|
+
log: logger,
|
|
77
|
+
});
|
|
78
|
+
if (themeImport === "missing") {
|
|
79
|
+
logger.warn(`Stylesheet ${cssRelative} does not exist. Add the theme import manually.`);
|
|
80
|
+
}
|
|
81
|
+
const install = options.installPackages ?? installDependencies;
|
|
82
|
+
await install({
|
|
83
|
+
cwd: projectRoot,
|
|
84
|
+
packageManager: await detectPackageManager(projectRoot),
|
|
85
|
+
dependencies: items.flatMap((item) => item.dependencies ?? []),
|
|
86
|
+
noInstall: options.noInstall,
|
|
87
|
+
dryRun: options.dryRun,
|
|
88
|
+
log: logger,
|
|
89
|
+
});
|
|
90
|
+
logger.raw("");
|
|
91
|
+
logger.success("Aback UI is ready.");
|
|
92
|
+
logger.info("Next steps:");
|
|
93
|
+
logger.dim(" aback-ui add button");
|
|
94
|
+
logger.dim(" aback-ui list");
|
|
95
|
+
return 0;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Logger } from "../logger.js";
|
|
2
|
+
import type { RegistryFetch } from "../types.js";
|
|
3
|
+
export interface ListCommandOptions {
|
|
4
|
+
registry?: string;
|
|
5
|
+
query?: string;
|
|
6
|
+
json?: boolean;
|
|
7
|
+
logger: Logger;
|
|
8
|
+
fetchImpl?: RegistryFetch;
|
|
9
|
+
}
|
|
10
|
+
export declare function runList(options: ListCommandOptions): Promise<number>;
|
|
11
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAqB,MAAM,aAAa,CAAC;AAEpE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAgD1E"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { RegistryClient, defaultRegistry } from "../registry.js";
|
|
2
|
+
export async function runList(options) {
|
|
3
|
+
const client = new RegistryClient({
|
|
4
|
+
registry: options.registry ?? process.env.ABACK_UI_REGISTRY ?? defaultRegistry(),
|
|
5
|
+
fetchImpl: options.fetchImpl,
|
|
6
|
+
});
|
|
7
|
+
const index = await client.index();
|
|
8
|
+
const term = options.query?.trim().toLowerCase() ?? "";
|
|
9
|
+
const items = index.items.filter((item) => {
|
|
10
|
+
if (!term)
|
|
11
|
+
return true;
|
|
12
|
+
const haystack = `${item.name} ${item.title} ${item.description} ${(item.categories ?? []).join(" ")}`;
|
|
13
|
+
return haystack.toLowerCase().includes(term);
|
|
14
|
+
});
|
|
15
|
+
if (options.json) {
|
|
16
|
+
options.logger.raw(JSON.stringify(items, null, 2));
|
|
17
|
+
return 0;
|
|
18
|
+
}
|
|
19
|
+
if (items.length === 0) {
|
|
20
|
+
options.logger.warn(`No registry items matched "${options.query}".`);
|
|
21
|
+
return 1;
|
|
22
|
+
}
|
|
23
|
+
const width = Math.min(30, Math.max(...items.map((item) => item.name.length)));
|
|
24
|
+
const groups = new Map();
|
|
25
|
+
for (const item of items) {
|
|
26
|
+
const group = item.categories?.[0] ?? (item.type === "registry:ui" ? "Components" : "Other");
|
|
27
|
+
const list = groups.get(group) ?? [];
|
|
28
|
+
list.push(item);
|
|
29
|
+
groups.set(group, list);
|
|
30
|
+
}
|
|
31
|
+
for (const group of [...groups.keys()].sort((a, b) => a.localeCompare(b))) {
|
|
32
|
+
const list = groups.get(group) ?? [];
|
|
33
|
+
options.logger.raw(`${group} (${list.length})`);
|
|
34
|
+
for (const item of list.sort((a, b) => a.title.localeCompare(b.title))) {
|
|
35
|
+
options.logger.raw(` ${item.name.padEnd(width)} ${item.description}`);
|
|
36
|
+
}
|
|
37
|
+
options.logger.raw("");
|
|
38
|
+
}
|
|
39
|
+
options.logger.dim(`Install with: aback-ui add <name>`);
|
|
40
|
+
return 0;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAWjE,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAA2B;IACvD,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;QAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,eAAe,EAAE;QAChF,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;IACvD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QACxC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACvG,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;QACrE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CACpB,EAAE,EACF,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CACnD,CAAC;IAEF,MAAM,MAAM,GAAG,IAAI,GAAG,EAA+B,CAAC;IACtD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC7F,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACrC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YACvE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC;IAED,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACxD,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Logger } from "../logger.js";
|
|
2
|
+
import type { RegistryFetch } from "../types.js";
|
|
3
|
+
export interface ViewCommandOptions {
|
|
4
|
+
item: string;
|
|
5
|
+
registry?: string;
|
|
6
|
+
json?: boolean;
|
|
7
|
+
logger: Logger;
|
|
8
|
+
fetchImpl?: RegistryFetch;
|
|
9
|
+
}
|
|
10
|
+
export declare function runView(options: ViewCommandOptions): Promise<number>;
|
|
11
|
+
//# 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,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0C1E"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { RegistryClient, defaultRegistry } from "../registry.js";
|
|
2
|
+
export async function runView(options) {
|
|
3
|
+
const client = new RegistryClient({
|
|
4
|
+
registry: options.registry ?? process.env.ABACK_UI_REGISTRY ?? defaultRegistry(),
|
|
5
|
+
fetchImpl: options.fetchImpl,
|
|
6
|
+
});
|
|
7
|
+
const item = await client.item(options.item);
|
|
8
|
+
if (options.json) {
|
|
9
|
+
options.logger.raw(JSON.stringify(item, null, 2));
|
|
10
|
+
return 0;
|
|
11
|
+
}
|
|
12
|
+
const { logger } = options;
|
|
13
|
+
logger.raw(item.title ?? item.name);
|
|
14
|
+
logger.dim(`${item.name} · ${item.type}`);
|
|
15
|
+
logger.raw("");
|
|
16
|
+
logger.raw(item.description ?? "No description.");
|
|
17
|
+
logger.raw("");
|
|
18
|
+
const sections = [];
|
|
19
|
+
if (item.categories?.length)
|
|
20
|
+
sections.push(["Categories", item.categories.join(", ")]);
|
|
21
|
+
if (item.dependencies?.length)
|
|
22
|
+
sections.push(["Dependencies", item.dependencies.join(", ")]);
|
|
23
|
+
if (item.devDependencies?.length) {
|
|
24
|
+
sections.push(["Dev dependencies", item.devDependencies.join(", ")]);
|
|
25
|
+
}
|
|
26
|
+
if (item.registryDependencies?.length) {
|
|
27
|
+
sections.push(["Registry dependencies", item.registryDependencies.join(", ")]);
|
|
28
|
+
}
|
|
29
|
+
if (item.meta?.status)
|
|
30
|
+
sections.push(["Status", String(item.meta.status)]);
|
|
31
|
+
if (item.docs)
|
|
32
|
+
sections.push(["Docs", item.docs]);
|
|
33
|
+
for (const [label, value] of sections) {
|
|
34
|
+
logger.raw(`${label.padEnd(20)} ${value}`);
|
|
35
|
+
}
|
|
36
|
+
logger.raw("");
|
|
37
|
+
logger.raw("Files");
|
|
38
|
+
for (const file of item.files) {
|
|
39
|
+
logger.raw(` ${file.target ?? file.path}`);
|
|
40
|
+
}
|
|
41
|
+
return 0;
|
|
42
|
+
}
|
|
43
|
+
//# 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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"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { AbackConfig, InstallDirs, PackageManager } from "./types.js";
|
|
2
|
+
export interface PackageJson {
|
|
3
|
+
name?: string;
|
|
4
|
+
dependencies?: Record<string, string>;
|
|
5
|
+
devDependencies?: Record<string, string>;
|
|
6
|
+
packageManager?: string;
|
|
7
|
+
[key: string]: unknown;
|
|
8
|
+
}
|
|
9
|
+
export interface TsconfigPaths {
|
|
10
|
+
baseUrl?: string;
|
|
11
|
+
paths: Record<string, string[]>;
|
|
12
|
+
}
|
|
13
|
+
export interface AliasInfo {
|
|
14
|
+
/** The alias prefix, including the trailing slash, for example `@/`. */
|
|
15
|
+
prefix: string;
|
|
16
|
+
/** Absolute directory the alias resolves to. */
|
|
17
|
+
base: string;
|
|
18
|
+
/** Every raw path mapping from tsconfig, for custom alias lookups. */
|
|
19
|
+
paths: Record<string, string[]>;
|
|
20
|
+
}
|
|
21
|
+
export declare class ConfigError extends Error {
|
|
22
|
+
constructor(message: string);
|
|
23
|
+
}
|
|
24
|
+
export declare function existsPath(file: string): Promise<boolean>;
|
|
25
|
+
/** Walk upward from `start` until a package.json is found. */
|
|
26
|
+
export declare function findProjectRoot(start: string): Promise<string | null>;
|
|
27
|
+
export declare function readPackageJson(root: string): Promise<PackageJson>;
|
|
28
|
+
export declare function detectPackageManager(root: string): Promise<PackageManager>;
|
|
29
|
+
export declare function detectFramework(pkg: PackageJson): "next" | "vite" | "remix" | "astro" | "unknown";
|
|
30
|
+
/** Major version of the installed Tailwind package, or null when absent. */
|
|
31
|
+
export declare function detectTailwindMajor(pkg: PackageJson): number | null;
|
|
32
|
+
export declare function detectSrcDir(root: string): Promise<string>;
|
|
33
|
+
/**
|
|
34
|
+
* Strip comments and trailing commas from a JSON-with-comments file. The scan
|
|
35
|
+
* skips over strings, because tsconfig paths such as "@/*" and "**\/*.ts"
|
|
36
|
+
* look like comment markers.
|
|
37
|
+
*/
|
|
38
|
+
export declare function parseJsonc(source: string): unknown;
|
|
39
|
+
export declare function readTsconfig(root: string): Promise<TsconfigPaths>;
|
|
40
|
+
/**
|
|
41
|
+
* Resolve a path alias such as `@/components/ui` against the tsconfig paths.
|
|
42
|
+
* Returns null when the alias has no mapping or escapes the project.
|
|
43
|
+
*/
|
|
44
|
+
export declare function resolveAlias(alias: string, tsconfig: TsconfigPaths, root: string): {
|
|
45
|
+
absolute: string;
|
|
46
|
+
prefix: string;
|
|
47
|
+
} | null;
|
|
48
|
+
/** Best-effort alias from the tsconfig: prefer `@/*`, otherwise the first wildcard. */
|
|
49
|
+
export declare function detectAlias(tsconfig: TsconfigPaths, root: string): AliasInfo | null;
|
|
50
|
+
export declare function detectCssFile(root: string): Promise<string | null>;
|
|
51
|
+
/** The project configuration file `aback-ui init` writes. */
|
|
52
|
+
export declare const CONFIG_FILE = "aback-ui.json";
|
|
53
|
+
export declare function loadConfig(root: string): Promise<AbackConfig | null>;
|
|
54
|
+
export declare function writeConfig(root: string, config: AbackConfig): Promise<void>;
|
|
55
|
+
export interface ConfigInput {
|
|
56
|
+
aliasPrefix: string;
|
|
57
|
+
css: string;
|
|
58
|
+
rsc: boolean;
|
|
59
|
+
tsx: boolean;
|
|
60
|
+
framework: ReturnType<typeof detectFramework>;
|
|
61
|
+
}
|
|
62
|
+
export declare function createConfig({ aliasPrefix, css, rsc, tsx, framework }: ConfigInput): AbackConfig;
|
|
63
|
+
/** Project directories for each alias, resolved against the project root. */
|
|
64
|
+
export declare function resolveInstallDirs(root: string, config: AbackConfig): Promise<InstallDirs>;
|
|
65
|
+
export declare function ensureDirectory(directory: string): Promise<void>;
|
|
66
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|