zard-cli 1.0.0-beta.103 → 1.0.0-beta.105
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/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/dependency-resolver.d.ts +2 -1
- package/commands/add/dependency-resolver.d.ts.map +1 -1
- package/commands/add/dependency-resolver.js +19 -4
- package/commands/add/dependency-resolver.js.map +1 -1
- package/commands/add/index.d.ts.map +1 -1
- package/commands/add/index.js +116 -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 +49 -3
- package/commands/init/config-prompter.d.ts.map +1 -1
- package/commands/init/config-prompter.js +84 -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 +47 -18
- package/commands/init/dependencies.js.map +1 -1
- package/commands/init/index.d.ts.map +1 -1
- package/commands/init/index.js +147 -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 +153 -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/icons/families.d.ts +38 -0
- package/core/icons/families.d.ts.map +1 -0
- package/core/icons/families.js +26 -0
- package/core/icons/families.js.map +1 -0
- package/core/icons/icon-map.d.ts +22 -0
- package/core/icons/icon-map.d.ts.map +1 -0
- package/core/icons/icon-map.js +128 -0
- package/core/icons/icon-map.js.map +1 -0
- package/core/icons/index.d.ts +107 -0
- package/core/icons/index.d.ts.map +1 -0
- package/core/icons/index.js +183 -0
- package/core/icons/index.js.map +1 -0
- package/core/registry/registry-data.d.ts.map +1 -1
- package/core/registry/registry-data.js +74 -0
- package/core/registry/registry-data.js.map +1 -1
- package/core/themes/theme-definitions.js +50 -50
- package/index.js +5 -3
- package/index.js.map +1 -1
- package/package.json +1 -4
- 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 +84 -0
- package/ui/engine/terminal/index.d.ts.map +1 -0
- package/ui/engine/terminal/index.js +235 -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 +66 -0
- package/ui/runner.d.ts.map +1 -0
- package/ui/runner.js +135 -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 +26 -0
- package/utils/config.d.ts.map +1 -1
- package/utils/config.js +41 -1
- package/utils/config.js.map +1 -1
- package/utils/errors.d.ts +11 -0
- package/utils/errors.d.ts.map +1 -1
- package/utils/errors.js +14 -0
- package/utils/errors.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/icon-catalog.d.ts +33 -0
- package/utils/icon-catalog.d.ts.map +1 -0
- package/utils/icon-catalog.js +62 -0
- package/utils/icon-catalog.js.map +1 -0
- 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 +42 -2
- package/utils/registry.d.ts.map +1 -1
- package/utils/registry.js +51 -9
- package/utils/registry.js.map +1 -1
- package/utils/schema-version.d.ts +20 -0
- package/utils/schema-version.d.ts.map +1 -0
- package/utils/schema-version.js +27 -0
- package/utils/schema-version.js.map +1 -0
- 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,560 @@
|
|
|
1
|
+
import { buildConfig, defaultAnswers, inspectCssFile } from '../../commands/init/config-prompter.js';
|
|
2
|
+
import { candidateProjects, isLibraryKind, PROJECT_KINDS } from '../../commands/init/project-kind.js';
|
|
3
|
+
import { answeredLine, brandBanner, choiceList, commandHeader, confirmField, controls, hint, page, progress, question, resultPanel, editInput, runWizard, screen, spacer, startInput, taskHeader, taskList, text, textField, warning, } from '../../ui/index.js';
|
|
4
|
+
import { getAvailableThemes, getThemeDisplayName } from '../../utils/theme-selector.js';
|
|
5
|
+
const OVERWRITE_STEP = {
|
|
6
|
+
id: 'overwriteCss',
|
|
7
|
+
kind: 'confirm',
|
|
8
|
+
prompt: 'Your CSS file already has content. This will overwrite everything with zard/ui theme configuration. Continue?',
|
|
9
|
+
label: 'overwrite CSS',
|
|
10
|
+
detail: 'The theme tokens must live in your global CSS, or the components will not render.',
|
|
11
|
+
confirmDefault: true,
|
|
12
|
+
danger: 'Choosing No cancels the installation. This step is essential for zard/ui to work.',
|
|
13
|
+
};
|
|
14
|
+
function themeStep() {
|
|
15
|
+
const themes = getAvailableThemes();
|
|
16
|
+
return {
|
|
17
|
+
id: 'theme',
|
|
18
|
+
kind: 'select',
|
|
19
|
+
prompt: 'Choose a theme for your components:',
|
|
20
|
+
label: 'theme',
|
|
21
|
+
detail: 'Defines the base color palette, exposed as CSS variables on :root.',
|
|
22
|
+
choices: themes.map(theme => ({ label: getThemeDisplayName(theme) })),
|
|
23
|
+
values: themes,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* A linha do cabeçalho, dizendo onde a instalação vai cair.
|
|
28
|
+
*
|
|
29
|
+
* Antes da primeira resposta não há alvo nenhum a anunciar — o tipo é escolha
|
|
30
|
+
* do usuário, e adiantá-lo aqui daria a impressão de que a CLI já decidiu. Com
|
|
31
|
+
* um único projeto compatível o wizard também não pergunta qual, então é aqui
|
|
32
|
+
* que o nome dele aparece, para a escolha não ficar implícita.
|
|
33
|
+
*/
|
|
34
|
+
function targetDescription(state, options) {
|
|
35
|
+
if (!state.kindChosen)
|
|
36
|
+
return 'Setting up zard/ui in your project…';
|
|
37
|
+
const label = PROJECT_KINDS.find(option => option.value === state.answers.kind)?.label ?? 'Angular';
|
|
38
|
+
const project = candidateProjects(state.answers.kind, options.projectInfo).find(candidate => candidate.root === state.answers.projectRoot);
|
|
39
|
+
if (project)
|
|
40
|
+
return `Setting up zard/ui in ${project.name} (${label})…`;
|
|
41
|
+
return `Setting up zard/ui in your ${label} project…`;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* A primeira pergunta, sempre.
|
|
45
|
+
*
|
|
46
|
+
* Quem decide o tipo é o usuário: a lista abre inteira, na ordem do menu, sem
|
|
47
|
+
* pré-seleção derivada do que há no diretório. Tudo o que vem depois — os
|
|
48
|
+
* caminhos sugeridos, as etapas que rodam — é consequência desta resposta.
|
|
49
|
+
*/
|
|
50
|
+
function kindStep() {
|
|
51
|
+
return {
|
|
52
|
+
id: 'kind',
|
|
53
|
+
kind: 'select',
|
|
54
|
+
prompt: 'What are you setting up?',
|
|
55
|
+
label: 'project type',
|
|
56
|
+
detail: 'Decides where the components live and what init has to configure.',
|
|
57
|
+
choices: PROJECT_KINDS.map(option => ({ label: option.label, hint: option.detail, color: option.color })),
|
|
58
|
+
values: PROJECT_KINDS.map(option => option.value),
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Escolha do projeto, só quando há mais de um compatível.
|
|
63
|
+
*
|
|
64
|
+
* Com um único candidato a pergunta não teria resposta alternativa; o nome
|
|
65
|
+
* aparece no cabeçalho, e o usuário segue direto para a próxima etapa.
|
|
66
|
+
*/
|
|
67
|
+
function projectStep(projects, kind) {
|
|
68
|
+
const library = isLibraryKind(kind);
|
|
69
|
+
return {
|
|
70
|
+
id: 'projectRoot',
|
|
71
|
+
kind: 'select',
|
|
72
|
+
prompt: library ? 'Which library should receive the components?' : 'Which app should receive the components?',
|
|
73
|
+
label: library ? 'library' : 'app',
|
|
74
|
+
detail: library
|
|
75
|
+
? 'The components become part of this library and ship with it.'
|
|
76
|
+
: 'Its app.config.ts and global CSS are the ones init configures.',
|
|
77
|
+
choices: projects.map(project => ({ label: project.name, hint: project.root || '.' })),
|
|
78
|
+
values: projects.map(project => project.root),
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function baseSteps(projectInfo, kind) {
|
|
82
|
+
const candidates = candidateProjects(kind, projectInfo);
|
|
83
|
+
const chooseProject = candidates.length > 1 ? [projectStep(candidates, kind)] : [];
|
|
84
|
+
if (isLibraryKind(kind)) {
|
|
85
|
+
return [
|
|
86
|
+
kindStep(),
|
|
87
|
+
...chooseProject,
|
|
88
|
+
themeStep(),
|
|
89
|
+
{
|
|
90
|
+
id: 'globalCss',
|
|
91
|
+
kind: 'text',
|
|
92
|
+
prompt: 'Where should the theme tokens live?',
|
|
93
|
+
label: 'theme CSS',
|
|
94
|
+
detail: 'Created inside the library and shipped with it, for the consuming app to import.',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
id: 'componentsAlias',
|
|
98
|
+
kind: 'text',
|
|
99
|
+
prompt: 'Configure the import alias for components:',
|
|
100
|
+
label: 'components alias',
|
|
101
|
+
detail: 'Where `add` generates component source; also written to tsconfig paths.',
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
id: 'utilsAlias',
|
|
105
|
+
kind: 'text',
|
|
106
|
+
prompt: 'Configure the import alias for utils:',
|
|
107
|
+
label: 'utils alias',
|
|
108
|
+
detail: 'Home of the class-merging helpers shared by every component.',
|
|
109
|
+
},
|
|
110
|
+
];
|
|
111
|
+
}
|
|
112
|
+
return [
|
|
113
|
+
kindStep(),
|
|
114
|
+
...chooseProject,
|
|
115
|
+
{
|
|
116
|
+
id: 'appConfig',
|
|
117
|
+
kind: 'text',
|
|
118
|
+
prompt: 'Where is your app.config.ts file?',
|
|
119
|
+
label: 'app.config.ts',
|
|
120
|
+
detail: 'zard/ui registers its global providers in this file.',
|
|
121
|
+
},
|
|
122
|
+
themeStep(),
|
|
123
|
+
{
|
|
124
|
+
id: 'globalCss',
|
|
125
|
+
kind: 'text',
|
|
126
|
+
prompt: 'Where is your global CSS file?',
|
|
127
|
+
label: 'global CSS',
|
|
128
|
+
detail: 'zard/ui writes its design tokens and the base layer into this file.',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
id: 'componentsAlias',
|
|
132
|
+
kind: 'text',
|
|
133
|
+
prompt: 'Configure the import alias for components:',
|
|
134
|
+
label: 'components alias',
|
|
135
|
+
detail: 'Where `add` generates component source; also written to tsconfig paths.',
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
id: 'utilsAlias',
|
|
139
|
+
kind: 'text',
|
|
140
|
+
prompt: 'Configure the import alias for utils:',
|
|
141
|
+
label: 'utils alias',
|
|
142
|
+
detail: 'Home of the class-merging helpers shared by every component.',
|
|
143
|
+
},
|
|
144
|
+
];
|
|
145
|
+
}
|
|
146
|
+
export async function runInitWizard(options) {
|
|
147
|
+
// O menu abre no primeiro tipo da lista, não no que o diretório sugere: a
|
|
148
|
+
// escolha é do usuário, e um cursor já posicionado noutro item transformaria
|
|
149
|
+
// um palpite da CLI na resposta que ele confirma sem ler.
|
|
150
|
+
const firstKind = options.presetKind ?? PROJECT_KINDS[0].value;
|
|
151
|
+
const answers = defaultAnswers(options.projectInfo, firstKind, options.presetProjectRoot);
|
|
152
|
+
const state = {
|
|
153
|
+
// Reinicializar sobrescreve configuração já existente: a confirmação vem
|
|
154
|
+
// antes de qualquer pergunta e não é pulada por --yes.
|
|
155
|
+
phase: options.isReInitializing ? 'reinit' : 'prompting',
|
|
156
|
+
steps: baseSteps(options.projectInfo, firstKind),
|
|
157
|
+
stepIndex: 0,
|
|
158
|
+
answers,
|
|
159
|
+
kindChosen: false,
|
|
160
|
+
input: startInput(answers.appConfig),
|
|
161
|
+
choiceIndex: 0,
|
|
162
|
+
confirmValue: true,
|
|
163
|
+
error: null,
|
|
164
|
+
checking: false,
|
|
165
|
+
tasks: [],
|
|
166
|
+
tasksDone: 0,
|
|
167
|
+
taskStartedAt: 0,
|
|
168
|
+
failure: null,
|
|
169
|
+
};
|
|
170
|
+
let config = null;
|
|
171
|
+
const currentStep = () => state.steps[state.stepIndex];
|
|
172
|
+
const answerOf = (step) => {
|
|
173
|
+
if (step.id === 'overwriteCss')
|
|
174
|
+
return 'yes';
|
|
175
|
+
return state.answers[step.id];
|
|
176
|
+
};
|
|
177
|
+
/** Prepara os campos de entrada para o passo que acabou de virar ativo. */
|
|
178
|
+
const enterStep = () => {
|
|
179
|
+
const step = currentStep();
|
|
180
|
+
state.error = null;
|
|
181
|
+
if (step.kind === 'text') {
|
|
182
|
+
state.input = startInput(answerOf(step));
|
|
183
|
+
}
|
|
184
|
+
else if (step.kind === 'select') {
|
|
185
|
+
const values = step.values ?? [];
|
|
186
|
+
state.choiceIndex = Math.max(0, values.indexOf(answerOf(step)));
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
state.confirmValue = step.confirmDefault ?? true;
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
// A primeira etapa também precisa dos campos preparados: sem isto o menu
|
|
193
|
+
// abre com o cursor no topo em vez do tipo que a detecção sugeriu.
|
|
194
|
+
enterStep();
|
|
195
|
+
const startExecution = (ctx) => {
|
|
196
|
+
const resolved = buildConfig(state.answers, options.packageManager);
|
|
197
|
+
config = resolved;
|
|
198
|
+
const steps = options.buildSteps(resolved);
|
|
199
|
+
state.phase = 'running';
|
|
200
|
+
state.tasks = steps.map(step => ({ label: step.label, note: step.note }));
|
|
201
|
+
state.tasksDone = 0;
|
|
202
|
+
state.taskStartedAt = Date.now();
|
|
203
|
+
ctx.refresh();
|
|
204
|
+
void (async () => {
|
|
205
|
+
for (const step of steps) {
|
|
206
|
+
state.taskStartedAt = Date.now();
|
|
207
|
+
try {
|
|
208
|
+
await step.run();
|
|
209
|
+
}
|
|
210
|
+
catch (error) {
|
|
211
|
+
state.phase = 'failed';
|
|
212
|
+
state.failure = `${step.label}: ${error instanceof Error ? error.message : String(error)}`;
|
|
213
|
+
ctx.refresh();
|
|
214
|
+
return;
|
|
215
|
+
}
|
|
216
|
+
state.tasksDone++;
|
|
217
|
+
ctx.refresh();
|
|
218
|
+
}
|
|
219
|
+
state.phase = 'done';
|
|
220
|
+
ctx.refresh();
|
|
221
|
+
})();
|
|
222
|
+
};
|
|
223
|
+
const advance = (ctx) => {
|
|
224
|
+
if (state.stepIndex < state.steps.length - 1) {
|
|
225
|
+
state.stepIndex++;
|
|
226
|
+
enterStep();
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
if (options.skipConfirmation) {
|
|
230
|
+
startExecution(ctx);
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
state.phase = 'confirming';
|
|
234
|
+
state.confirmValue = true;
|
|
235
|
+
};
|
|
236
|
+
const goBack = (ctx) => {
|
|
237
|
+
if (state.phase === 'confirming') {
|
|
238
|
+
state.phase = 'prompting';
|
|
239
|
+
enterStep();
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
if (state.stepIndex === 0) {
|
|
243
|
+
ctx.cancel();
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
state.stepIndex--;
|
|
247
|
+
enterStep();
|
|
248
|
+
};
|
|
249
|
+
/** Insere ou remove o passo de sobrescrita conforme o CSS informado. */
|
|
250
|
+
const syncOverwriteStep = (needed) => {
|
|
251
|
+
const index = state.steps.findIndex(step => step.id === 'overwriteCss');
|
|
252
|
+
if (needed && index === -1) {
|
|
253
|
+
state.steps.splice(state.stepIndex + 1, 0, OVERWRITE_STEP);
|
|
254
|
+
}
|
|
255
|
+
else if (!needed && index !== -1) {
|
|
256
|
+
state.steps.splice(index, 1);
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
const commit = (ctx, value) => {
|
|
260
|
+
const step = currentStep();
|
|
261
|
+
if (step.id === 'overwriteCss') {
|
|
262
|
+
if (value === 'no') {
|
|
263
|
+
state.phase = 'aborted';
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
advance(ctx);
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
// Trocar o tipo de projeto troca as perguntas seguintes e os defaults que
|
|
270
|
+
// dependem dele — o caminho do CSS, por exemplo, deixa de ser o do app. O
|
|
271
|
+
// tema é preservado porque não depende do tipo.
|
|
272
|
+
if (step.id === 'kind') {
|
|
273
|
+
const kind = value;
|
|
274
|
+
state.answers = { ...defaultAnswers(options.projectInfo, kind), theme: state.answers.theme };
|
|
275
|
+
state.steps = baseSteps(options.projectInfo, kind);
|
|
276
|
+
state.kindChosen = true;
|
|
277
|
+
advance(ctx);
|
|
278
|
+
return;
|
|
279
|
+
}
|
|
280
|
+
// Trocar o projeto alvo move junto o app.config e o CSS global: são
|
|
281
|
+
// caminhos daquele projeto, e mantê-los apontando para o anterior faria o
|
|
282
|
+
// init escrever no app errado.
|
|
283
|
+
if (step.id === 'projectRoot') {
|
|
284
|
+
state.answers = {
|
|
285
|
+
...defaultAnswers(options.projectInfo, state.answers.kind, value),
|
|
286
|
+
theme: state.answers.theme,
|
|
287
|
+
};
|
|
288
|
+
advance(ctx);
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
state.answers[step.id] = value;
|
|
292
|
+
if (step.id !== 'globalCss') {
|
|
293
|
+
advance(ctx);
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
// O caminho do CSS é o único que precisa existir antes de seguir: é ele que
|
|
297
|
+
// recebe os tokens do tema. Numa biblioteca não há CSS global prévio — o
|
|
298
|
+
// arquivo é criado pelo init, então "não existe" é o caso esperado.
|
|
299
|
+
state.checking = true;
|
|
300
|
+
ctx.refresh();
|
|
301
|
+
void inspectCssFile(options.cwd, value).then(result => {
|
|
302
|
+
state.checking = false;
|
|
303
|
+
if (result === 'missing' && !isLibraryKind(state.answers.kind)) {
|
|
304
|
+
state.error = 'File not found. Check the path and try again.';
|
|
305
|
+
}
|
|
306
|
+
else {
|
|
307
|
+
syncOverwriteStep(result === 'has-content');
|
|
308
|
+
advance(ctx);
|
|
309
|
+
}
|
|
310
|
+
ctx.refresh();
|
|
311
|
+
}, error => {
|
|
312
|
+
state.checking = false;
|
|
313
|
+
state.error = error instanceof Error ? error.message : String(error);
|
|
314
|
+
ctx.refresh();
|
|
315
|
+
});
|
|
316
|
+
};
|
|
317
|
+
const onKey = (event, ctx) => {
|
|
318
|
+
if (state.checking || state.phase === 'running')
|
|
319
|
+
return;
|
|
320
|
+
if (state.phase === 'done') {
|
|
321
|
+
if (event.key === 'enter' && config)
|
|
322
|
+
ctx.done(config);
|
|
323
|
+
return;
|
|
324
|
+
}
|
|
325
|
+
if (state.phase === 'failed') {
|
|
326
|
+
if (event.key === 'enter')
|
|
327
|
+
ctx.cancel(state.failure ?? 'Initialization failed.');
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
if (state.phase === 'aborted') {
|
|
331
|
+
if (event.key === 'escape') {
|
|
332
|
+
state.phase = 'prompting';
|
|
333
|
+
state.confirmValue = true;
|
|
334
|
+
return;
|
|
335
|
+
}
|
|
336
|
+
if (event.key === 'enter')
|
|
337
|
+
ctx.cancel('Installation cancelled.');
|
|
338
|
+
return;
|
|
339
|
+
}
|
|
340
|
+
if (state.phase === 'reinit') {
|
|
341
|
+
if (event.key === 'left' || event.key === 'right')
|
|
342
|
+
state.confirmValue = !state.confirmValue;
|
|
343
|
+
else if (event.key === 'y' || event.key === 'Y')
|
|
344
|
+
state.phase = 'prompting';
|
|
345
|
+
else if (event.key === 'n' || event.key === 'N' || event.key === 'escape') {
|
|
346
|
+
ctx.cancel('Re-initialization cancelled.');
|
|
347
|
+
}
|
|
348
|
+
else if (event.key === 'enter') {
|
|
349
|
+
if (state.confirmValue)
|
|
350
|
+
state.phase = 'prompting';
|
|
351
|
+
else
|
|
352
|
+
ctx.cancel('Re-initialization cancelled.');
|
|
353
|
+
}
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
if (state.phase === 'confirming') {
|
|
357
|
+
if (event.key === 'escape')
|
|
358
|
+
goBack(ctx);
|
|
359
|
+
else if (event.key === 'left' || event.key === 'right')
|
|
360
|
+
state.confirmValue = !state.confirmValue;
|
|
361
|
+
else if (event.key === 'y' || event.key === 'Y')
|
|
362
|
+
startExecution(ctx);
|
|
363
|
+
else if (event.key === 'n' || event.key === 'N')
|
|
364
|
+
ctx.cancel();
|
|
365
|
+
else if (event.key === 'enter') {
|
|
366
|
+
if (state.confirmValue)
|
|
367
|
+
startExecution(ctx);
|
|
368
|
+
else
|
|
369
|
+
ctx.cancel();
|
|
370
|
+
}
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
const step = currentStep();
|
|
374
|
+
if (event.key === 'escape') {
|
|
375
|
+
goBack(ctx);
|
|
376
|
+
return;
|
|
377
|
+
}
|
|
378
|
+
if (step.kind === 'text') {
|
|
379
|
+
if (event.key === 'enter') {
|
|
380
|
+
commit(ctx, state.input.value.trim() || answerOf(step));
|
|
381
|
+
return;
|
|
382
|
+
}
|
|
383
|
+
const edited = editInput(state.input, event);
|
|
384
|
+
if (edited) {
|
|
385
|
+
state.input = edited;
|
|
386
|
+
state.error = null;
|
|
387
|
+
}
|
|
388
|
+
return;
|
|
389
|
+
}
|
|
390
|
+
if (step.kind === 'select') {
|
|
391
|
+
const values = step.values ?? [];
|
|
392
|
+
if (event.key === 'up')
|
|
393
|
+
state.choiceIndex = (state.choiceIndex - 1 + values.length) % values.length;
|
|
394
|
+
else if (event.key === 'down')
|
|
395
|
+
state.choiceIndex = (state.choiceIndex + 1) % values.length;
|
|
396
|
+
else if (event.key === 'enter')
|
|
397
|
+
commit(ctx, values[state.choiceIndex] ?? '');
|
|
398
|
+
return;
|
|
399
|
+
}
|
|
400
|
+
if (event.key === 'y' || event.key === 'Y')
|
|
401
|
+
commit(ctx, 'yes');
|
|
402
|
+
else if (event.key === 'n' || event.key === 'N')
|
|
403
|
+
commit(ctx, 'no');
|
|
404
|
+
else if (event.key === 'left' || event.key === 'right')
|
|
405
|
+
state.confirmValue = !state.confirmValue;
|
|
406
|
+
else if (event.key === 'enter')
|
|
407
|
+
commit(ctx, state.confirmValue ? 'yes' : 'no');
|
|
408
|
+
};
|
|
409
|
+
const view = (rows) => {
|
|
410
|
+
const body = [
|
|
411
|
+
...brandBanner(rows),
|
|
412
|
+
text(''),
|
|
413
|
+
commandHeader(options.isReInitializing ? 're-initialize' : 'initialize', targetDescription(state, options)),
|
|
414
|
+
text(''),
|
|
415
|
+
];
|
|
416
|
+
if (state.phase === 'prompting' || state.phase === 'confirming' || state.phase === 'aborted') {
|
|
417
|
+
const answered = state.phase === 'confirming' ? state.steps.length : state.stepIndex;
|
|
418
|
+
for (let index = 0; index < answered; index++) {
|
|
419
|
+
const step = state.steps[index];
|
|
420
|
+
body.push(answeredLine(step.label, displayValue(step, state)));
|
|
421
|
+
}
|
|
422
|
+
if (answered > 0)
|
|
423
|
+
body.push(text(''));
|
|
424
|
+
}
|
|
425
|
+
if (state.phase === 'reinit') {
|
|
426
|
+
body.push(question('zard/ui is already initialized. Re-initialize this project?'));
|
|
427
|
+
body.push(confirmField(state.confirmValue));
|
|
428
|
+
body.push(hint('This overwrites your existing components.json, theme tokens and shared utils.'));
|
|
429
|
+
body.push(spacer());
|
|
430
|
+
body.push(controls([
|
|
431
|
+
['y/n · ←/→', 'toggle'],
|
|
432
|
+
['enter', 'confirm'],
|
|
433
|
+
]));
|
|
434
|
+
return screen(page(...body));
|
|
435
|
+
}
|
|
436
|
+
if (state.phase === 'prompting') {
|
|
437
|
+
body.push(...activeStep(state));
|
|
438
|
+
body.push(spacer());
|
|
439
|
+
body.push(controls(hintsFor(currentStep())));
|
|
440
|
+
}
|
|
441
|
+
else if (state.phase === 'confirming') {
|
|
442
|
+
body.push(question('Write configuration to components.json?'));
|
|
443
|
+
body.push(confirmField(state.confirmValue));
|
|
444
|
+
body.push(hint('Nothing has been written yet — this is the last step before zard/ui touches your project.'));
|
|
445
|
+
body.push(spacer());
|
|
446
|
+
body.push(controls([
|
|
447
|
+
['y/n · ←/→', 'toggle'],
|
|
448
|
+
['enter', 'confirm'],
|
|
449
|
+
['esc', 'back'],
|
|
450
|
+
]));
|
|
451
|
+
}
|
|
452
|
+
else if (state.phase === 'running' || state.phase === 'done' || state.phase === 'failed') {
|
|
453
|
+
body.push(...executionBlock(state));
|
|
454
|
+
body.push(spacer());
|
|
455
|
+
if (state.phase === 'done')
|
|
456
|
+
body.push(controls([['enter', 'finish']]));
|
|
457
|
+
else if (state.phase === 'failed')
|
|
458
|
+
body.push(controls([['enter', 'exit']]));
|
|
459
|
+
}
|
|
460
|
+
else {
|
|
461
|
+
body.push(...abortBlock());
|
|
462
|
+
body.push(spacer());
|
|
463
|
+
body.push(controls([
|
|
464
|
+
['esc', 'go back'],
|
|
465
|
+
['enter', 'exit'],
|
|
466
|
+
]));
|
|
467
|
+
}
|
|
468
|
+
return screen(page(...body));
|
|
469
|
+
};
|
|
470
|
+
const result = await runWizard({
|
|
471
|
+
view: () => view(process.stdout.rows ?? 24),
|
|
472
|
+
onKey,
|
|
473
|
+
});
|
|
474
|
+
return { config: result.value, logs: result.logs };
|
|
475
|
+
}
|
|
476
|
+
function displayValue(step, state) {
|
|
477
|
+
if (step.id === 'overwriteCss')
|
|
478
|
+
return 'yes';
|
|
479
|
+
const value = state.answers[step.id];
|
|
480
|
+
if (step.kind === 'select') {
|
|
481
|
+
const index = (step.values ?? []).indexOf(value);
|
|
482
|
+
return step.choices?.[index]?.label ?? value;
|
|
483
|
+
}
|
|
484
|
+
return value;
|
|
485
|
+
}
|
|
486
|
+
function activeStep(state) {
|
|
487
|
+
const step = state.steps[state.stepIndex];
|
|
488
|
+
const nodes = [question(step.prompt)];
|
|
489
|
+
if (step.kind === 'text') {
|
|
490
|
+
nodes.push(textField(state.input.value, state.input.caret));
|
|
491
|
+
}
|
|
492
|
+
else if (step.kind === 'select') {
|
|
493
|
+
nodes.push(...choiceList(step.choices ?? [], state.choiceIndex));
|
|
494
|
+
}
|
|
495
|
+
else {
|
|
496
|
+
nodes.push(confirmField(state.confirmValue));
|
|
497
|
+
}
|
|
498
|
+
if (state.error)
|
|
499
|
+
nodes.push(text(` ✖ ${state.error}`, { color: 'danger', bold: true }));
|
|
500
|
+
else if (state.checking)
|
|
501
|
+
nodes.push(hint('Checking…'));
|
|
502
|
+
else
|
|
503
|
+
nodes.push(hint(step.detail));
|
|
504
|
+
if (step.danger)
|
|
505
|
+
nodes.push(warning(step.danger));
|
|
506
|
+
return nodes;
|
|
507
|
+
}
|
|
508
|
+
function hintsFor(step) {
|
|
509
|
+
if (step.kind === 'text') {
|
|
510
|
+
return [
|
|
511
|
+
['enter', 'confirm'],
|
|
512
|
+
['⌫', 'edit'],
|
|
513
|
+
['esc', 'back'],
|
|
514
|
+
];
|
|
515
|
+
}
|
|
516
|
+
if (step.kind === 'select') {
|
|
517
|
+
return [
|
|
518
|
+
['↑/↓', 'choose'],
|
|
519
|
+
['enter', 'confirm'],
|
|
520
|
+
['esc', 'back'],
|
|
521
|
+
];
|
|
522
|
+
}
|
|
523
|
+
return [
|
|
524
|
+
['y/n · ←/→', 'toggle'],
|
|
525
|
+
['enter', 'confirm'],
|
|
526
|
+
['esc', 'back'],
|
|
527
|
+
];
|
|
528
|
+
}
|
|
529
|
+
function executionBlock(state) {
|
|
530
|
+
const allDone = state.tasksDone >= state.tasks.length;
|
|
531
|
+
const nodes = [
|
|
532
|
+
taskHeader(state.phase === 'failed' ? 'Initialization failed' : 'Writing configuration…', allDone),
|
|
533
|
+
text(''),
|
|
534
|
+
...taskList(state.tasks, state.tasksDone, state.phase === 'running' ? Date.now() - state.taskStartedAt : undefined),
|
|
535
|
+
text(''),
|
|
536
|
+
progress(state.tasksDone, state.tasks.length),
|
|
537
|
+
];
|
|
538
|
+
if (state.phase === 'failed') {
|
|
539
|
+
nodes.push(text(''));
|
|
540
|
+
nodes.push(resultPanel('danger', state.failure ?? 'Something went wrong.'));
|
|
541
|
+
return nodes;
|
|
542
|
+
}
|
|
543
|
+
if (state.phase === 'done') {
|
|
544
|
+
nodes.push(text(''));
|
|
545
|
+
nodes.push(resultPanel('success', 'zard/ui has been initialized successfully!'));
|
|
546
|
+
}
|
|
547
|
+
return nodes;
|
|
548
|
+
}
|
|
549
|
+
function abortBlock() {
|
|
550
|
+
return [
|
|
551
|
+
resultPanel('danger', 'Installation stopped'),
|
|
552
|
+
text(''),
|
|
553
|
+
text(' zard/ui must write its theme configuration into your global CSS.', { color: 'foreground' }),
|
|
554
|
+
text(' Without it, the components will not render correctly.', { color: 'muted' }),
|
|
555
|
+
text(''),
|
|
556
|
+
text(' Nothing was changed. Run init again and accept that step, or move', { color: 'muted', dim: true }),
|
|
557
|
+
text(' your existing styles elsewhere first.', { color: 'muted', dim: true }),
|
|
558
|
+
];
|
|
559
|
+
}
|
|
560
|
+
//# sourceMappingURL=wizard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../../src/commands/init/wizard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* As famílias de ícones que o `components.json` aceita em `icons`.
|
|
3
|
+
*
|
|
4
|
+
* Todo componente da biblioteca desenha através do `<ng-icon>` do ng-icons, que
|
|
5
|
+
* é agnóstico de família: o que amarra o desenho a uma delas é o pacote de onde
|
|
6
|
+
* os símbolos são importados (`@ng-icons/lucide`) e o prefixo que eles carregam
|
|
7
|
+
* (`lucideCheck`). As duas coisas estão declaradas aqui, e é só isso que separa
|
|
8
|
+
* uma família da outra no caminho de instalação.
|
|
9
|
+
*
|
|
10
|
+
* Esta tabela é a cópia local — a que vale quando o registry não responde. A
|
|
11
|
+
* lista boa vem de `<registry>/icons.json`, e é isso que permite uma família
|
|
12
|
+
* nova entrar sem que ninguém precise atualizar a CLI.
|
|
13
|
+
*/
|
|
14
|
+
export interface IconFamilyInfo {
|
|
15
|
+
/** Como aparece no `components.json`. */
|
|
16
|
+
readonly value: string;
|
|
17
|
+
/** Nome de exibição, para prompts e relatórios. */
|
|
18
|
+
readonly label: string;
|
|
19
|
+
/** O pacote npm que o projeto precisa ter instalado. */
|
|
20
|
+
readonly package: string;
|
|
21
|
+
/** O prefixo dos símbolos exportados por esse pacote (`lucide` → `lucideCheck`). */
|
|
22
|
+
readonly prefix: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Uma string, e não a união das famílias conhecidas.
|
|
26
|
+
*
|
|
27
|
+
* O tipo literal seria mais preciso e mais errado: as famílias passaram a vir do
|
|
28
|
+
* registry, então o conjunto válido é o que estiver publicado no momento da
|
|
29
|
+
* execução, e não o que existia quando a CLI foi compilada. Quem valida é
|
|
30
|
+
* `assertIconFamily`, contra o catálogo em mãos.
|
|
31
|
+
*/
|
|
32
|
+
export type IconFamily = string;
|
|
33
|
+
export declare const ICON_FAMILIES: Record<string, IconFamilyInfo>;
|
|
34
|
+
/** A família usada por `libs/zard` — a que está escrita nos arquivos do registry. */
|
|
35
|
+
export declare const SOURCE_ICON_FAMILY: IconFamily;
|
|
36
|
+
/** O pacote que registra o `<ng-icon>`, comum a todas as famílias. */
|
|
37
|
+
export declare const ICON_CORE_PACKAGE = "@ng-icons/core";
|
|
38
|
+
//# sourceMappingURL=families.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"families.d.ts","sourceRoot":"","sources":["../../../src/core/icons/families.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,cAAc;IAC7B,yCAAyC;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,wDAAwD;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oFAAoF;IACpF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC;AAEhC,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAOxD,CAAC;AAEF,qFAAqF;AACrF,eAAO,MAAM,kBAAkB,EAAE,UAAqB,CAAC;AAEvD,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* As famílias de ícones que o `components.json` aceita em `icons`.
|
|
3
|
+
*
|
|
4
|
+
* Todo componente da biblioteca desenha através do `<ng-icon>` do ng-icons, que
|
|
5
|
+
* é agnóstico de família: o que amarra o desenho a uma delas é o pacote de onde
|
|
6
|
+
* os símbolos são importados (`@ng-icons/lucide`) e o prefixo que eles carregam
|
|
7
|
+
* (`lucideCheck`). As duas coisas estão declaradas aqui, e é só isso que separa
|
|
8
|
+
* uma família da outra no caminho de instalação.
|
|
9
|
+
*
|
|
10
|
+
* Esta tabela é a cópia local — a que vale quando o registry não responde. A
|
|
11
|
+
* lista boa vem de `<registry>/icons.json`, e é isso que permite uma família
|
|
12
|
+
* nova entrar sem que ninguém precise atualizar a CLI.
|
|
13
|
+
*/
|
|
14
|
+
export const ICON_FAMILIES = {
|
|
15
|
+
lucide: {
|
|
16
|
+
value: 'lucide',
|
|
17
|
+
label: 'Lucide',
|
|
18
|
+
package: '@ng-icons/lucide',
|
|
19
|
+
prefix: 'lucide',
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
/** A família usada por `libs/zard` — a que está escrita nos arquivos do registry. */
|
|
23
|
+
export const SOURCE_ICON_FAMILY = 'lucide';
|
|
24
|
+
/** O pacote que registra o `<ng-icon>`, comum a todas as famílias. */
|
|
25
|
+
export const ICON_CORE_PACKAGE = '@ng-icons/core';
|
|
26
|
+
//# sourceMappingURL=families.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"families.js","sourceRoot":"","sources":["../../../src/core/icons/families.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAuBH,MAAM,CAAC,MAAM,aAAa,GAAmC;IAC3D,MAAM,EAAE;QACN,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,QAAQ;QACf,OAAO,EAAE,kBAAkB;QAC3B,MAAM,EAAE,QAAQ;KACjB;CACF,CAAC;AAEF,qFAAqF;AACrF,MAAM,CAAC,MAAM,kBAAkB,GAAe,QAAQ,CAAC;AAEvD,sEAAsE;AACtE,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC"}
|