aback-ui 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +85 -2
  3. package/dist/args.d.ts +15 -0
  4. package/dist/args.d.ts.map +1 -0
  5. package/dist/args.js +91 -0
  6. package/dist/args.js.map +1 -0
  7. package/dist/cli.d.ts +13 -0
  8. package/dist/cli.d.ts.map +1 -0
  9. package/dist/cli.js +106 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/commands/add.d.ts +29 -0
  12. package/dist/commands/add.d.ts.map +1 -0
  13. package/dist/commands/add.js +82 -0
  14. package/dist/commands/add.js.map +1 -0
  15. package/dist/commands/diff.d.ts +13 -0
  16. package/dist/commands/diff.d.ts.map +1 -0
  17. package/dist/commands/diff.js +85 -0
  18. package/dist/commands/diff.js.map +1 -0
  19. package/dist/commands/doctor.d.ts +8 -0
  20. package/dist/commands/doctor.d.ts.map +1 -0
  21. package/dist/commands/doctor.js +45 -0
  22. package/dist/commands/doctor.js.map +1 -0
  23. package/dist/commands/init.d.ts +19 -0
  24. package/dist/commands/init.d.ts.map +1 -0
  25. package/dist/commands/init.js +97 -0
  26. package/dist/commands/init.js.map +1 -0
  27. package/dist/commands/list.d.ts +11 -0
  28. package/dist/commands/list.d.ts.map +1 -0
  29. package/dist/commands/list.js +42 -0
  30. package/dist/commands/list.js.map +1 -0
  31. package/dist/commands/view.d.ts +11 -0
  32. package/dist/commands/view.d.ts.map +1 -0
  33. package/dist/commands/view.js +43 -0
  34. package/dist/commands/view.js.map +1 -0
  35. package/dist/config.d.ts +62 -0
  36. package/dist/config.d.ts.map +1 -0
  37. package/dist/config.js +265 -0
  38. package/dist/config.js.map +1 -0
  39. package/dist/diff.d.ts +30 -0
  40. package/dist/diff.d.ts.map +1 -0
  41. package/dist/diff.js +121 -0
  42. package/dist/diff.js.map +1 -0
  43. package/dist/doctor.d.ts +35 -0
  44. package/dist/doctor.d.ts.map +1 -0
  45. package/dist/doctor.js +203 -0
  46. package/dist/doctor.js.map +1 -0
  47. package/dist/errors.d.ts +6 -0
  48. package/dist/errors.d.ts.map +1 -0
  49. package/dist/errors.js +12 -0
  50. package/dist/errors.js.map +1 -0
  51. package/dist/help.d.ts +3 -0
  52. package/dist/help.d.ts.map +1 -0
  53. package/dist/help.js +48 -0
  54. package/dist/help.js.map +1 -0
  55. package/dist/index.d.ts +3 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +4 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/install.d.ts +53 -0
  60. package/dist/install.d.ts.map +1 -0
  61. package/dist/install.js +119 -0
  62. package/dist/install.js.map +1 -0
  63. package/dist/logger.d.ts +14 -0
  64. package/dist/logger.d.ts.map +1 -0
  65. package/dist/logger.js +47 -0
  66. package/dist/logger.js.map +1 -0
  67. package/dist/paths.d.ts +18 -0
  68. package/dist/paths.d.ts.map +1 -0
  69. package/dist/paths.js +76 -0
  70. package/dist/paths.js.map +1 -0
  71. package/dist/prompt.d.ts +13 -0
  72. package/dist/prompt.d.ts.map +1 -0
  73. package/dist/prompt.js +25 -0
  74. package/dist/prompt.js.map +1 -0
  75. package/dist/registry.d.ts +49 -0
  76. package/dist/registry.d.ts.map +1 -0
  77. package/dist/registry.js +216 -0
  78. package/dist/registry.js.map +1 -0
  79. package/dist/types.d.ts +88 -0
  80. package/dist/types.d.ts.map +1 -0
  81. package/dist/types.js +2 -0
  82. package/dist/types.js.map +1 -0
  83. package/package.json +59 -4
  84. package/registry/accordion.json +32 -0
  85. package/registry/alert-dialog.json +28 -0
  86. package/registry/alert.json +31 -0
  87. package/registry/article-layout.json +38 -0
  88. package/registry/avatar.json +31 -0
  89. package/registry/badge.json +33 -0
  90. package/registry/breadcrumbs.json +32 -0
  91. package/registry/button.json +34 -0
  92. package/registry/calendar.json +29 -0
  93. package/registry/card.json +30 -0
  94. package/registry/checkbox.json +33 -0
  95. package/registry/code-block.json +29 -0
  96. package/registry/collapsible.json +28 -0
  97. package/registry/combobox.json +30 -0
  98. package/registry/command.json +34 -0
  99. package/registry/contact-form.json +37 -0
  100. package/registry/cookie-consent.json +28 -0
  101. package/registry/copy-button.json +33 -0
  102. package/registry/cta-banner.json +32 -0
  103. package/registry/dashboard-shell.json +32 -0
  104. package/registry/date-picker.json +32 -0
  105. package/registry/description-list.json +28 -0
  106. package/registry/dialog.json +33 -0
  107. package/registry/dropdown-menu.json +33 -0
  108. package/registry/dropzone.json +31 -0
  109. package/registry/empty-state.json +32 -0
  110. package/registry/faq.json +31 -0
  111. package/registry/feature-grid.json +33 -0
  112. package/registry/field.json +29 -0
  113. package/registry/hero.json +32 -0
  114. package/registry/hover-card.json +28 -0
  115. package/registry/index.json +1633 -0
  116. package/registry/input-group.json +30 -0
  117. package/registry/input.json +29 -0
  118. package/registry/kbd.json +29 -0
  119. package/registry/label.json +29 -0
  120. package/registry/layout.json +32 -0
  121. package/registry/newsletter.json +35 -0
  122. package/registry/not-found.json +34 -0
  123. package/registry/page-header.json +29 -0
  124. package/registry/pagination.json +25 -0
  125. package/registry/popover.json +28 -0
  126. package/registry/pricing.json +35 -0
  127. package/registry/progress.json +28 -0
  128. package/registry/radio-group.json +28 -0
  129. package/registry/rating.json +32 -0
  130. package/registry/reading-progress.json +29 -0
  131. package/registry/relative-time.json +29 -0
  132. package/registry/scroll-area.json +28 -0
  133. package/registry/section-heading.json +30 -0
  134. package/registry/select.json +32 -0
  135. package/registry/separator.json +32 -0
  136. package/registry/settings-section.json +32 -0
  137. package/registry/share-buttons.json +34 -0
  138. package/registry/sheet.json +34 -0
  139. package/registry/sign-in.json +31 -0
  140. package/registry/site-footer.json +31 -0
  141. package/registry/site-header.json +37 -0
  142. package/registry/skeleton.json +28 -0
  143. package/registry/skip-link.json +30 -0
  144. package/registry/slider.json +28 -0
  145. package/registry/spinner.json +32 -0
  146. package/registry/stat.json +32 -0
  147. package/registry/steps.json +31 -0
  148. package/registry/switch.json +32 -0
  149. package/registry/table-of-contents.json +32 -0
  150. package/registry/table.json +28 -0
  151. package/registry/tabs.json +29 -0
  152. package/registry/textarea.json +29 -0
  153. package/registry/theme-toggle.json +34 -0
  154. package/registry/theme.json +16 -0
  155. package/registry/toast.json +29 -0
  156. package/registry/toggle-group.json +29 -0
  157. package/registry/tooltip.json +29 -0
  158. package/registry/users-table.json +36 -0
  159. package/registry/utils.json +19 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/diff.d.ts ADDED
@@ -0,0 +1,30 @@
1
+ import type { InstallDirs, RegistryItem } from "./types.js";
2
+ export type DiffLineType = "add" | "remove" | "context";
3
+ export interface DiffLine {
4
+ type: DiffLineType;
5
+ text: string;
6
+ }
7
+ export type DiffStatus = "unchanged" | "modified" | "missing";
8
+ export interface FileDiff {
9
+ item: string;
10
+ target: string;
11
+ absolutePath: string;
12
+ status: DiffStatus;
13
+ lines: DiffLine[];
14
+ }
15
+ /** A line-based longest-common-subsequence diff; enough for source files. */
16
+ export declare function diffLines(before: string, after: string): DiffLine[];
17
+ export interface DiffItemsOptions {
18
+ projectRoot: string;
19
+ dirs: InstallDirs;
20
+ items: RegistryItem[];
21
+ }
22
+ /**
23
+ * Compare the files currently on disk with the registry version. The diff is
24
+ * written from the installed file (`-`) to the registry file (`+`), so it says
25
+ * what reinstalling would change.
26
+ */
27
+ export declare function diffItems({ projectRoot, dirs, items, }: DiffItemsOptions): Promise<FileDiff[]>;
28
+ /** Keep two context lines around each change and cap very large diffs. */
29
+ export declare function trimDiff(lines: DiffLine[], context?: number, maxLines?: number): Array<DiffLine | "gap">;
30
+ //# sourceMappingURL=diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;AAE9D,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CAuCnE;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,SAAS,CAAC,EAC9B,WAAW,EACX,IAAI,EACJ,KAAK,GACN,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CA2CxC;AAED,0EAA0E;AAC1E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,OAAO,SAAI,EAAE,QAAQ,SAAM,GAAG,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,CA4BhG"}
package/dist/diff.js ADDED
@@ -0,0 +1,121 @@
1
+ import { readFile } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { existsPath } from "./config.js";
4
+ import { resolveTargetPath, toPosix } from "./paths.js";
5
+ /** A line-based longest-common-subsequence diff; enough for source files. */
6
+ export function diffLines(before, after) {
7
+ const a = before.split("\n");
8
+ const b = after.split("\n");
9
+ const n = a.length;
10
+ const m = b.length;
11
+ const dp = Array.from({ length: n + 1 }, () => new Array(m + 1).fill(0));
12
+ for (let i = n - 1; i >= 0; i -= 1) {
13
+ for (let j = m - 1; j >= 0; j -= 1) {
14
+ dp[i][j] =
15
+ a[i] === b[j] ? dp[i + 1][j + 1] + 1 : Math.max(dp[i + 1][j], dp[i][j + 1]);
16
+ }
17
+ }
18
+ const lines = [];
19
+ let i = 0;
20
+ let j = 0;
21
+ while (i < n && j < m) {
22
+ if (a[i] === b[j]) {
23
+ lines.push({ type: "context", text: a[i] ?? "" });
24
+ i += 1;
25
+ j += 1;
26
+ }
27
+ else if (dp[i + 1][j] >= dp[i][j + 1]) {
28
+ lines.push({ type: "remove", text: a[i] ?? "" });
29
+ i += 1;
30
+ }
31
+ else {
32
+ lines.push({ type: "add", text: b[j] ?? "" });
33
+ j += 1;
34
+ }
35
+ }
36
+ while (i < n) {
37
+ lines.push({ type: "remove", text: a[i] ?? "" });
38
+ i += 1;
39
+ }
40
+ while (j < m) {
41
+ lines.push({ type: "add", text: b[j] ?? "" });
42
+ j += 1;
43
+ }
44
+ return lines;
45
+ }
46
+ /**
47
+ * Compare the files currently on disk with the registry version. The diff is
48
+ * written from the installed file (`-`) to the registry file (`+`), so it says
49
+ * what reinstalling would change.
50
+ */
51
+ export async function diffItems({ projectRoot, dirs, items, }) {
52
+ const results = [];
53
+ for (const item of items) {
54
+ for (const file of item.files) {
55
+ const target = file.target ?? file.path;
56
+ const absolutePath = resolveTargetPath(target, dirs, projectRoot);
57
+ const display = toPosix(path.relative(projectRoot, absolutePath));
58
+ if (!(await existsPath(absolutePath))) {
59
+ results.push({
60
+ item: item.name,
61
+ target: display,
62
+ absolutePath,
63
+ status: "missing",
64
+ lines: [],
65
+ });
66
+ continue;
67
+ }
68
+ const installed = await readFile(absolutePath, "utf8");
69
+ if (installed === file.content) {
70
+ results.push({
71
+ item: item.name,
72
+ target: display,
73
+ absolutePath,
74
+ status: "unchanged",
75
+ lines: [],
76
+ });
77
+ continue;
78
+ }
79
+ results.push({
80
+ item: item.name,
81
+ target: display,
82
+ absolutePath,
83
+ status: "modified",
84
+ lines: diffLines(installed, file.content),
85
+ });
86
+ }
87
+ }
88
+ return results;
89
+ }
90
+ /** Keep two context lines around each change and cap very large diffs. */
91
+ export function trimDiff(lines, context = 2, maxLines = 120) {
92
+ const keep = new Set();
93
+ lines.forEach((line, index) => {
94
+ if (line.type === "context")
95
+ return;
96
+ for (let offset = -context; offset <= context; offset += 1) {
97
+ const target = index + offset;
98
+ if (target >= 0 && target < lines.length)
99
+ keep.add(target);
100
+ }
101
+ });
102
+ const output = [];
103
+ let gap = false;
104
+ for (let index = 0; index < lines.length; index += 1) {
105
+ if (!keep.has(index)) {
106
+ gap = true;
107
+ continue;
108
+ }
109
+ if (gap && output.length > 0)
110
+ output.push("gap");
111
+ gap = false;
112
+ output.push(lines[index]);
113
+ }
114
+ if (gap)
115
+ output.push("gap");
116
+ if (output.length > maxLines) {
117
+ return [...output.slice(0, maxLines), "gap"];
118
+ }
119
+ return output;
120
+ }
121
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../src/diff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ export type DoctorStatus = "pass" | "warn" | "fail" | "skip";
2
+ export interface DoctorCheck {
3
+ id: string;
4
+ title: string;
5
+ status: DoctorStatus;
6
+ detail: string;
7
+ /** What the developer should do when the check is not passing. */
8
+ hint?: string;
9
+ }
10
+ export interface DoctorSummary {
11
+ passed: number;
12
+ warnings: number;
13
+ errors: number;
14
+ skipped: number;
15
+ ok: boolean;
16
+ }
17
+ export interface DoctorReport {
18
+ root: string;
19
+ checks: DoctorCheck[];
20
+ summary: DoctorSummary;
21
+ }
22
+ export interface DoctorOptions {
23
+ root: string;
24
+ /** Node version to test, defaulting to the running process. */
25
+ nodeVersion?: string;
26
+ }
27
+ /**
28
+ * Inspect a project without changing it.
29
+ *
30
+ * Every check is local and deterministic: no registry request, no package
31
+ * install, and no file writes. That makes `doctor` safe to run in CI and in a
32
+ * pre-commit hook, and it means the result never depends on network access.
33
+ */
34
+ export declare function diagnoseProject(options: DoctorOptions): Promise<DoctorReport>;
35
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAiBA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE7D,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,OAAO,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAgCD;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,CA2RnF"}
package/dist/doctor.js ADDED
@@ -0,0 +1,203 @@
1
+ import { readFile, readdir } from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { detectAlias, detectFramework, detectTailwindMajor, existsPath, loadConfig, readPackageJson, readTsconfig, resolveAlias, resolveInstallDirs, } from "./config.js";
4
+ import { safeJoin, toPosix } from "./paths.js";
5
+ const MINIMUM_NODE = { major: 20, minor: 9 };
6
+ const LOCKFILES = ["bun.lock", "bun.lockb", "pnpm-lock.yaml", "yarn.lock", "package-lock.json"];
7
+ function compareVersions(actual, minimum) {
8
+ const [major = 0, minor = 0] = actual.split(".").map((part) => Number.parseInt(part, 10));
9
+ return major > minimum.major || (major === minimum.major && minor >= minimum.minor);
10
+ }
11
+ function relative(root, absolute) {
12
+ return toPosix(path.relative(root, absolute)) || ".";
13
+ }
14
+ /**
15
+ * Resolve an aliased module the way a bundler would: the alias points at a
16
+ * module name, not a file, so `@/lib/utils` must find `utils.ts` as well as
17
+ * `utils/index.ts`.
18
+ */
19
+ async function resolveModuleFile(base) {
20
+ for (const extension of ["", ".ts", ".tsx", ".js", ".jsx"]) {
21
+ const candidate = `${base}${extension}`;
22
+ if (await existsPath(candidate))
23
+ return candidate;
24
+ }
25
+ for (const index of ["index.ts", "index.tsx", "index.js", "index.jsx"]) {
26
+ const candidate = path.join(base, index);
27
+ if (await existsPath(candidate))
28
+ return candidate;
29
+ }
30
+ return null;
31
+ }
32
+ /**
33
+ * Inspect a project without changing it.
34
+ *
35
+ * Every check is local and deterministic: no registry request, no package
36
+ * install, and no file writes. That makes `doctor` safe to run in CI and in a
37
+ * pre-commit hook, and it means the result never depends on network access.
38
+ */
39
+ export async function diagnoseProject(options) {
40
+ const { root } = options;
41
+ const checks = [];
42
+ function add(id, title, status, detail, hint) {
43
+ checks.push({ id, title, status, detail, ...(hint ? { hint } : {}) });
44
+ }
45
+ const nodeVersion = options.nodeVersion ?? process.versions.node;
46
+ if (compareVersions(nodeVersion, MINIMUM_NODE)) {
47
+ add("node", "Node.js", "pass", `${nodeVersion} meets the >=20.9 requirement.`);
48
+ }
49
+ else {
50
+ add("node", "Node.js", "fail", `${nodeVersion} is below the required >=20.9.`, "Upgrade Node.js. Aback UI packages declare engines >=20.9.");
51
+ }
52
+ let pkg;
53
+ try {
54
+ pkg = await readPackageJson(root);
55
+ add("package", "package.json", "pass", "Found and parsed.");
56
+ }
57
+ catch (error) {
58
+ add("package", "package.json", "fail", error.message, "Run this command from a JavaScript project.");
59
+ }
60
+ if (pkg) {
61
+ const framework = detectFramework(pkg);
62
+ add("framework", "Framework", "pass", framework === "unknown"
63
+ ? "No Next.js, Vite, Remix, or Astro dependency detected; components are framework-agnostic."
64
+ : `Detected ${framework}.`);
65
+ const tailwind = detectTailwindMajor(pkg);
66
+ if (tailwind === null) {
67
+ add("tailwind", "Tailwind CSS", "fail", "Tailwind CSS is not in dependencies or devDependencies.", "Install Tailwind CSS v4: the Aback theme uses @theme inline.");
68
+ }
69
+ else if (tailwind < 4) {
70
+ add("tailwind", "Tailwind CSS", "fail", `Tailwind CSS v${tailwind} is installed; v4 is required.`, "Upgrade to Tailwind CSS v4 before installing components.");
71
+ }
72
+ else {
73
+ add("tailwind", "Tailwind CSS", "pass", `v${tailwind} detected.`);
74
+ }
75
+ }
76
+ let config = null;
77
+ try {
78
+ config = await loadConfig(root);
79
+ if (config) {
80
+ add("config", "aback-ui.json", "pass", "Found and parsed.");
81
+ }
82
+ else {
83
+ add("config", "aback-ui.json", "fail", "aback-ui.json is missing.", "Run `aback-ui init` to create it and install the theme.");
84
+ }
85
+ }
86
+ catch (error) {
87
+ add("config", "aback-ui.json", "fail", error.message, "Fix the JSON, or run `aback-ui init --force` to rewrite it.");
88
+ }
89
+ if (!config) {
90
+ add("aliases", "Path aliases", "skip", "Needs aback-ui.json.");
91
+ add("utils", "Class utility", "skip", "Needs aback-ui.json.");
92
+ add("css", "Global stylesheet", "skip", "Needs aback-ui.json.");
93
+ add("theme", "Aback theme", "skip", "Needs aback-ui.json.");
94
+ add("registry", "Registry", "skip", "Needs aback-ui.json.");
95
+ add("installed", "Installed components", "skip", "Needs aback-ui.json.");
96
+ }
97
+ else {
98
+ if (config.style === "aback") {
99
+ add("style", "Style", "pass", 'Using the "aback" style.');
100
+ }
101
+ else {
102
+ add("style", "Style", "warn", `aback-ui.json sets style "${config.style ?? "(missing)"}", not "aback".`, 'Set "style" to "aback" so component docs and theme tokens match.');
103
+ }
104
+ const tsconfig = await readTsconfig(root);
105
+ const alias = detectAlias(tsconfig, root);
106
+ if (alias) {
107
+ add("aliases", "Path aliases", "pass", `${alias.prefix} resolves to ${relative(root, alias.base)}.`);
108
+ }
109
+ else {
110
+ add("aliases", "Path aliases", "warn", "No usable path alias in tsconfig.json or jsconfig.json.", 'Add a mapping such as "@/*": ["./src/*"] under compilerOptions.paths.');
111
+ }
112
+ const utilsAlias = config.aliases?.utils;
113
+ const utilsTarget = utilsAlias ? resolveAlias(utilsAlias, tsconfig, root) : null;
114
+ const utilsFile = utilsTarget ? await resolveModuleFile(utilsTarget.absolute) : null;
115
+ if (!utilsTarget) {
116
+ add("utils", "Class utility", "warn", `The utils alias "${utilsAlias ?? "(missing)"}" does not resolve inside the project.`, "Set aliases.utils in aback-ui.json, for example @/lib/utils.");
117
+ }
118
+ else if (utilsFile) {
119
+ add("utils", "Class utility", "pass", `${relative(root, utilsFile)} exists.`);
120
+ }
121
+ else {
122
+ add("utils", "Class utility", "warn", `${relative(root, utilsTarget.absolute)} is missing.`, "Run `aback-ui add utils` to restore the cn() helper.");
123
+ }
124
+ const cssRelative = config.tailwind?.css;
125
+ if (!cssRelative) {
126
+ add("css", "Global stylesheet", "fail", "tailwind.css is not set in aback-ui.json.", "Set tailwind.css to the project stylesheet, for example src/app/globals.css.");
127
+ }
128
+ else {
129
+ let cssPath = null;
130
+ try {
131
+ cssPath = safeJoin(root, cssRelative.replace(/^\.\//, ""));
132
+ }
133
+ catch (error) {
134
+ add("css", "Global stylesheet", "fail", error.message);
135
+ }
136
+ if (cssPath) {
137
+ if (!(await existsPath(cssPath))) {
138
+ add("css", "Global stylesheet", "fail", `${cssRelative} does not exist.`, "Correct tailwind.css in aback-ui.json, or create the file.");
139
+ }
140
+ else {
141
+ const css = await readFile(cssPath, "utf8");
142
+ if (css.includes("aback.css") || css.includes("@theme inline")) {
143
+ add("css", "Global stylesheet", "pass", `${cssRelative} imports Aback styles.`);
144
+ }
145
+ else {
146
+ add("css", "Global stylesheet", "warn", `${cssRelative} does not reference aback.css.`, 'Add @import "./styles/aback.css"; after the Tailwind import.');
147
+ }
148
+ }
149
+ }
150
+ }
151
+ const dirs = await resolveInstallDirs(root, config);
152
+ const themeFile = path.join(dirs.styles, "aback.css");
153
+ if (await existsPath(themeFile)) {
154
+ add("theme", "Aback theme", "pass", `${relative(root, themeFile)} exists.`);
155
+ }
156
+ else {
157
+ add("theme", "Aback theme", "warn", `${relative(root, themeFile)} is missing.`, "Run `aback-ui add theme` to install the semantic tokens.");
158
+ }
159
+ const registry = config.registries?.["@aback"];
160
+ if (!registry) {
161
+ add("registry", "Registry", "warn", 'No "@aback" registry in aback-ui.json.', 'Add "@aback": "https://abackui.com/r/{name}.json" under registries.');
162
+ }
163
+ else if (!registry.includes("{name}") || !/^https?:\/\//.test(registry)) {
164
+ add("registry", "Registry", "warn", `The "@aback" template is not an HTTP template with {name}.`, 'Use "https://abackui.com/r/{name}.json".');
165
+ }
166
+ else {
167
+ add("registry", "Registry", "pass", registry);
168
+ }
169
+ try {
170
+ const entries = await readdir(dirs.ui);
171
+ const components = entries.filter((entry) => entry.endsWith(".tsx") && !entry.endsWith(".test.tsx"));
172
+ add("installed", "Installed components", "pass", components.length === 0
173
+ ? "No components installed yet."
174
+ : `${components.length} component file(s) in ${relative(root, dirs.ui)}.`);
175
+ }
176
+ catch {
177
+ add("installed", "Installed components", "pass", "No components installed yet.");
178
+ }
179
+ }
180
+ const locks = [];
181
+ for (const lock of LOCKFILES) {
182
+ if (await existsPath(path.join(root, lock)))
183
+ locks.push(lock);
184
+ }
185
+ if (locks.length > 1) {
186
+ add("lockfile", "Package manager", "warn", `Multiple lockfiles found: ${locks.join(", ")}.`, "Keep the lockfile for the package manager you use and remove the others.");
187
+ }
188
+ else if (locks.length === 1) {
189
+ add("lockfile", "Package manager", "pass", `Using ${locks[0]}.`);
190
+ }
191
+ else {
192
+ add("lockfile", "Package manager", "skip", "No lockfile found.");
193
+ }
194
+ const summary = {
195
+ passed: checks.filter((check) => check.status === "pass").length,
196
+ warnings: checks.filter((check) => check.status === "warn").length,
197
+ errors: checks.filter((check) => check.status === "fail").length,
198
+ skipped: checks.filter((check) => check.status === "skip").length,
199
+ ok: checks.every((check) => check.status !== "fail"),
200
+ };
201
+ return { root, checks, summary };
202
+ }
203
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,UAAU,EACV,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAkC/C,MAAM,YAAY,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAW,CAAC;AAEtD,MAAM,SAAS,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,CAAC,CAAC;AAEhG,SAAS,eAAe,CAAC,MAAc,EAAE,OAAyC;IAChF,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1F,OAAO,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,IAAI,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC;AACtF,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,QAAgB;IAC9C,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,IAAI,GAAG,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAC3C,KAAK,MAAM,SAAS,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QAC3D,MAAM,SAAS,GAAG,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC;QACxC,IAAI,MAAM,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACpD,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;QACvE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzC,IAAI,MAAM,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAsB;IAC1D,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC;IACzB,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,SAAS,GAAG,CACV,EAAU,EACV,KAAa,EACb,MAAoB,EACpB,MAAc,EACd,IAAa;QAEb,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;IACjE,IAAI,eAAe,CAAC,WAAW,EAAE,YAAY,CAAC,EAAE,CAAC;QAC/C,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,WAAW,gCAAgC,CAAC,CAAC;IACjF,CAAC;SAAM,CAAC;QACN,GAAG,CACD,MAAM,EACN,SAAS,EACT,MAAM,EACN,GAAG,WAAW,gCAAgC,EAC9C,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC;IACR,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;QAClC,GAAG,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CACD,SAAS,EACT,cAAc,EACd,MAAM,EACL,KAAe,CAAC,OAAO,EACxB,6CAA6C,CAC9C,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;QACvC,GAAG,CACD,WAAW,EACX,WAAW,EACX,MAAM,EACN,SAAS,KAAK,SAAS;YACrB,CAAC,CAAC,2FAA2F;YAC7F,CAAC,CAAC,YAAY,SAAS,GAAG,CAC7B,CAAC;QAEF,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,GAAG,CACD,UAAU,EACV,cAAc,EACd,MAAM,EACN,yDAAyD,EACzD,8DAA8D,CAC/D,CAAC;QACJ,CAAC;aAAM,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACxB,GAAG,CACD,UAAU,EACV,cAAc,EACd,MAAM,EACN,iBAAiB,QAAQ,gCAAgC,EACzD,0DAA0D,CAC3D,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,QAAQ,YAAY,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,IAAI,MAAM,GAAuB,IAAI,CAAC;IACtC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,MAAM,EAAE,CAAC;YACX,GAAG,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,GAAG,CACD,QAAQ,EACR,eAAe,EACf,MAAM,EACN,2BAA2B,EAC3B,yDAAyD,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,GAAG,CACD,QAAQ,EACR,eAAe,EACf,MAAM,EACL,KAAe,CAAC,OAAO,EACxB,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,GAAG,CAAC,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;QAC/D,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;QAC9D,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;QAChE,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;QAC5D,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;QAC5D,GAAG,CAAC,WAAW,EAAE,sBAAsB,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC3E,CAAC;SAAM,CAAC;QACN,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YAC7B,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,0BAA0B,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,GAAG,CACD,OAAO,EACP,OAAO,EACP,MAAM,EACN,6BAA6B,MAAM,CAAC,KAAK,IAAI,WAAW,iBAAiB,EACzE,kEAAkE,CACnE,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,CACD,SAAS,EACT,cAAc,EACd,MAAM,EACN,GAAG,KAAK,CAAC,MAAM,gBAAgB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAC7D,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,GAAG,CACD,SAAS,EACT,cAAc,EACd,MAAM,EACN,yDAAyD,EACzD,uEAAuE,CACxE,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC;QACzC,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACjF,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,iBAAiB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACrF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,GAAG,CACD,OAAO,EACP,eAAe,EACf,MAAM,EACN,oBAAoB,UAAU,IAAI,WAAW,wCAAwC,EACrF,8DAA8D,CAC/D,CAAC;QACJ,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,GAAG,CACD,OAAO,EACP,eAAe,EACf,MAAM,EACN,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,cAAc,EACrD,sDAAsD,CACvD,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,GAAG,CAAC;QACzC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,GAAG,CACD,KAAK,EACL,mBAAmB,EACnB,MAAM,EACN,2CAA2C,EAC3C,8EAA8E,CAC/E,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,OAAO,GAAkB,IAAI,CAAC;YAClC,IAAI,CAAC;gBACH,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;YAC7D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YACpE,CAAC;YAED,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;oBACjC,GAAG,CACD,KAAK,EACL,mBAAmB,EACnB,MAAM,EACN,GAAG,WAAW,kBAAkB,EAChC,4DAA4D,CAC7D,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC5C,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;wBAC/D,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,MAAM,EAAE,GAAG,WAAW,wBAAwB,CAAC,CAAC;oBAClF,CAAC;yBAAM,CAAC;wBACN,GAAG,CACD,KAAK,EACL,mBAAmB,EACnB,MAAM,EACN,GAAG,WAAW,gCAAgC,EAC9C,8DAA8D,CAC/D,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QACtD,IAAI,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;QAC9E,CAAC;aAAM,CAAC;YACN,GAAG,CACD,OAAO,EACP,aAAa,EACb,MAAM,EACN,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,cAAc,EAC1C,0DAA0D,CAC3D,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,GAAG,CACD,UAAU,EACV,UAAU,EACV,MAAM,EACN,wCAAwC,EACxC,qEAAqE,CACtE,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1E,GAAG,CACD,UAAU,EACV,UAAU,EACV,MAAM,EACN,4DAA4D,EAC5D,0CAA0C,CAC3C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAChD,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAC/B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAClE,CAAC;YACF,GAAG,CACD,WAAW,EACX,sBAAsB,EACtB,MAAM,EACN,UAAU,CAAC,MAAM,KAAK,CAAC;gBACrB,CAAC,CAAC,8BAA8B;gBAChC,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,yBAAyB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,CAC5E,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,WAAW,EAAE,sBAAsB,EAAE,MAAM,EAAE,8BAA8B,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,IAAI,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,GAAG,CACD,UAAU,EACV,iBAAiB,EACjB,MAAM,EACN,6BAA6B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAChD,0EAA0E,CAC3E,CAAC;IACJ,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,GAAG,CAAC,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM;QAChE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM;QAClE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM;QAChE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM;QACjE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC;KACrD,CAAC;IAEF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AACnC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare class CommandError extends Error {
2
+ readonly code: number;
3
+ constructor(message: string, code?: number);
4
+ }
5
+ export declare function commandError(message: string, code?: number): CommandError;
6
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,YAAa,SAAQ,KAAK;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBAEV,OAAO,EAAE,MAAM,EAAE,IAAI,SAAI;CAKtC;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,SAAI,GAAG,YAAY,CAEpE"}
package/dist/errors.js ADDED
@@ -0,0 +1,12 @@
1
+ export class CommandError extends Error {
2
+ code;
3
+ constructor(message, code = 1) {
4
+ super(message);
5
+ this.name = "CommandError";
6
+ this.code = code;
7
+ }
8
+ }
9
+ export function commandError(message, code = 1) {
10
+ return new CommandError(message, code);
11
+ }
12
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,YAAa,SAAQ,KAAK;IAC5B,IAAI,CAAS;IAEtB,YAAY,OAAe,EAAE,IAAI,GAAG,CAAC;QACnC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,UAAU,YAAY,CAAC,OAAe,EAAE,IAAI,GAAG,CAAC;IACpD,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC"}
package/dist/help.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export declare const CLI_VERSION = "0.2.0";
2
+ export declare const HELP = "Aback UI \u2014 copy accessible React components into your project\n\nUsage\n aback-ui <command> [options]\n\nCommands\n init Configure a project, add the theme, and install utilities\n add <items...> Copy component or block source into the project\n diff [items...] Compare installed files with the registry (or --all)\n doctor Check the project setup, theme, aliases, and dependencies\n list [query] List installable items\n view <item> Show an item's metadata, dependencies, and files\n\nOptions\n --cwd <dir> Project directory to operate on\n --registry <url> Install from another registry (a URL or a local directory)\n --css <file> Global stylesheet for init, when it cannot be detected\n --force Let init rewrite an existing aback-ui.json\n --yes, -y Accept defaults and keep existing files\n --overwrite Replace existing files without prompting\n --no-overwrite Keep every existing file\n --no-install Write files but skip package installation\n --dry-run Report what would change without writing\n --json Print machine-readable output (diff, list, view, doctor)\n --all Compare every installed UI and block item (diff)\n --version, -v Print the CLI version\n --help, -h Print this help\n\nExamples\n npx aback-ui init\n npx aback-ui add button dialog\n npx aback-ui add sign-in\n npx aback-ui list forms\n npx aback-ui view button\n npx aback-ui diff --all\n npx aback-ui doctor\n\nRegistry\n Component source ships inside this package, so installing never downloads\n code from a website and the files always match the CLI version. npm\n dependencies still come from your package manager. --registry or\n ABACK_UI_REGISTRY point the CLI at a mirror or a local build instead.\n\nEnvironment\n ABACK_UI_REGISTRY Overrides the registry used by every command.\n";
3
+ //# sourceMappingURL=help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,UAAU,CAAC;AAEnC,eAAO,MAAM,IAAI,s8DA6ChB,CAAC"}
package/dist/help.js ADDED
@@ -0,0 +1,48 @@
1
+ export const CLI_VERSION = "0.2.0";
2
+ export const HELP = `Aback UI — copy accessible React components into your project
3
+
4
+ Usage
5
+ aback-ui <command> [options]
6
+
7
+ Commands
8
+ init Configure a project, add the theme, and install utilities
9
+ add <items...> Copy component or block source into the project
10
+ diff [items...] Compare installed files with the registry (or --all)
11
+ doctor Check the project setup, theme, aliases, and dependencies
12
+ list [query] List installable items
13
+ view <item> Show an item's metadata, dependencies, and files
14
+
15
+ Options
16
+ --cwd <dir> Project directory to operate on
17
+ --registry <url> Install from another registry (a URL or a local directory)
18
+ --css <file> Global stylesheet for init, when it cannot be detected
19
+ --force Let init rewrite an existing aback-ui.json
20
+ --yes, -y Accept defaults and keep existing files
21
+ --overwrite Replace existing files without prompting
22
+ --no-overwrite Keep every existing file
23
+ --no-install Write files but skip package installation
24
+ --dry-run Report what would change without writing
25
+ --json Print machine-readable output (diff, list, view, doctor)
26
+ --all Compare every installed UI and block item (diff)
27
+ --version, -v Print the CLI version
28
+ --help, -h Print this help
29
+
30
+ Examples
31
+ npx aback-ui init
32
+ npx aback-ui add button dialog
33
+ npx aback-ui add sign-in
34
+ npx aback-ui list forms
35
+ npx aback-ui view button
36
+ npx aback-ui diff --all
37
+ npx aback-ui doctor
38
+
39
+ Registry
40
+ Component source ships inside this package, so installing never downloads
41
+ code from a website and the files always match the CLI version. npm
42
+ dependencies still come from your package manager. --registry or
43
+ ABACK_UI_REGISTRY point the CLI at a mirror or a local build instead.
44
+
45
+ Environment
46
+ ABACK_UI_REGISTRY Overrides the registry used by every command.
47
+ `;
48
+ //# sourceMappingURL=help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../src/help.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC;AAEnC,MAAM,CAAC,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CnB,CAAC"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ import { runCli } from "./cli.js";
3
+ process.exitCode = await runCli(process.argv.slice(2));
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,CAAC,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,53 @@
1
+ import type { Logger } from "./logger.js";
2
+ import type { Prompter } from "./prompt.js";
3
+ import type { FileWriteResult, InstallDirs, OverwriteMode, PackageManager, RegistryItem } from "./types.js";
4
+ export interface WriteOptions {
5
+ items: RegistryItem[];
6
+ projectRoot: string;
7
+ dirs: InstallDirs;
8
+ overwrite?: OverwriteMode;
9
+ dryRun?: boolean;
10
+ log: Logger;
11
+ prompt: Prompter;
12
+ }
13
+ /**
14
+ * Write every registry file into the project. Existing files are kept unless
15
+ * the caller explicitly allows overwriting, so a local edit is never lost
16
+ * silently.
17
+ */
18
+ export declare function writeItemFiles({ items, projectRoot, dirs, overwrite, dryRun, log, prompt, }: WriteOptions): Promise<FileWriteResult[]>;
19
+ export interface DependencyCommand {
20
+ command: string;
21
+ args: string[];
22
+ }
23
+ export declare function dependencyCommand(packageManager: PackageManager, packages: string[], dev: boolean): DependencyCommand;
24
+ type CommandRunner = (command: string, args: string[], options: {
25
+ cwd: string;
26
+ stdio: "inherit";
27
+ }) => {
28
+ status: number | null;
29
+ };
30
+ export interface InstallDependenciesOptions {
31
+ cwd: string;
32
+ packageManager: PackageManager;
33
+ dependencies?: string[];
34
+ devDependencies?: string[];
35
+ noInstall?: boolean;
36
+ dryRun?: boolean;
37
+ log: Logger;
38
+ runner?: CommandRunner;
39
+ }
40
+ export declare function installDependencies({ cwd, packageManager, dependencies, devDependencies, noInstall, dryRun, log, runner, }: InstallDependenciesOptions): Promise<void>;
41
+ export interface ThemeImportOptions {
42
+ cssFile: string;
43
+ themeFile: string;
44
+ dryRun?: boolean;
45
+ log: Logger;
46
+ }
47
+ /**
48
+ * Insert the theme import directly after the Tailwind import so theme
49
+ * variables exist before any utility is generated.
50
+ */
51
+ export declare function ensureThemeImport({ cssFile, themeFile, dryRun, log, }: ThemeImportOptions): Promise<"added" | "present" | "missing">;
52
+ export {};
53
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EACX,aAAa,EACb,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,CAAC,EAAE,aAAa,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAAC,EACnC,KAAK,EACL,WAAW,EACX,IAAI,EACJ,SAAoB,EACpB,MAAc,EACd,GAAG,EACH,MAAM,GACP,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CA2D3C;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAC/B,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,MAAM,EAAE,EAClB,GAAG,EAAE,OAAO,GACX,iBAAiB,CAYnB;AAED,KAAK,aAAa,GAAG,CACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,KACvC;IAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE/B,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,cAAc,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED,wBAAsB,mBAAmB,CAAC,EACxC,GAAG,EACH,cAAc,EACd,YAAiB,EACjB,eAAoB,EACpB,SAAiB,EACjB,MAAc,EACd,GAAG,EACH,MAAkB,GACnB,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAwB5C;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,SAAS,EACT,MAAc,EACd,GAAG,GACJ,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC,CAuB/D"}