zard-cli 1.0.0-beta.84 → 1.1.0-alpha.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.
- package/README.md +60 -60
- package/commands/add/component-installer.d.ts +2 -0
- package/commands/add/component-installer.d.ts.map +1 -1
- package/commands/add/component-installer.js +9 -4
- package/commands/add/component-installer.js.map +1 -1
- package/commands/add/component-selector.d.ts +6 -0
- package/commands/add/component-selector.d.ts.map +1 -1
- package/commands/add/component-selector.js +9 -27
- package/commands/add/component-selector.js.map +1 -1
- package/commands/add/dark-mode-setup.d.ts.map +1 -1
- package/commands/add/dark-mode-setup.js +2 -11
- package/commands/add/dark-mode-setup.js.map +1 -1
- package/commands/add/index.d.ts.map +1 -1
- package/commands/add/index.js +106 -86
- package/commands/add/index.js.map +1 -1
- package/commands/add/wizard.d.ts +31 -0
- package/commands/add/wizard.d.ts.map +1 -0
- package/commands/add/wizard.js +289 -0
- package/commands/add/wizard.js.map +1 -0
- package/commands/init/config-prompter.d.ts +47 -3
- package/commands/init/config-prompter.d.ts.map +1 -1
- package/commands/init/config-prompter.js +76 -74
- package/commands/init/config-prompter.js.map +1 -1
- package/commands/init/dependencies.d.ts +1 -8
- package/commands/init/dependencies.d.ts.map +1 -1
- package/commands/init/dependencies.js +35 -17
- package/commands/init/dependencies.js.map +1 -1
- package/commands/init/index.d.ts.map +1 -1
- package/commands/init/index.js +129 -81
- package/commands/init/index.js.map +1 -1
- package/commands/init/project-kind.d.ts +82 -0
- package/commands/init/project-kind.d.ts.map +1 -0
- package/commands/init/project-kind.js +166 -0
- package/commands/init/project-kind.js.map +1 -0
- package/commands/init/steps.d.ts +16 -0
- package/commands/init/steps.d.ts.map +1 -0
- package/commands/init/steps.js +151 -0
- package/commands/init/steps.js.map +1 -0
- package/commands/init/tailwind-setup.d.ts +9 -2
- package/commands/init/tailwind-setup.d.ts.map +1 -1
- package/commands/init/tailwind-setup.js +33 -12
- package/commands/init/tailwind-setup.js.map +1 -1
- package/commands/init/tsconfig-updater.d.ts +8 -1
- package/commands/init/tsconfig-updater.d.ts.map +1 -1
- package/commands/init/tsconfig-updater.js +30 -11
- package/commands/init/tsconfig-updater.js.map +1 -1
- package/commands/init/update-angular-config.d.ts.map +1 -1
- package/commands/init/update-angular-config.js +28 -50
- package/commands/init/update-angular-config.js.map +1 -1
- package/commands/init/vite-setup.d.ts +10 -0
- package/commands/init/vite-setup.d.ts.map +1 -0
- package/commands/init/vite-setup.js +60 -0
- package/commands/init/vite-setup.js.map +1 -0
- package/commands/init/wizard.d.ts +30 -0
- package/commands/init/wizard.d.ts.map +1 -0
- package/commands/init/wizard.js +560 -0
- package/commands/init/wizard.js.map +1 -0
- package/core/registry/registry-data.d.ts.map +1 -1
- package/core/registry/registry-data.js +8 -45
- package/core/registry/registry-data.js.map +1 -1
- package/index.js +5 -3
- package/index.js.map +1 -1
- package/package.json +58 -61
- package/ui/blocks.d.ts +70 -0
- package/ui/blocks.d.ts.map +1 -0
- package/ui/blocks.js +116 -0
- package/ui/blocks.js.map +1 -0
- package/ui/brand.d.ts +14 -0
- package/ui/brand.d.ts.map +1 -0
- package/ui/brand.js +35 -0
- package/ui/brand.js.map +1 -0
- package/ui/engine/animation/index.d.ts +39 -0
- package/ui/engine/animation/index.d.ts.map +1 -0
- package/ui/engine/animation/index.js +103 -0
- package/ui/engine/animation/index.js.map +1 -0
- package/ui/engine/ansi/index.d.ts +52 -0
- package/ui/engine/ansi/index.d.ts.map +1 -0
- package/ui/engine/ansi/index.js +117 -0
- package/ui/engine/ansi/index.js.map +1 -0
- package/ui/engine/components/index.d.ts +211 -0
- package/ui/engine/components/index.d.ts.map +1 -0
- package/ui/engine/components/index.js +109 -0
- package/ui/engine/components/index.js.map +1 -0
- package/ui/engine/cursor/index.d.ts +17 -0
- package/ui/engine/cursor/index.d.ts.map +1 -0
- package/ui/engine/cursor/index.js +41 -0
- package/ui/engine/cursor/index.js.map +1 -0
- package/ui/engine/diff/index.d.ts +27 -0
- package/ui/engine/diff/index.d.ts.map +1 -0
- package/ui/engine/diff/index.js +57 -0
- package/ui/engine/diff/index.js.map +1 -0
- package/ui/engine/events/index.d.ts +24 -0
- package/ui/engine/events/index.d.ts.map +1 -0
- package/ui/engine/events/index.js +60 -0
- package/ui/engine/events/index.js.map +1 -0
- package/ui/engine/focus/index.d.ts +25 -0
- package/ui/engine/focus/index.d.ts.map +1 -0
- package/ui/engine/focus/index.js +77 -0
- package/ui/engine/focus/index.js.map +1 -0
- package/ui/engine/frame/index.d.ts +48 -0
- package/ui/engine/frame/index.d.ts.map +1 -0
- package/ui/engine/frame/index.js +0 -0
- package/ui/engine/frame/index.js.map +1 -0
- package/ui/engine/index.d.ts +28 -0
- package/ui/engine/index.d.ts.map +1 -0
- package/ui/engine/index.js +28 -0
- package/ui/engine/index.js.map +1 -0
- package/ui/engine/input/index.d.ts +36 -0
- package/ui/engine/input/index.d.ts.map +1 -0
- package/ui/engine/input/index.js +224 -0
- package/ui/engine/input/index.js.map +1 -0
- package/ui/engine/layout/index.d.ts +42 -0
- package/ui/engine/layout/index.d.ts.map +1 -0
- package/ui/engine/layout/index.js +241 -0
- package/ui/engine/layout/index.js.map +1 -0
- package/ui/engine/renderer/index.d.ts +43 -0
- package/ui/engine/renderer/index.d.ts.map +1 -0
- package/ui/engine/renderer/index.js +619 -0
- package/ui/engine/renderer/index.js.map +1 -0
- package/ui/engine/scheduler/index.d.ts +22 -0
- package/ui/engine/scheduler/index.d.ts.map +1 -0
- package/ui/engine/scheduler/index.js +77 -0
- package/ui/engine/scheduler/index.js.map +1 -0
- package/ui/engine/screen/index.d.ts +39 -0
- package/ui/engine/screen/index.d.ts.map +1 -0
- package/ui/engine/screen/index.js +255 -0
- package/ui/engine/screen/index.js.map +1 -0
- package/ui/engine/terminal/index.d.ts +38 -0
- package/ui/engine/terminal/index.d.ts.map +1 -0
- package/ui/engine/terminal/index.js +104 -0
- package/ui/engine/terminal/index.js.map +1 -0
- package/ui/engine/testing/index.d.ts +27 -0
- package/ui/engine/testing/index.d.ts.map +1 -0
- package/ui/engine/testing/index.js +63 -0
- package/ui/engine/testing/index.js.map +1 -0
- package/ui/engine/theme/index.d.ts +27 -0
- package/ui/engine/theme/index.d.ts.map +1 -0
- package/ui/engine/theme/index.js +129 -0
- package/ui/engine/theme/index.js.map +1 -0
- package/ui/engine/utils/index.d.ts +12 -0
- package/ui/engine/utils/index.d.ts.map +1 -0
- package/ui/engine/utils/index.js +143 -0
- package/ui/engine/utils/index.js.map +1 -0
- package/ui/gate.d.ts +19 -0
- package/ui/gate.d.ts.map +1 -0
- package/ui/gate.js +36 -0
- package/ui/gate.js.map +1 -0
- package/ui/index.d.ts +18 -0
- package/ui/index.d.ts.map +1 -0
- package/ui/index.js +18 -0
- package/ui/index.js.map +1 -0
- package/ui/log-sink.d.ts +24 -0
- package/ui/log-sink.d.ts.map +1 -0
- package/ui/log-sink.js +35 -0
- package/ui/log-sink.js.map +1 -0
- package/ui/output.d.ts +14 -0
- package/ui/output.d.ts.map +1 -0
- package/ui/output.js +28 -0
- package/ui/output.js.map +1 -0
- package/ui/report.d.ts +30 -0
- package/ui/report.d.ts.map +1 -0
- package/ui/report.js +45 -0
- package/ui/report.js.map +1 -0
- package/ui/runner.d.ts +57 -0
- package/ui/runner.d.ts.map +1 -0
- package/ui/runner.js +119 -0
- package/ui/runner.js.map +1 -0
- package/ui/style.d.ts +24 -0
- package/ui/style.d.ts.map +1 -0
- package/ui/style.js +44 -0
- package/ui/style.js.map +1 -0
- package/ui/testing/fake-tty.d.ts +26 -0
- package/ui/testing/fake-tty.d.ts.map +1 -0
- package/ui/testing/fake-tty.js +61 -0
- package/ui/testing/fake-tty.js.map +1 -0
- package/ui/text-input.d.ts +30 -0
- package/ui/text-input.d.ts.map +1 -0
- package/ui/text-input.js +87 -0
- package/ui/text-input.js.map +1 -0
- package/ui/theme.d.ts +10 -0
- package/ui/theme.d.ts.map +1 -0
- package/ui/theme.js +20 -0
- package/ui/theme.js.map +1 -0
- package/utils/config.d.ts +22 -0
- package/utils/config.d.ts.map +1 -1
- package/utils/config.js +26 -1
- package/utils/config.js.map +1 -1
- package/utils/get-project-info.d.ts +29 -0
- package/utils/get-project-info.d.ts.map +1 -1
- package/utils/get-project-info.js +176 -1
- package/utils/get-project-info.js.map +1 -1
- package/utils/logger.d.ts +13 -1
- package/utils/logger.d.ts.map +1 -1
- package/utils/logger.js +95 -15
- package/utils/logger.js.map +1 -1
- package/utils/package-manager.d.ts +42 -1
- package/utils/package-manager.d.ts.map +1 -1
- package/utils/package-manager.js +204 -11
- package/utils/package-manager.js.map +1 -1
- package/utils/registry.d.ts +12 -2
- package/utils/registry.d.ts.map +1 -1
- package/utils/registry.js +21 -6
- package/utils/registry.js.map +1 -1
- package/utils/source-file.d.ts +40 -0
- package/utils/source-file.d.ts.map +1 -0
- package/utils/source-file.js +104 -0
- package/utils/source-file.js.map +1 -0
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
import { answeredLine, checkList, commandHeader, confirmField, controls, createGate, editInput, hint, page, progress, question, resultPanel, runWizard, screen, spacer, startInput, taskHeader, taskList, text, textField, } from '../../ui/index.js';
|
|
2
|
+
const DARK_MODE = 'dark-mode';
|
|
3
|
+
export async function runAddWizard(options) {
|
|
4
|
+
const state = {
|
|
5
|
+
phase: options.preselected.length ? 'resolving' : 'selecting',
|
|
6
|
+
names: [],
|
|
7
|
+
filter: '',
|
|
8
|
+
visible: [],
|
|
9
|
+
cursor: 0,
|
|
10
|
+
selected: new Set(),
|
|
11
|
+
componentCount: 0,
|
|
12
|
+
dependencyCount: 0,
|
|
13
|
+
confirmValue: true,
|
|
14
|
+
tasks: [],
|
|
15
|
+
tasksDone: 0,
|
|
16
|
+
taskStartedAt: 0,
|
|
17
|
+
indexHtml: startInput(options.defaultIndexHtml),
|
|
18
|
+
transcript: [],
|
|
19
|
+
failure: null,
|
|
20
|
+
installed: [],
|
|
21
|
+
};
|
|
22
|
+
const selection = createGate();
|
|
23
|
+
const confirmation = createGate();
|
|
24
|
+
const darkMode = createGate();
|
|
25
|
+
const finish = createGate();
|
|
26
|
+
const applyFilter = () => {
|
|
27
|
+
const term = state.filter.trim().toLowerCase();
|
|
28
|
+
state.visible = state.names
|
|
29
|
+
.map((_, index) => index)
|
|
30
|
+
.filter(index => !term || state.names[index].toLowerCase().includes(term));
|
|
31
|
+
state.cursor = Math.min(state.cursor, Math.max(0, state.visible.length - 1));
|
|
32
|
+
};
|
|
33
|
+
const onKey = (event, ctx) => {
|
|
34
|
+
if (state.phase === 'selecting') {
|
|
35
|
+
handleSelectionKey(event, state, applyFilter, selection);
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (state.phase === 'confirming') {
|
|
39
|
+
if (event.key === 'left' || event.key === 'right')
|
|
40
|
+
state.confirmValue = !state.confirmValue;
|
|
41
|
+
else if (event.key === 'y' || event.key === 'Y')
|
|
42
|
+
confirmation.settle(true);
|
|
43
|
+
else if (event.key === 'n' || event.key === 'N' || event.key === 'escape')
|
|
44
|
+
confirmation.settle(false);
|
|
45
|
+
else if (event.key === 'enter')
|
|
46
|
+
confirmation.settle(state.confirmValue);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (state.phase === 'darkMode') {
|
|
50
|
+
if (event.key === 'enter') {
|
|
51
|
+
darkMode.settle(state.indexHtml.value.trim() || options.defaultIndexHtml);
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
if (event.key === 'escape') {
|
|
55
|
+
darkMode.settle(null);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const edited = editInput(state.indexHtml, event);
|
|
59
|
+
if (edited)
|
|
60
|
+
state.indexHtml = edited;
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (state.phase === 'done' || state.phase === 'failed') {
|
|
64
|
+
if (event.key === 'enter')
|
|
65
|
+
finish.settle(undefined);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
void ctx;
|
|
69
|
+
};
|
|
70
|
+
const run = async (ctx) => {
|
|
71
|
+
let names;
|
|
72
|
+
if (options.preselected.length) {
|
|
73
|
+
names = [...options.preselected];
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
state.names = await options.loadNames();
|
|
77
|
+
applyFilter();
|
|
78
|
+
ctx.refresh();
|
|
79
|
+
names = await selection.wait();
|
|
80
|
+
if (!names.length) {
|
|
81
|
+
ctx.cancel('No components selected.');
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
state.transcript.push(['components', names.join(', ')]);
|
|
85
|
+
}
|
|
86
|
+
state.phase = 'resolving';
|
|
87
|
+
ctx.refresh();
|
|
88
|
+
const { components, dependencies } = await options.resolve(names);
|
|
89
|
+
if (components.length === 0) {
|
|
90
|
+
state.phase = 'done';
|
|
91
|
+
state.installed = [];
|
|
92
|
+
ctx.refresh();
|
|
93
|
+
await finish.wait();
|
|
94
|
+
ctx.done([]);
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
state.componentCount = components.length;
|
|
98
|
+
state.dependencyCount = dependencies.length;
|
|
99
|
+
if (!options.skipConfirmation) {
|
|
100
|
+
state.phase = 'confirming';
|
|
101
|
+
ctx.refresh();
|
|
102
|
+
if (!(await confirmation.wait())) {
|
|
103
|
+
ctx.cancel();
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
state.transcript.push(['install', `${components.length} component(s), ${dependencies.length} dependencies`]);
|
|
107
|
+
}
|
|
108
|
+
state.phase = 'installing';
|
|
109
|
+
state.tasks = [
|
|
110
|
+
...(dependencies.length ? [{ label: 'dependencies', note: dependencies.join(', ') }] : []),
|
|
111
|
+
...components.map(component => ({ label: component.name, note: 'component source' })),
|
|
112
|
+
];
|
|
113
|
+
state.tasksDone = 0;
|
|
114
|
+
state.taskStartedAt = Date.now();
|
|
115
|
+
ctx.refresh();
|
|
116
|
+
if (dependencies.length) {
|
|
117
|
+
await options.installDependencies(dependencies);
|
|
118
|
+
state.tasksDone++;
|
|
119
|
+
state.taskStartedAt = Date.now();
|
|
120
|
+
ctx.refresh();
|
|
121
|
+
}
|
|
122
|
+
const failed = [];
|
|
123
|
+
for (const component of components) {
|
|
124
|
+
try {
|
|
125
|
+
await options.installComponent(component);
|
|
126
|
+
state.installed.push(component.name);
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
failed.push(component.name);
|
|
130
|
+
state.failure = `${component.name}: ${error instanceof Error ? error.message : String(error)}`;
|
|
131
|
+
}
|
|
132
|
+
state.tasksDone++;
|
|
133
|
+
state.taskStartedAt = Date.now();
|
|
134
|
+
ctx.refresh();
|
|
135
|
+
}
|
|
136
|
+
if (components.some(component => component.name === DARK_MODE)) {
|
|
137
|
+
state.phase = 'darkMode';
|
|
138
|
+
ctx.refresh();
|
|
139
|
+
const indexHtml = await darkMode.wait();
|
|
140
|
+
if (indexHtml) {
|
|
141
|
+
state.transcript.push(['index.html', indexHtml]);
|
|
142
|
+
await options.setupDarkMode(indexHtml);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
state.phase = failed.length ? 'failed' : 'done';
|
|
146
|
+
ctx.refresh();
|
|
147
|
+
await finish.wait();
|
|
148
|
+
ctx.done(state.installed);
|
|
149
|
+
};
|
|
150
|
+
const result = await runWizard({
|
|
151
|
+
view: () => buildView(state),
|
|
152
|
+
onKey,
|
|
153
|
+
run,
|
|
154
|
+
});
|
|
155
|
+
return { installed: result.value, logs: result.logs };
|
|
156
|
+
}
|
|
157
|
+
function handleSelectionKey(event, state, applyFilter, selection) {
|
|
158
|
+
const total = state.visible.length;
|
|
159
|
+
if (event.key === 'up') {
|
|
160
|
+
state.cursor = total ? (state.cursor - 1 + total) % total : 0;
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
if (event.key === 'down') {
|
|
164
|
+
state.cursor = total ? (state.cursor + 1) % total : 0;
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
if (event.key === ' ' || event.key === 'space') {
|
|
168
|
+
const index = state.visible[state.cursor];
|
|
169
|
+
if (index !== undefined) {
|
|
170
|
+
if (state.selected.has(index))
|
|
171
|
+
state.selected.delete(index);
|
|
172
|
+
else
|
|
173
|
+
state.selected.add(index);
|
|
174
|
+
}
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
if (event.ctrl && event.key === 'a') {
|
|
178
|
+
// Alterna tudo que está visível, respeitando o filtro corrente.
|
|
179
|
+
const allSelected = state.visible.every(index => state.selected.has(index));
|
|
180
|
+
for (const index of state.visible) {
|
|
181
|
+
if (allSelected)
|
|
182
|
+
state.selected.delete(index);
|
|
183
|
+
else
|
|
184
|
+
state.selected.add(index);
|
|
185
|
+
}
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
if (event.key === 'enter') {
|
|
189
|
+
selection.settle([...state.selected].sort((a, b) => a - b).map(index => state.names[index]));
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
if (event.key === 'backspace') {
|
|
193
|
+
state.filter = [...state.filter].slice(0, -1).join('');
|
|
194
|
+
applyFilter();
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
if (event.key.length === 1 && !event.ctrl && !event.alt) {
|
|
198
|
+
state.filter += event.key;
|
|
199
|
+
applyFilter();
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
/** Janela deslizante da lista: mantém o cursor sempre visível. */
|
|
203
|
+
const VISIBLE_ROWS = 10;
|
|
204
|
+
function windowOf(state) {
|
|
205
|
+
if (state.visible.length <= VISIBLE_ROWS)
|
|
206
|
+
return { slice: state.visible, offset: 0 };
|
|
207
|
+
const half = Math.floor(VISIBLE_ROWS / 2);
|
|
208
|
+
const max = state.visible.length - VISIBLE_ROWS;
|
|
209
|
+
const offset = Math.max(0, Math.min(state.cursor - half, max));
|
|
210
|
+
return { slice: state.visible.slice(offset, offset + VISIBLE_ROWS), offset };
|
|
211
|
+
}
|
|
212
|
+
function buildView(state) {
|
|
213
|
+
const body = [commandHeader('add', 'Add components to your project'), text('')];
|
|
214
|
+
for (const [label, value] of state.transcript)
|
|
215
|
+
body.push(answeredLine(label, value));
|
|
216
|
+
if (state.transcript.length)
|
|
217
|
+
body.push(text(''));
|
|
218
|
+
if (state.phase === 'selecting') {
|
|
219
|
+
const { slice, offset } = windowOf(state);
|
|
220
|
+
const choices = slice.map(index => ({ label: state.names[index] }));
|
|
221
|
+
const localCursor = state.cursor - offset;
|
|
222
|
+
const localSelected = new Set(slice.map((index, position) => (state.selected.has(index) ? position : -1)).filter(position => position >= 0));
|
|
223
|
+
body.push(question('Which components would you like to add?'));
|
|
224
|
+
body.push(textField(state.filter));
|
|
225
|
+
if (choices.length) {
|
|
226
|
+
body.push(...checkList(choices, localCursor, localSelected));
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
body.push(hint('No component matches this filter.'));
|
|
230
|
+
}
|
|
231
|
+
body.push(text(''));
|
|
232
|
+
body.push(hint(`${state.selected.size} selected · ${state.visible.length} of ${state.names.length} shown`));
|
|
233
|
+
body.push(spacer());
|
|
234
|
+
body.push(controls([
|
|
235
|
+
['↑/↓', 'move'],
|
|
236
|
+
['space', 'select'],
|
|
237
|
+
['ctrl+a', 'toggle all'],
|
|
238
|
+
['enter', 'confirm'],
|
|
239
|
+
]));
|
|
240
|
+
}
|
|
241
|
+
else if (state.phase === 'resolving') {
|
|
242
|
+
body.push(taskHeader('Resolving components and dependencies…', false));
|
|
243
|
+
body.push(spacer());
|
|
244
|
+
}
|
|
245
|
+
else if (state.phase === 'confirming') {
|
|
246
|
+
body.push(question(`Ready to install ${state.componentCount} component(s) and ${state.dependencyCount} dependencies. Proceed?`));
|
|
247
|
+
body.push(confirmField(state.confirmValue));
|
|
248
|
+
body.push(hint('Existing files are kept unless you passed --overwrite.'));
|
|
249
|
+
body.push(spacer());
|
|
250
|
+
body.push(controls([
|
|
251
|
+
['y/n · ←/→', 'toggle'],
|
|
252
|
+
['enter', 'confirm'],
|
|
253
|
+
]));
|
|
254
|
+
}
|
|
255
|
+
else if (state.phase === 'darkMode') {
|
|
256
|
+
body.push(question('Where is your index.html file?'));
|
|
257
|
+
body.push(textField(state.indexHtml.value, state.indexHtml.caret));
|
|
258
|
+
body.push(hint('Dark mode injects a small script there to apply the theme before first paint.'));
|
|
259
|
+
body.push(spacer());
|
|
260
|
+
body.push(controls([
|
|
261
|
+
['enter', 'confirm'],
|
|
262
|
+
['esc', 'skip'],
|
|
263
|
+
]));
|
|
264
|
+
}
|
|
265
|
+
else {
|
|
266
|
+
body.push(...installBlock(state));
|
|
267
|
+
body.push(spacer());
|
|
268
|
+
body.push(controls([['enter', state.phase === 'failed' ? 'exit' : 'finish']]));
|
|
269
|
+
}
|
|
270
|
+
return screen(page(...body));
|
|
271
|
+
}
|
|
272
|
+
function installBlock(state) {
|
|
273
|
+
const allDone = state.tasksDone >= state.tasks.length;
|
|
274
|
+
const nodes = [];
|
|
275
|
+
if (state.tasks.length) {
|
|
276
|
+
nodes.push(taskHeader(state.phase === 'failed' ? 'Finished with errors' : 'Installing…', allDone), text(''), ...taskList(state.tasks, state.tasksDone, state.phase === 'installing' ? Date.now() - state.taskStartedAt : undefined), text(''), progress(state.tasksDone, state.tasks.length), text(''));
|
|
277
|
+
}
|
|
278
|
+
if (state.phase === 'failed') {
|
|
279
|
+
nodes.push(resultPanel('danger', state.failure ?? 'Some components could not be installed.'));
|
|
280
|
+
}
|
|
281
|
+
else if (state.installed.length) {
|
|
282
|
+
nodes.push(resultPanel('success', `Installed ${state.installed.length} component${state.installed.length > 1 ? 's' : ''}.`));
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
nodes.push(resultPanel('success', 'All components are already installed.'));
|
|
286
|
+
}
|
|
287
|
+
return nodes;
|
|
288
|
+
}
|
|
289
|
+
//# sourceMappingURL=wizard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../../src/commands/add/wizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { type ProjectKind } from '../../commands/init/project-kind.js';
|
|
2
|
+
import { type Config } from '../../utils/config.js';
|
|
3
|
+
import { type ProjectInfo } from '../../utils/get-project-info.js';
|
|
3
4
|
import { z } from 'zod';
|
|
4
5
|
export declare const SCHEMA_URL = "https://zardui.com/schema.json";
|
|
5
6
|
export declare const configSchema: z.ZodObject<{
|
|
@@ -7,6 +8,13 @@ export declare const configSchema: z.ZodObject<{
|
|
|
7
8
|
style: z.ZodEnum<{
|
|
8
9
|
css: "css";
|
|
9
10
|
}>;
|
|
11
|
+
projectType: z.ZodEnum<{
|
|
12
|
+
angular: "angular";
|
|
13
|
+
"angular-library": "angular-library";
|
|
14
|
+
nx: "nx";
|
|
15
|
+
"nx-library": "nx-library";
|
|
16
|
+
analog: "analog";
|
|
17
|
+
}>;
|
|
10
18
|
appConfigFile: z.ZodString;
|
|
11
19
|
packageManager: z.ZodEnum<{
|
|
12
20
|
npm: "npm";
|
|
@@ -26,5 +34,41 @@ export declare const configSchema: z.ZodObject<{
|
|
|
26
34
|
services: z.ZodString;
|
|
27
35
|
}, z.core.$strip>;
|
|
28
36
|
}, z.core.$strip>;
|
|
29
|
-
|
|
37
|
+
/** As respostas do wizard, antes de virarem um `components.json`. */
|
|
38
|
+
export interface InitAnswers {
|
|
39
|
+
kind: ProjectKind;
|
|
40
|
+
/** Raiz do projeto escolhido, relativa ao workspace; vazia no app único. */
|
|
41
|
+
projectRoot: string;
|
|
42
|
+
appConfig: string;
|
|
43
|
+
theme: string;
|
|
44
|
+
globalCss: string;
|
|
45
|
+
componentsAlias: string;
|
|
46
|
+
utilsAlias: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Os caminhos sugeridos para o tipo que o usuário escolheu.
|
|
50
|
+
*
|
|
51
|
+
* Vêm do projeto declarado no workspace sempre que ele existe — o `styles` do
|
|
52
|
+
* target de build é onde o CSS global realmente está, e adivinhá-lo era o que
|
|
53
|
+
* fazia o init sugerir caminhos que não existiam em layouts de monorepo.
|
|
54
|
+
*/
|
|
55
|
+
export declare function defaultAnswers(projectInfo: ProjectInfo, kind?: ProjectKind, projectRoot?: string): InitAnswers;
|
|
56
|
+
/**
|
|
57
|
+
* De onde os componentes são escritos, deduzido do `app.config.ts`.
|
|
58
|
+
*
|
|
59
|
+
* Fixar `src/app` quebrava todo layout que não fosse app único na raiz: num
|
|
60
|
+
* workspace o app.config vive em `apps/<app>/src/app`, e os componentes
|
|
61
|
+
* acabavam num `src/app` na raiz que não pertence a projeto nenhum. O diretório
|
|
62
|
+
* do app.config é exatamente a raiz do código do app.
|
|
63
|
+
*/
|
|
64
|
+
export declare function deriveBaseUrl(appConfigFile: string): string;
|
|
65
|
+
export declare function buildConfig(answers: InitAnswers, packageManager: 'npm' | 'yarn' | 'pnpm' | 'bun'): Config;
|
|
66
|
+
/**
|
|
67
|
+
* Estado do CSS global informado pelo usuário.
|
|
68
|
+
*
|
|
69
|
+
* O init sobrescreve esse arquivo com os tokens do tema, então o wizard precisa
|
|
70
|
+
* saber, antes de avançar, se ele existe e se há conteúdo a perder.
|
|
71
|
+
*/
|
|
72
|
+
export type CssFileState = 'missing' | 'empty' | 'has-content';
|
|
73
|
+
export declare function inspectCssFile(cwd: string, relativePath: string): Promise<CssFileState>;
|
|
30
74
|
//# sourceMappingURL=config-prompter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-prompter.d.ts","sourceRoot":"","sources":["../../../src/commands/init/config-prompter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"config-prompter.d.ts","sourceRoot":"","sources":["../../../src/commands/init/config-prompter.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,KAAK,WAAW,EAAyB,MAAM,gCAAgC,CAAC;AAIzF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,UAAU,mCAAmC,CAAC;AAE3D,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiBvB,CAAC;AAEH,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAkBD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,WAAW,EACxB,IAAI,cAAiC,EACrC,WAAW,CAAC,EAAE,MAAM,GACnB,WAAW,CA4Bb;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAG3D;AAOD,wBAAgB,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,CAqBzG;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAE/D,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAO7F"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { getAvailableThemes, getThemeDisplayName } from '../../utils/theme-selector.js';
|
|
3
|
-
import chalk from 'chalk';
|
|
1
|
+
import { candidateProjects, detectProjectKind, fallbackRootFor, isLibraryKind, libraryBaseUrl, libraryStylesPath, } from '../../commands/init/project-kind.js';
|
|
4
2
|
import { existsSync } from 'node:fs';
|
|
5
3
|
import { readFile } from 'node:fs/promises';
|
|
6
4
|
import * as path from 'node:path';
|
|
7
|
-
import prompts from 'prompts';
|
|
8
5
|
import { z } from 'zod';
|
|
9
6
|
export const SCHEMA_URL = 'https://zardui.com/schema.json';
|
|
10
7
|
export const configSchema = z.object({
|
|
11
8
|
$schema: z.string(),
|
|
12
9
|
style: z.enum(['css']),
|
|
10
|
+
projectType: z.enum(['angular', 'angular-library', 'nx', 'nx-library', 'analog']),
|
|
13
11
|
appConfigFile: z.string(),
|
|
14
12
|
packageManager: z.enum(['npm', 'yarn', 'pnpm', 'bun']),
|
|
15
13
|
tailwind: z.object({
|
|
@@ -24,86 +22,90 @@ export const configSchema = z.object({
|
|
|
24
22
|
services: z.string(),
|
|
25
23
|
}),
|
|
26
24
|
});
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
25
|
+
/**
|
|
26
|
+
* O projeto que o tipo escolhido sugere como alvo.
|
|
27
|
+
*
|
|
28
|
+
* Havendo mais de um compatível, o wizard pergunta — mas alguém precisa abrir a
|
|
29
|
+
* lista escolhido, e o primeiro declarado é a resposta menos surpreendente.
|
|
30
|
+
*/
|
|
31
|
+
function targetProject(projectInfo, kind, projectRoot) {
|
|
32
|
+
const candidates = candidateProjects(kind, projectInfo);
|
|
33
|
+
return candidates.find(project => project.root === projectRoot) ?? candidates[0];
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Os caminhos sugeridos para o tipo que o usuário escolheu.
|
|
37
|
+
*
|
|
38
|
+
* Vêm do projeto declarado no workspace sempre que ele existe — o `styles` do
|
|
39
|
+
* target de build é onde o CSS global realmente está, e adivinhá-lo era o que
|
|
40
|
+
* fazia o init sugerir caminhos que não existiam em layouts de monorepo.
|
|
41
|
+
*/
|
|
42
|
+
export function defaultAnswers(projectInfo, kind = detectProjectKind(projectInfo), projectRoot) {
|
|
43
|
+
const project = targetProject(projectInfo, kind, projectRoot);
|
|
44
|
+
const root = project?.root ?? fallbackRootFor(kind);
|
|
45
|
+
const shared = {
|
|
46
|
+
kind,
|
|
47
|
+
projectRoot: root,
|
|
48
|
+
theme: 'neutral',
|
|
49
|
+
componentsAlias: '@/shared/components',
|
|
50
|
+
utilsAlias: '@/shared/utils',
|
|
51
|
+
};
|
|
52
|
+
if (isLibraryKind(kind)) {
|
|
53
|
+
return {
|
|
54
|
+
...shared,
|
|
55
|
+
// Não há app.config numa biblioteca; o campo fica vazio no components.json.
|
|
56
|
+
appConfig: '',
|
|
57
|
+
globalCss: libraryStylesPath(root),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
const sourceRoot = project?.sourceRoot ?? (root ? `${root}/src` : 'src');
|
|
61
|
+
return {
|
|
62
|
+
...shared,
|
|
63
|
+
appConfig: `${sourceRoot}/app/app.config.ts`,
|
|
64
|
+
globalCss: project?.styles[0] ?? `${sourceRoot}/styles.css`,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* De onde os componentes são escritos, deduzido do `app.config.ts`.
|
|
69
|
+
*
|
|
70
|
+
* Fixar `src/app` quebrava todo layout que não fosse app único na raiz: num
|
|
71
|
+
* workspace o app.config vive em `apps/<app>/src/app`, e os componentes
|
|
72
|
+
* acabavam num `src/app` na raiz que não pertence a projeto nenhum. O diretório
|
|
73
|
+
* do app.config é exatamente a raiz do código do app.
|
|
74
|
+
*/
|
|
75
|
+
export function deriveBaseUrl(appConfigFile) {
|
|
76
|
+
const dir = path.dirname(appConfigFile).replace(/\\/g, '/');
|
|
77
|
+
return dir === '.' ? 'src/app' : dir;
|
|
78
|
+
}
|
|
79
|
+
/** Numa biblioteca o app.config não existe, então quem manda é a raiz da lib. */
|
|
80
|
+
function baseUrlFor(answers) {
|
|
81
|
+
return isLibraryKind(answers.kind) ? libraryBaseUrl(answers.projectRoot) : deriveBaseUrl(answers.appConfig);
|
|
82
|
+
}
|
|
83
|
+
export function buildConfig(answers, packageManager) {
|
|
84
|
+
const sharedBase = path.dirname(answers.componentsAlias).replace(/\\/g, '/');
|
|
85
|
+
return configSchema.parse({
|
|
70
86
|
$schema: SCHEMA_URL,
|
|
71
87
|
style: 'css',
|
|
72
|
-
|
|
88
|
+
projectType: answers.kind,
|
|
89
|
+
appConfigFile: answers.appConfig,
|
|
73
90
|
packageManager,
|
|
74
91
|
tailwind: {
|
|
75
|
-
css:
|
|
76
|
-
baseColor:
|
|
92
|
+
css: answers.globalCss,
|
|
93
|
+
baseColor: answers.theme,
|
|
77
94
|
},
|
|
78
|
-
baseUrl:
|
|
95
|
+
baseUrl: baseUrlFor(answers),
|
|
79
96
|
aliases: {
|
|
80
|
-
components: componentsAlias,
|
|
81
|
-
utils: utilsAlias,
|
|
97
|
+
components: answers.componentsAlias,
|
|
98
|
+
utils: answers.utilsAlias,
|
|
82
99
|
core: `${sharedBase}/core`,
|
|
83
100
|
services: `${sharedBase}/services`,
|
|
84
101
|
},
|
|
85
102
|
});
|
|
86
|
-
return config;
|
|
87
103
|
}
|
|
88
|
-
async function
|
|
89
|
-
const cssPath = path.join(cwd,
|
|
90
|
-
if (!existsSync(cssPath))
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
const existingContent = await readFile(cssPath, 'utf8');
|
|
96
|
-
if (existingContent.trim().length > 0) {
|
|
97
|
-
const { overwrite } = await prompts({
|
|
98
|
-
type: 'confirm',
|
|
99
|
-
name: 'overwrite',
|
|
100
|
-
message: `Your CSS file already has content. This will overwrite everything with ZardUI theme configuration. Continue?`,
|
|
101
|
-
initial: true,
|
|
102
|
-
});
|
|
103
|
-
if (!overwrite) {
|
|
104
|
-
logger.info('Installation cancelled.');
|
|
105
|
-
process.exit(0);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
104
|
+
export async function inspectCssFile(cwd, relativePath) {
|
|
105
|
+
const cssPath = path.join(cwd, relativePath);
|
|
106
|
+
if (!existsSync(cssPath))
|
|
107
|
+
return 'missing';
|
|
108
|
+
const content = await readFile(cssPath, 'utf8');
|
|
109
|
+
return content.trim().length > 0 ? 'has-content' : 'empty';
|
|
108
110
|
}
|
|
109
111
|
//# sourceMappingURL=config-prompter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-prompter.js","sourceRoot":"","sources":["../../../src/commands/init/config-prompter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config-prompter.js","sourceRoot":"","sources":["../../../src/commands/init/config-prompter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,4 @@
|
|
|
1
1
|
import { type Config } from '../../utils/config.js';
|
|
2
|
-
type ProjectInfo
|
|
3
|
-
framework: string;
|
|
4
|
-
hasTypeScript: boolean;
|
|
5
|
-
hasTailwind: boolean;
|
|
6
|
-
hasNx: boolean;
|
|
7
|
-
angularVersion: string | null;
|
|
8
|
-
};
|
|
2
|
+
import { type ProjectInfo } from '../../utils/get-project-info.js';
|
|
9
3
|
export declare function installDependencies(cwd: string, config: Config, projectInfo?: ProjectInfo): Promise<void>;
|
|
10
|
-
export {};
|
|
11
4
|
//# sourceMappingURL=dependencies.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../../src/commands/init/dependencies.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../../src/commands/init/dependencies.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAIlF,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAyB/G"}
|