rizzo-css 0.0.39 → 0.0.41
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 +5 -3
- package/bin/rizzo-css.js +89 -111
- package/dist/fonts/IBMPlexMono/IBMPlexMono-Italic.ttf +0 -0
- package/dist/fonts/IBMPlexMono/IBMPlexMono-Regular.ttf +0 -0
- package/dist/fonts/IBMPlexMono/OFL.txt +93 -0
- package/dist/fonts/IBMPlexSans/IBMPlexSans-Italic-VariableFont_wdth,wght.ttf +0 -0
- package/dist/fonts/IBMPlexSans/IBMPlexSans-VariableFont_wdth,wght.ttf +0 -0
- package/dist/fonts/IBMPlexSans/OFL.txt +93 -0
- package/dist/fonts/IBMPlexSans/README.txt +106 -0
- package/dist/fonts/Inter/Inter-Italic-VariableFont_opsz,wght.ttf +0 -0
- package/dist/fonts/Inter/Inter-VariableFont_opsz,wght.ttf +0 -0
- package/dist/fonts/Inter/OFL.txt +93 -0
- package/dist/fonts/JetBrainsMono/AUTHORS.txt +10 -0
- package/dist/fonts/JetBrainsMono/JetBrainsMono-Italic[wght].ttf +0 -0
- package/dist/fonts/JetBrainsMono/JetBrainsMono[wght].ttf +0 -0
- package/dist/fonts/JetBrainsMono/OFL.txt +93 -0
- package/dist/fonts/SourceCodePro/OFL.txt +93 -0
- package/dist/fonts/SourceCodePro/README.txt +79 -0
- package/dist/fonts/SourceCodePro/SourceCodePro-Italic-VariableFont_wght.ttf +0 -0
- package/dist/fonts/SourceCodePro/SourceCodePro-VariableFont_wght.ttf +0 -0
- package/dist/fonts/SourceSans3/OFL.txt +93 -0
- package/dist/fonts/SourceSans3/README.txt +79 -0
- package/dist/fonts/SourceSans3/SourceSans3-Italic-VariableFont_wght.ttf +0 -0
- package/dist/fonts/SourceSans3/SourceSans3-VariableFont_wght.ttf +0 -0
- package/dist/rizzo.min.css +2 -2
- package/package.json +10 -9
- package/scaffold/astro/Settings.astro +56 -0
- package/scaffold/astro/Tabs.astro +3 -0
- package/scaffold/astro/icons/devicons/Bun.astro +35 -0
- package/scaffold/astro/icons/devicons/Npm.astro +24 -0
- package/scaffold/astro/icons/devicons/Pnpm.astro +24 -0
- package/scaffold/astro/icons/devicons/Yarn.astro +23 -0
- package/scaffold/{astro-minimal → astro-core}/README-RIZZO.md +1 -1
- package/scaffold/astro-core/src/layouts/Layout.astro +33 -0
- package/scaffold/config/fonts.ts +51 -0
- package/scaffold/svelte/Settings.svelte +155 -1
- package/scaffold/svelte/icons/devicons/Bun.svelte +30 -0
- package/scaffold/svelte/icons/devicons/Npm.svelte +19 -0
- package/scaffold/svelte/icons/devicons/Pnpm.svelte +19 -0
- package/scaffold/svelte/icons/devicons/Yarn.svelte +18 -0
- package/scaffold/{svelte-minimal → svelte-core}/README-RIZZO.md +1 -1
- package/scaffold/vanilla/README-RIZZO.md +2 -2
- package/scaffold/vanilla/components/accordion.html +47 -0
- package/scaffold/vanilla/components/alert.html +47 -0
- package/scaffold/vanilla/components/avatar.html +47 -0
- package/scaffold/vanilla/components/badge.html +47 -0
- package/scaffold/vanilla/components/breadcrumb.html +47 -0
- package/scaffold/vanilla/components/button.html +47 -0
- package/scaffold/vanilla/components/cards.html +47 -0
- package/scaffold/vanilla/components/copy-to-clipboard.html +47 -0
- package/scaffold/vanilla/components/divider.html +47 -0
- package/scaffold/vanilla/components/dropdown.html +47 -0
- package/scaffold/vanilla/components/forms.html +47 -0
- package/scaffold/vanilla/components/icons.html +47 -0
- package/scaffold/vanilla/components/index.html +47 -0
- package/scaffold/vanilla/components/modal.html +47 -0
- package/scaffold/vanilla/components/navbar.html +47 -0
- package/scaffold/vanilla/components/pagination.html +47 -0
- package/scaffold/vanilla/components/progress-bar.html +47 -0
- package/scaffold/vanilla/components/search.html +47 -0
- package/scaffold/vanilla/components/settings.html +47 -0
- package/scaffold/vanilla/components/spinner.html +47 -0
- package/scaffold/vanilla/components/table.html +47 -0
- package/scaffold/vanilla/components/tabs.html +47 -0
- package/scaffold/vanilla/components/theme-switcher.html +47 -0
- package/scaffold/vanilla/components/toast.html +47 -0
- package/scaffold/vanilla/components/tooltip.html +47 -0
- package/scaffold/vanilla/icons/devicons/Bun.svg +19 -0
- package/scaffold/vanilla/icons/devicons/Npm.svg +8 -0
- package/scaffold/vanilla/icons/devicons/Pnpm.svg +8 -0
- package/scaffold/vanilla/icons/devicons/Yarn.svg +7 -0
- package/scaffold/vanilla/index.html +47 -0
- package/scaffold/vanilla/js/main.js +20 -0
- package/scaffold/astro-minimal/src/layouts/Layout.astro +0 -29
- /package/scaffold/{astro-minimal → astro-core}/.env.example +0 -0
- /package/scaffold/{astro-minimal → astro-core}/astro.config.mjs +0 -0
- /package/scaffold/{astro-minimal → astro-core}/gitignore +0 -0
- /package/scaffold/{astro-minimal → astro-core}/package.json +0 -0
- /package/scaffold/{astro-minimal → astro-core}/public/.gitkeep +0 -0
- /package/scaffold/{astro-minimal → astro-core}/public/favicon.svg +0 -0
- /package/scaffold/{astro-minimal → astro-core}/src/pages/index.astro +0 -0
- /package/scaffold/{astro-minimal → astro-core}/tsconfig.json +0 -0
- /package/scaffold/{svelte-minimal → svelte-core}/.env.example +0 -0
- /package/scaffold/{svelte-minimal → svelte-core}/gitignore +0 -0
- /package/scaffold/{svelte-minimal → svelte-core}/package.json +0 -0
- /package/scaffold/{svelte-minimal → svelte-core}/src/app.d.ts +0 -0
- /package/scaffold/{svelte-minimal → svelte-core}/src/app.html +0 -0
- /package/scaffold/{svelte-minimal → svelte-core}/src/routes/+layout.svelte +0 -0
- /package/scaffold/{svelte-minimal → svelte-core}/src/routes/+page.svelte +0 -0
- /package/scaffold/{svelte-minimal → svelte-core}/static/.gitkeep +0 -0
- /package/scaffold/{svelte-minimal → svelte-core}/svelte.config.js +0 -0
- /package/scaffold/{svelte-minimal → svelte-core}/tsconfig.json +0 -0
package/README.md
CHANGED
|
@@ -12,13 +12,15 @@ pnpm add rizzo-css
|
|
|
12
12
|
yarn add rizzo-css
|
|
13
13
|
```
|
|
14
14
|
|
|
15
|
-
**Quick start (no install):** `npx rizzo-css init` — choose **framework** (Vanilla, Astro, or Svelte), then **add to existing** or **create new**. **Existing** (or `npx rizzo-css add`) → drop in CSS + hand-pick components; you must add the `<link>` yourself (CLI prints the exact tag). **New** → choose **
|
|
15
|
+
**Quick start (no install):** `npx rizzo-css init` — choose **framework** (Vanilla, Astro, or Svelte), then **add to existing** or **create new**. **Existing** (or `npx rizzo-css add`) → drop in CSS + hand-pick components; you must add the `<link>` yourself (CLI prints the exact tag). **New** → choose **Core** (all 29 components) or **Manual** (pick which to include; all pre-selected), then package manager. Core includes all 29 components and required dependencies so every component works. Run `npx rizzo-css help components` for the dependency list. Non-interactive: `npx rizzo-css init --yes --framework vanilla|astro|svelte`. Optional **rizzo-css.json** and `add --install-package`. All get the **same CSS and component styles**. To use the **official Svelte or Astro create command** plus Rizzo, create the app first, then run `npx rizzo-css add`:
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
18
|
npm create svelte@latest my-app && cd my-app && npx rizzo-css add
|
|
19
19
|
npm create astro@latest my-app && cd my-app && npx rizzo-css add
|
|
20
20
|
```
|
|
21
21
|
|
|
22
|
+
**Running the CLI:** npm → `npx`; pnpm → `pnpm dlx`; yarn → `npx` (Yarn 1 has no `dlx`; works with Yarn 2+ too); bun → `bunx`. The [docs site](https://rizzo-css.vercel.app/docs/getting-started) tabs show the correct command for each manager.
|
|
23
|
+
|
|
22
24
|
`add` writes **RIZZO-SNIPPET.txt** (link + theme) by default; use `--no-snippet` to skip. `npx rizzo-css doctor` checks config and CSS path. `npx rizzo-css theme` lists themes.
|
|
23
25
|
|
|
24
26
|
| | **Create new** (`init` → new) | **Add to existing** (`add` or `init` → existing) |
|
|
@@ -46,7 +48,7 @@ You install **the same package** for every framework: `npm install rizzo-css`. N
|
|
|
46
48
|
|
|
47
49
|
With `npx rizzo-css add --path <dir>`, the CLI still suggests the correct href for your framework (e.g. Astro/Svelte get a leading `/` path).
|
|
48
50
|
|
|
49
|
-
Scaffolds in the package: `scaffold/vanilla/` (
|
|
51
|
+
Scaffolds in the package: `scaffold/vanilla/` (Core or Manual), `scaffold/astro-core/`, `scaffold/svelte-core/`, plus `scaffold/astro/` and `scaffold/svelte/` (component templates for hand-pick), and `scaffold/config/` (font pairs for the Settings component). When you add **Settings** via the CLI (Astro or Svelte), the CLI also copies `scaffold/config/fonts.ts` into your project so the font-pair dropdown works (Astro: `src/components/config/fonts.ts`; Svelte: `src/lib/config/fonts.ts`). Use `npx rizzo-css init` and choose **Create new project**; **Core** includes all 29 components, **Manual** lets you pick (all interactive pre-selected). The stylesheet link is in the layout. **Add to existing** (or `add` command) drops in CSS + hand-pick components; **you must add the stylesheet `<link>` yourself** — the CLI prints the exact tag. Every scaffold includes LICENSE-RIZZO, README-RIZZO.md, and .gitignore (does not overwrite your project files); Astro/Svelte include package.json and .env.example.
|
|
50
52
|
|
|
51
53
|
## Use
|
|
52
54
|
|
|
@@ -70,7 +72,7 @@ import 'rizzo-css';
|
|
|
70
72
|
|
|
71
73
|
Short URLs also work: `https://unpkg.com/rizzo-css@latest` and `https://cdn.jsdelivr.net/npm/rizzo-css@latest` (CDNs serve the default file from package.json). To verify after publish: open the URL in a browser or run `curl -I https://unpkg.com/rizzo-css@latest/dist/rizzo.min.css` and expect `200 OK`.
|
|
72
74
|
|
|
73
|
-
Use the same class names and HTML structure as in the [component docs](https://rizzo-css.vercel.app/docs/components). **Vanilla JS**, Astro, and Svelte all use the same CSS and BEM markup; Astro/Svelte add framework component files when you hand-pick. Each scaffold has README-RIZZO.md; every install includes LICENSE-RIZZO. The **Navbar** component in the scaffold includes the default Cat logo in the brand link (optional `logo` prop for a custom image). The **Vanilla**
|
|
75
|
+
Use the same class names and HTML structure as in the [component docs](https://rizzo-css.vercel.app/docs/components). **Vanilla JS**, Astro, and Svelte all use the same CSS and BEM markup; Astro/Svelte add framework component files when you hand-pick. Each scaffold has README-RIZZO.md; every install includes LICENSE-RIZZO. The **Navbar** component in the scaffold includes the default Cat logo in the brand link (optional `logo` prop for a custom image). The **Vanilla** Core includes a Settings panel and toast; **Astro** and **Svelte** Core scaffolds include theme persistence and toast (`showToast`, `removeToast`, `removeAllToasts`).
|
|
74
76
|
|
|
75
77
|
## Themes
|
|
76
78
|
|
package/bin/rizzo-css.js
CHANGED
|
@@ -31,37 +31,22 @@ const FRAMEWORKS = ['vanilla', 'astro', 'svelte'];
|
|
|
31
31
|
/** Supported package managers: detection, install/add commands, and --package-manager override. */
|
|
32
32
|
const VALID_PACKAGE_MANAGERS = ['npm', 'pnpm', 'yarn', 'bun'];
|
|
33
33
|
|
|
34
|
-
/**
|
|
34
|
+
/** Core = everything we ship. Manual = same base, pick which components to include. */
|
|
35
35
|
const TEMPLATES = {
|
|
36
36
|
vanilla: [
|
|
37
|
-
{ value: '
|
|
38
|
-
{ value: 'minimal', label: 'Minimal — index.html + CSS + js/main.js + all interactive components (recommended starter)' },
|
|
37
|
+
{ value: 'core', label: 'Core — index.html + theme switcher, js/main.js, icons, component showcase, ' + SCAFFOLD_README_FILENAME },
|
|
39
38
|
{ value: 'manual', label: 'Manual — index.html + CSS; pick which components to add (base = all interactive)' },
|
|
40
39
|
],
|
|
41
40
|
astro: [
|
|
42
|
-
{ value: '
|
|
43
|
-
{ value: 'minimal', label: 'Minimal — Astro app + all interactive components (full base; everything works together)' },
|
|
41
|
+
{ value: 'core', label: 'Core — Astro app + all components (with dependencies so everything works)' },
|
|
44
42
|
{ value: 'manual', label: 'Manual — same base; pick which components to include (all interactive pre-selected)' },
|
|
45
43
|
],
|
|
46
44
|
svelte: [
|
|
47
|
-
{ value: '
|
|
48
|
-
{ value: 'minimal', label: 'Minimal — SvelteKit app + all interactive components (full base; everything works together)' },
|
|
45
|
+
{ value: 'core', label: 'Core — SvelteKit app + all components (with dependencies so everything works)' },
|
|
49
46
|
{ value: 'manual', label: 'Manual — same base; pick which components to include (all interactive pre-selected)' },
|
|
50
47
|
],
|
|
51
48
|
};
|
|
52
49
|
|
|
53
|
-
const VANILLA_MINIMAL_README = `# Vanilla + Rizzo CSS (minimal)
|
|
54
|
-
|
|
55
|
-
Minimal starter: HTML + CSS + js/main.js + all interactive component pages. Scaffolded with \`npx rizzo-css init --framework vanilla --template minimal\`.
|
|
56
|
-
|
|
57
|
-
- Open \`index.html\` in a browser or serve the folder. Edit \`index.html\` and add your content. CSS: \`css/rizzo.min.css\`. Script: \`js/main.js\` (already linked).
|
|
58
|
-
- \`components/\` contains HTML pages for every interactive component (Button, Badge, Card, Modal, Tabs, Navbar, Search, Settings, ThemeSwitcher, Dropdown, Accordion, Toast, CopyToClipboard, forms, table, etc.). Open \`components/index.html\` to browse them.
|
|
59
|
-
- Set a theme: \`<html data-theme="github-dark-classic">\` (see \`npx rizzo-css theme\` for all themes).
|
|
60
|
-
- Template **Full** adds the same components in a full showcase layout with theme switcher on every page.
|
|
61
|
-
|
|
62
|
-
Docs: [rizzo-css.vercel.app](https://rizzo-css.vercel.app)
|
|
63
|
-
`;
|
|
64
|
-
|
|
65
50
|
const VANILLA_MANUAL_README = `# Vanilla + Rizzo CSS (manual)
|
|
66
51
|
|
|
67
52
|
Manual setup: HTML + CSS, plus the component pages you chose (base = all interactive components). Scaffolded with \`npx rizzo-css init --framework vanilla --template manual\`.
|
|
@@ -71,7 +56,7 @@ Manual setup: HTML + CSS, plus the component pages you chose (base = all interac
|
|
|
71
56
|
- If you picked components, \`components/\` has their HTML pages and \`js/main.js\` is included (open \`components/index.html\` to browse).
|
|
72
57
|
- Set a theme: \`<html data-theme="github-dark-classic">\` (see \`npx rizzo-css theme\` for all themes).
|
|
73
58
|
|
|
74
|
-
**If you chose no components:** To add component JavaScript (modal, dropdown, tabs, toast, search, navbar, copy-to-clipboard, theme switcher, etc.), use the [Vanilla component docs](https://rizzo-css.vercel.app/docs/vanilla/components) or run \`npx rizzo-css init\` with Vanilla → **
|
|
59
|
+
**If you chose no components:** To add component JavaScript (modal, dropdown, tabs, toast, search, navbar, copy-to-clipboard, theme switcher, etc.), use the [Vanilla component docs](https://rizzo-css.vercel.app/docs/vanilla/components) or run \`npx rizzo-css init\` with Vanilla → **Core** in a temp folder and copy \`js/main.js\` and \`components/\` into this project.
|
|
75
60
|
|
|
76
61
|
Docs: [rizzo-css.vercel.app](https://rizzo-css.vercel.app)
|
|
77
62
|
`;
|
|
@@ -122,7 +107,7 @@ const ASTRO_COMPONENTS = [
|
|
|
122
107
|
'Navbar', 'Settings', 'Search', 'Icons',
|
|
123
108
|
];
|
|
124
109
|
|
|
125
|
-
// Base set for
|
|
110
|
+
// Base set for Manual: all interactive components we ship (so manual has a full working set). Full includes everything (same list).
|
|
126
111
|
const RECOMMENDED_COMPONENTS = [
|
|
127
112
|
'Button', 'Badge', 'Card', 'Divider', 'Spinner', 'ProgressBar', 'Avatar', 'Alert',
|
|
128
113
|
'Breadcrumb', 'FormGroup', 'Input', 'Checkbox', 'Textarea', 'Select', 'Radio',
|
|
@@ -153,7 +138,7 @@ function getComponentDependencyLabel(framework, componentName) {
|
|
|
153
138
|
return ' (adds ' + deps.join(', ') + ')';
|
|
154
139
|
}
|
|
155
140
|
|
|
156
|
-
/** Expand a list of component names with all required dependencies. Used for full,
|
|
141
|
+
/** Expand a list of component names with all required dependencies. Used for full, manual, and add so everything works. */
|
|
157
142
|
function expandWithDeps(framework, names) {
|
|
158
143
|
const depsMap = COMPONENT_DEPS[framework];
|
|
159
144
|
if (!depsMap) return [...names];
|
|
@@ -304,9 +289,9 @@ function copyVanillaGitignore(projectDir) {
|
|
|
304
289
|
}
|
|
305
290
|
}
|
|
306
291
|
|
|
307
|
-
/** Copy Astro
|
|
292
|
+
/** Copy Astro scaffold gitignore into project as .gitignore (full template). */
|
|
308
293
|
function copyAstroGitignore(projectDir) {
|
|
309
|
-
const gitignorePath = join(
|
|
294
|
+
const gitignorePath = join(getScaffoldAstroCoreDir(), SCAFFOLD_GITIGNORE_FILE);
|
|
310
295
|
if (existsSync(gitignorePath)) {
|
|
311
296
|
copyFileSync(gitignorePath, join(projectDir, '.gitignore'));
|
|
312
297
|
const copiedAsFile = join(projectDir, SCAFFOLD_GITIGNORE_FILE);
|
|
@@ -314,9 +299,9 @@ function copyAstroGitignore(projectDir) {
|
|
|
314
299
|
}
|
|
315
300
|
}
|
|
316
301
|
|
|
317
|
-
/** Copy Svelte
|
|
302
|
+
/** Copy Svelte scaffold gitignore into project as .gitignore (full template). */
|
|
318
303
|
function copySvelteGitignore(projectDir) {
|
|
319
|
-
const gitignorePath = join(
|
|
304
|
+
const gitignorePath = join(getScaffoldSvelteCoreDir(), SCAFFOLD_GITIGNORE_FILE);
|
|
320
305
|
if (existsSync(gitignorePath)) {
|
|
321
306
|
copyFileSync(gitignorePath, join(projectDir, '.gitignore'));
|
|
322
307
|
const copiedAsFile = join(projectDir, SCAFFOLD_GITIGNORE_FILE);
|
|
@@ -424,7 +409,7 @@ function getPackageManagerCommands(pm) {
|
|
|
424
409
|
run: (script) => (pm.agent === 'npm' ? c + ' run ' + script : c + ' run ' + script),
|
|
425
410
|
add: (pkg) => (pm.agent === 'npm' ? c + ' install ' + pkg : c + ' add ' + pkg),
|
|
426
411
|
addDev: (pkg) => (pm.agent === 'npm' ? c + ' install -D ' + pkg : pm.agent === 'bun' ? c + ' add -d ' + pkg : c + ' add -D ' + pkg),
|
|
427
|
-
dlx: (pkgAndArgs) => (pm.agent === 'npm' ? 'npx ' + pkgAndArgs : pm.agent === 'pnpm' ? 'pnpm dlx ' + pkgAndArgs : pm.agent === 'yarn' ? '
|
|
412
|
+
dlx: (pkgAndArgs) => (pm.agent === 'npm' ? 'npx ' + pkgAndArgs : pm.agent === 'pnpm' ? 'pnpm dlx ' + pkgAndArgs : pm.agent === 'yarn' ? 'npx ' + pkgAndArgs : 'bunx ' + pkgAndArgs),
|
|
428
413
|
};
|
|
429
414
|
}
|
|
430
415
|
|
|
@@ -458,7 +443,7 @@ async function promptPackageManager(projectDir) {
|
|
|
458
443
|
return selectMenu(options, '? Package manager (for install and run commands)');
|
|
459
444
|
}
|
|
460
445
|
|
|
461
|
-
/** Prompt user to select
|
|
446
|
+
/** Prompt user to select Core or Manual for the chosen framework. Returns 'core' or 'manual'. */
|
|
462
447
|
async function promptTemplate(framework) {
|
|
463
448
|
const options = TEMPLATES[framework] || TEMPLATES.vanilla;
|
|
464
449
|
return selectMenu(options, '? Full or Manual?');
|
|
@@ -802,20 +787,20 @@ Flags summary:
|
|
|
802
787
|
Usage (use your package manager):
|
|
803
788
|
npx rizzo-css <command> [options]
|
|
804
789
|
pnpm dlx rizzo-css <command> [options]
|
|
805
|
-
yarn
|
|
790
|
+
yarn: npx rizzo-css <command> [options] (Yarn 1 has no dlx; Yarn 2+ can use yarn dlx)
|
|
806
791
|
bunx rizzo-css <command> [options]
|
|
807
792
|
|
|
808
793
|
Commands:
|
|
809
|
-
init New project =
|
|
794
|
+
init New project = Core (everything) | Manual (pick which components; all pre-selected). Existing = drop in CSS + hand-pick. First: framework, then existing vs new.
|
|
810
795
|
add Same as init → existing: drop in CSS + hand-pick components (framework detected or from rizzo-css.json)
|
|
811
796
|
theme List all available themes (use in init or set data-theme on <html>)
|
|
812
797
|
help Show this help
|
|
813
798
|
|
|
814
799
|
Options (init):
|
|
815
|
-
--yes Non-interactive: scaffold new in cwd with defaults (framework: astro, template:
|
|
800
|
+
--yes Non-interactive: scaffold new in cwd with defaults (framework: astro, template: core)
|
|
816
801
|
--path <dir> Project directory (relative to cwd or absolute). Scaffold and run install there. With --yes; interactive: "Enter path" option.
|
|
817
802
|
--framework <fw> vanilla | astro | svelte (with --yes; otherwise first prompt)
|
|
818
|
-
--template <t>
|
|
803
|
+
--template <t> core | manual (all frameworks); with --yes defaults to core
|
|
819
804
|
--package-manager <pm> npm | pnpm | yarn | bun (with --yes, or skip PM prompt when interactive)
|
|
820
805
|
--install After scaffolding, run package manager install in project directory (no prompt)
|
|
821
806
|
--no-install Do not run install and do not prompt
|
|
@@ -833,7 +818,7 @@ Options (add):
|
|
|
833
818
|
--vanilla-js (Vanilla) Copy js/main.js for interactive components (modal, dropdown, tabs, toast, search, navbar, copy-to-clipboard, theme switcher)
|
|
834
819
|
|
|
835
820
|
Package managers:
|
|
836
|
-
Supported: npm, pnpm, yarn, bun. Detection: lockfiles (pnpm-lock.yaml, yarn.lock, bun.lockb, package-lock.json) or package.json "packageManager"/"devEngines.packageManager". Use --package-manager to override.
|
|
821
|
+
Supported: npm, pnpm, yarn, bun. Detection: lockfiles (pnpm-lock.yaml, yarn.lock, bun.lockb, package-lock.json) or package.json "packageManager"/"devEngines.packageManager". Use --package-manager to override. Yarn 1 (classic) has no dlx; we show npx for yarn so it works everywhere. Yarn 2+ can use yarn dlx instead.
|
|
837
822
|
|
|
838
823
|
Interactive prompts (when no --yes/flag provided):
|
|
839
824
|
Single-choice (framework, template, etc.): ↑/↓ move, Enter select.
|
|
@@ -848,11 +833,11 @@ Use framework CLI first, then add Rizzo CSS (match your package manager):
|
|
|
848
833
|
For Vanilla: npx rizzo-css init --yes --framework vanilla
|
|
849
834
|
npm create svelte@latest my-app && cd my-app && npx rizzo-css add
|
|
850
835
|
pnpm dlx create-svelte@latest my-app && cd my-app && pnpm dlx rizzo-css add
|
|
851
|
-
yarn create svelte my-app && cd my-app &&
|
|
836
|
+
yarn create svelte my-app && cd my-app && npx rizzo-css add
|
|
852
837
|
bun create svelte my-app && cd my-app && bunx rizzo-css add
|
|
853
838
|
npm create astro@latest my-app && cd my-app && npx rizzo-css add
|
|
854
839
|
pnpm dlx create-astro@latest my-app && cd my-app && pnpm dlx rizzo-css add
|
|
855
|
-
yarn create astro my-app && cd my-app &&
|
|
840
|
+
yarn create astro my-app && cd my-app && npx rizzo-css add
|
|
856
841
|
bun create astro my-app && cd my-app && bunx rizzo-css add
|
|
857
842
|
|
|
858
843
|
Examples:
|
|
@@ -861,7 +846,7 @@ Examples:
|
|
|
861
846
|
npx rizzo-css init --yes --path my-app --framework astro --install
|
|
862
847
|
npx rizzo-css init --yes --framework astro --package-manager pnpm --install
|
|
863
848
|
npx rizzo-css init --yes --framework vanilla
|
|
864
|
-
npx rizzo-css init --yes --framework svelte --template
|
|
849
|
+
npx rizzo-css init --yes --framework svelte --template core
|
|
865
850
|
npx rizzo-css add --package-manager yarn --install-package
|
|
866
851
|
npx rizzo-css add
|
|
867
852
|
npx rizzo-css add Button
|
|
@@ -904,9 +889,8 @@ Where components are copied:
|
|
|
904
889
|
Svelte → src/lib/rizzo/ (import from '$lib/rizzo')
|
|
905
890
|
Vanilla → components/ (HTML) (for interactivity add js/main.js; use --vanilla-js on add)
|
|
906
891
|
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
Manual = you pick; the picker shows e.g. "Settings (adds ThemeSwitcher)". Required deps are added when you confirm.
|
|
892
|
+
Core = all components above; dependencies are included so everything works.
|
|
893
|
+
Manual = you pick; the picker shows e.g. "Settings (adds ThemeSwitcher)". Required deps are added when you confirm.
|
|
910
894
|
|
|
911
895
|
To see this again: npx rizzo-css help components
|
|
912
896
|
`);
|
|
@@ -1124,6 +1108,10 @@ function getScaffoldUtilsDir() {
|
|
|
1124
1108
|
return join(getPackageRoot(), 'scaffold', 'utils');
|
|
1125
1109
|
}
|
|
1126
1110
|
|
|
1111
|
+
function getScaffoldConfigDir() {
|
|
1112
|
+
return join(getPackageRoot(), 'scaffold', 'config');
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1127
1115
|
function getScaffoldVanillaIndex() {
|
|
1128
1116
|
return join(getPackageRoot(), 'scaffold', 'vanilla', 'index.html');
|
|
1129
1117
|
}
|
|
@@ -1210,12 +1198,12 @@ function copyRizzoIcons(projectDir, framework) {
|
|
|
1210
1198
|
}
|
|
1211
1199
|
}
|
|
1212
1200
|
|
|
1213
|
-
function
|
|
1214
|
-
return join(getPackageRoot(), 'scaffold', 'astro-
|
|
1201
|
+
function getScaffoldAstroCoreDir() {
|
|
1202
|
+
return join(getPackageRoot(), 'scaffold', 'astro-core');
|
|
1215
1203
|
}
|
|
1216
1204
|
|
|
1217
|
-
function
|
|
1218
|
-
return join(getPackageRoot(), 'scaffold', 'svelte-
|
|
1205
|
+
function getScaffoldSvelteCoreDir() {
|
|
1206
|
+
return join(getPackageRoot(), 'scaffold', 'svelte-core');
|
|
1219
1207
|
}
|
|
1220
1208
|
|
|
1221
1209
|
function copyDirRecursive(src, dest) {
|
|
@@ -1291,6 +1279,15 @@ function copySvelteComponents(projectDir, selectedNames) {
|
|
|
1291
1279
|
if (existsSync(themesSrc)) copyFileSync(themesSrc, join(targetDir, 'themes.ts'));
|
|
1292
1280
|
if (existsSync(themeSrc)) copyFileSync(themeSrc, join(targetDir, 'theme.ts'));
|
|
1293
1281
|
}
|
|
1282
|
+
if (toCopy.includes('Settings')) {
|
|
1283
|
+
const configDir = getScaffoldConfigDir();
|
|
1284
|
+
const fontsSrc = join(configDir, 'fonts.ts');
|
|
1285
|
+
if (existsSync(fontsSrc)) {
|
|
1286
|
+
const projectConfigDir = join(projectDir, 'src', 'lib', 'config');
|
|
1287
|
+
mkdirSync(projectConfigDir, { recursive: true });
|
|
1288
|
+
copyFileSync(fontsSrc, join(projectConfigDir, 'fonts.ts'));
|
|
1289
|
+
}
|
|
1290
|
+
}
|
|
1294
1291
|
if (exports.length > 0 || copyIconsOnly) {
|
|
1295
1292
|
if (exports.length > 0) {
|
|
1296
1293
|
const indexContent = `/** Rizzo CSS Svelte components — selected via npx rizzo-css init */\n${exports.join('\n')}\n`;
|
|
@@ -1347,6 +1344,15 @@ function copyAstroComponents(projectDir, selectedNames) {
|
|
|
1347
1344
|
writeFileSync(join(projectUtilsDir, 'theme.ts'), themeContent);
|
|
1348
1345
|
}
|
|
1349
1346
|
}
|
|
1347
|
+
if (toCopy.includes('Settings')) {
|
|
1348
|
+
const configDir = getScaffoldConfigDir();
|
|
1349
|
+
const fontsSrc = join(configDir, 'fonts.ts');
|
|
1350
|
+
if (existsSync(fontsSrc)) {
|
|
1351
|
+
const projectConfigDir = join(projectDir, 'src', 'components', 'config');
|
|
1352
|
+
mkdirSync(projectConfigDir, { recursive: true });
|
|
1353
|
+
copyFileSync(fontsSrc, join(projectConfigDir, 'fonts.ts'));
|
|
1354
|
+
}
|
|
1355
|
+
}
|
|
1350
1356
|
if (count > 0 || copyIconsOnly) {
|
|
1351
1357
|
const msg = copyIconsOnly ? 'Icons' : count + ' Astro components + icons';
|
|
1352
1358
|
console.log('\n ✓ ' + msg + ' copied to ' + targetDir);
|
|
@@ -1576,13 +1582,10 @@ async function cmdInit(argv) {
|
|
|
1576
1582
|
framework = (frameworkArg && FRAMEWORKS.includes(frameworkArg.toLowerCase())) ? frameworkArg.toLowerCase() : (config && config.framework) || 'astro';
|
|
1577
1583
|
initMode = 'new';
|
|
1578
1584
|
const templateArg = getFlagValue(argv, '--template');
|
|
1579
|
-
const defaultTemplate =
|
|
1580
|
-
selectedTemplate = (templateArg && (templateArg === '
|
|
1581
|
-
if (selectedTemplate === '
|
|
1585
|
+
const defaultTemplate = 'core';
|
|
1586
|
+
selectedTemplate = (templateArg && (templateArg === 'core' || templateArg === 'manual')) ? templateArg : defaultTemplate;
|
|
1587
|
+
if (selectedTemplate === 'core' && (framework === 'astro' || framework === 'svelte')) {
|
|
1582
1588
|
selectedComponents = framework === 'svelte' ? [...SVELTE_COMPONENTS] : [...ASTRO_COMPONENTS];
|
|
1583
|
-
} else if (selectedTemplate === 'minimal' && (framework === 'astro' || framework === 'svelte')) {
|
|
1584
|
-
const componentList = framework === 'svelte' ? SVELTE_COMPONENTS : ASTRO_COMPONENTS;
|
|
1585
|
-
selectedComponents = RECOMMENDED_COMPONENTS.filter((c) => componentList.includes(c));
|
|
1586
1589
|
}
|
|
1587
1590
|
const projectDir = customProjectPath ? pathResolve(cwd, customProjectPath) : cwd;
|
|
1588
1591
|
const resolved = resolvePackageManager(projectDir, cwd);
|
|
@@ -1631,20 +1634,17 @@ async function cmdInit(argv) {
|
|
|
1631
1634
|
}
|
|
1632
1635
|
}
|
|
1633
1636
|
|
|
1634
|
-
selectedTemplate = await selectMenu(TEMPLATES[framework] || TEMPLATES.vanilla, '?
|
|
1637
|
+
selectedTemplate = await selectMenu(TEMPLATES[framework] || TEMPLATES.vanilla, '? Core or Manual?');
|
|
1635
1638
|
|
|
1636
|
-
if (selectedTemplate === '
|
|
1639
|
+
if (selectedTemplate === 'core' && (framework === 'astro' || framework === 'svelte')) {
|
|
1637
1640
|
selectedComponents = framework === 'svelte' ? [...SVELTE_COMPONENTS] : [...ASTRO_COMPONENTS];
|
|
1638
|
-
} else if (selectedTemplate === 'minimal' && (framework === 'astro' || framework === 'svelte')) {
|
|
1639
|
-
const componentList = framework === 'svelte' ? SVELTE_COMPONENTS : ASTRO_COMPONENTS;
|
|
1640
|
-
selectedComponents = RECOMMENDED_COMPONENTS.filter((c) => componentList.includes(c));
|
|
1641
1641
|
} else if (selectedTemplate === 'manual') {
|
|
1642
1642
|
const componentList = framework === 'svelte' ? SVELTE_COMPONENTS : ASTRO_COMPONENTS;
|
|
1643
1643
|
const recommended = RECOMMENDED_COMPONENTS.filter((c) => componentList.includes(c));
|
|
1644
1644
|
selectedComponents = await promptComponentChoice(componentList, framework, recommended);
|
|
1645
1645
|
}
|
|
1646
1646
|
|
|
1647
|
-
const wantsThemeSwitcher = (framework === 'vanilla' &&
|
|
1647
|
+
const wantsThemeSwitcher = (framework === 'vanilla' && selectedTemplate === 'core') || selectedComponents.includes('ThemeSwitcher');
|
|
1648
1648
|
if (wantsThemeSwitcher) {
|
|
1649
1649
|
const themeOut = await promptThemes();
|
|
1650
1650
|
theme = themeOut.theme;
|
|
@@ -1689,17 +1689,16 @@ async function cmdInit(argv) {
|
|
|
1689
1689
|
'{{PROJECT_NAME}}': projectNamePkg,
|
|
1690
1690
|
};
|
|
1691
1691
|
|
|
1692
|
-
const
|
|
1693
|
-
const
|
|
1692
|
+
const astroCoreDir = getScaffoldAstroCoreDir();
|
|
1693
|
+
const svelteCoreDir = getScaffoldSvelteCoreDir();
|
|
1694
1694
|
const pathsForScaffold = getFrameworkCssPaths(framework);
|
|
1695
|
-
const useHandpickAstro = selectedTemplate === 'manual' && framework === 'astro' && existsSync(
|
|
1696
|
-
const useHandpickSvelte = selectedTemplate === 'manual' && framework === 'svelte' && existsSync(
|
|
1697
|
-
const useAstroBase =
|
|
1698
|
-
const useSvelteBase =
|
|
1699
|
-
const
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
// Full and minimal get all required dependencies so everything works; manual gets deps when user picks (see prompt labels).
|
|
1695
|
+
const useHandpickAstro = selectedTemplate === 'manual' && framework === 'astro' && existsSync(astroCoreDir);
|
|
1696
|
+
const useHandpickSvelte = selectedTemplate === 'manual' && framework === 'svelte' && existsSync(svelteCoreDir);
|
|
1697
|
+
const useAstroBase = selectedTemplate === 'core' && framework === 'astro' && existsSync(astroCoreDir);
|
|
1698
|
+
const useSvelteBase = selectedTemplate === 'core' && framework === 'svelte' && existsSync(svelteCoreDir);
|
|
1699
|
+
const useVanillaCore = selectedTemplate === 'core' && framework === 'vanilla' && existsSync(getScaffoldVanillaIndex());
|
|
1700
|
+
|
|
1701
|
+
// Full gets all required dependencies so everything works; manual gets deps when user picks (see prompt labels).
|
|
1703
1702
|
let componentsToCopy = selectedComponents;
|
|
1704
1703
|
if ((framework === 'astro' || framework === 'svelte') && selectedComponents.length > 0) {
|
|
1705
1704
|
componentsToCopy = expandWithDeps(framework, selectedComponents);
|
|
@@ -1742,7 +1741,7 @@ async function cmdInit(argv) {
|
|
|
1742
1741
|
|
|
1743
1742
|
if (useHandpickAstro) {
|
|
1744
1743
|
mkdirSync(projectDir, { recursive: true });
|
|
1745
|
-
copyDirRecursiveWithReplacements(
|
|
1744
|
+
copyDirRecursiveWithReplacements(astroCoreDir, projectDir, replacements);
|
|
1746
1745
|
copyRizzoCssAndFontsForAstro(projectDir, cssSource);
|
|
1747
1746
|
cssTarget = join(projectDir, 'public', 'css', 'rizzo.min.css');
|
|
1748
1747
|
if (statSync(cssTarget).size < 5000) {
|
|
@@ -1756,7 +1755,7 @@ async function cmdInit(argv) {
|
|
|
1756
1755
|
}
|
|
1757
1756
|
} else if (useAstroBase) {
|
|
1758
1757
|
mkdirSync(projectDir, { recursive: true });
|
|
1759
|
-
copyDirRecursiveWithReplacements(
|
|
1758
|
+
copyDirRecursiveWithReplacements(astroCoreDir, projectDir, replacements);
|
|
1760
1759
|
copyRizzoCssAndFontsForAstro(projectDir, cssSource);
|
|
1761
1760
|
cssTarget = join(projectDir, 'public', 'css', 'rizzo.min.css');
|
|
1762
1761
|
if (statSync(cssTarget).size < 5000) {
|
|
@@ -1770,7 +1769,7 @@ async function cmdInit(argv) {
|
|
|
1770
1769
|
}
|
|
1771
1770
|
} else if (useHandpickSvelte) {
|
|
1772
1771
|
mkdirSync(projectDir, { recursive: true });
|
|
1773
|
-
copyDirRecursiveWithReplacements(
|
|
1772
|
+
copyDirRecursiveWithReplacements(svelteCoreDir, projectDir, replacements);
|
|
1774
1773
|
copyRizzoCssAndFontsForSvelte(projectDir, cssSource);
|
|
1775
1774
|
cssTarget = join(projectDir, 'static', 'css', 'rizzo.min.css');
|
|
1776
1775
|
if (statSync(cssTarget).size < 5000) {
|
|
@@ -1784,7 +1783,7 @@ async function cmdInit(argv) {
|
|
|
1784
1783
|
}
|
|
1785
1784
|
} else if (useSvelteBase) {
|
|
1786
1785
|
mkdirSync(projectDir, { recursive: true });
|
|
1787
|
-
copyDirRecursiveWithReplacements(
|
|
1786
|
+
copyDirRecursiveWithReplacements(svelteCoreDir, projectDir, replacements);
|
|
1788
1787
|
copyRizzoCssAndFontsForSvelte(projectDir, cssSource);
|
|
1789
1788
|
cssTarget = join(projectDir, 'static', 'css', 'rizzo.min.css');
|
|
1790
1789
|
if (statSync(cssTarget).size < 5000) {
|
|
@@ -1796,7 +1795,7 @@ async function cmdInit(argv) {
|
|
|
1796
1795
|
copyRizzoIcons(projectDir, 'svelte');
|
|
1797
1796
|
copySvelteComponents(projectDir, componentsToCopy);
|
|
1798
1797
|
}
|
|
1799
|
-
} else if (
|
|
1798
|
+
} else if (useVanillaCore) {
|
|
1800
1799
|
const cssDir = join(projectDir, pathsForScaffold.targetDir);
|
|
1801
1800
|
cssTarget = join(cssDir, 'rizzo.min.css');
|
|
1802
1801
|
const linkHref = 'css/rizzo.min.css';
|
|
@@ -1829,33 +1828,8 @@ async function cmdInit(argv) {
|
|
|
1829
1828
|
mainJs = mainJs.replace(/\{\{DEFAULT_DARK\}\}/g, defaultDark).replace(/\{\{DEFAULT_LIGHT\}\}/g, defaultLight);
|
|
1830
1829
|
writeFileSync(join(projectDir, 'js', 'main.js'), mainJs, 'utf8');
|
|
1831
1830
|
}
|
|
1832
|
-
const
|
|
1833
|
-
copyVanillaComponents(projectDir, Object.keys(VANILLA_COMPONENT_SLUGS),
|
|
1834
|
-
copyPackageLicense(projectDir);
|
|
1835
|
-
copyVanillaGitignore(projectDir);
|
|
1836
|
-
} else if (useVanillaMinimal) {
|
|
1837
|
-
const cssDir = join(projectDir, pathsForScaffold.targetDir);
|
|
1838
|
-
cssTarget = join(cssDir, 'rizzo.min.css');
|
|
1839
|
-
mkdirSync(cssDir, { recursive: true });
|
|
1840
|
-
copyFileSync(cssSource, cssTarget);
|
|
1841
|
-
copyRizzoFonts(dirname(cssTarget));
|
|
1842
|
-
if (statSync(cssTarget).size < 5000) {
|
|
1843
|
-
console.warn('\nWarning: rizzo.min.css is very small. From repo root run: pnpm build:css');
|
|
1844
|
-
}
|
|
1845
|
-
mkdirSync(join(projectDir, 'js'), { recursive: true });
|
|
1846
|
-
const vanillaJs = join(getPackageRoot(), 'scaffold', 'vanilla', 'js', 'main.js');
|
|
1847
|
-
if (existsSync(vanillaJs)) {
|
|
1848
|
-
let mainJs = readFileSync(vanillaJs, 'utf8');
|
|
1849
|
-
mainJs = mainJs.replace(/\{\{DEFAULT_DARK\}\}/g, defaultDark).replace(/\{\{DEFAULT_LIGHT\}\}/g, defaultLight);
|
|
1850
|
-
writeFileSync(join(projectDir, 'js', 'main.js'), mainJs, 'utf8');
|
|
1851
|
-
}
|
|
1852
|
-
const vanillaRepl = { ...replacements, '{{LINK_HREF}}': 'css/rizzo.min.css' };
|
|
1853
|
-
copyVanillaComponents(projectDir, RECOMMENDED_COMPONENTS, vanillaRepl);
|
|
1854
|
-
copyRizzoIcons(projectDir, 'vanilla');
|
|
1855
|
-
const minimalIndexWithScript = minimalHtml.replace('</body>', ' <script src="js/main.js"></script>\n</body>');
|
|
1856
|
-
indexPath = join(projectDir, 'index.html');
|
|
1857
|
-
writeFileSync(indexPath, minimalIndexWithScript, 'utf8');
|
|
1858
|
-
writeFileSync(join(projectDir, SCAFFOLD_README_FILENAME), VANILLA_MINIMAL_README, 'utf8');
|
|
1831
|
+
const vanillaCoreRepl = { ...replacements, '{{LINK_HREF}}': linkHref };
|
|
1832
|
+
copyVanillaComponents(projectDir, Object.keys(VANILLA_COMPONENT_SLUGS), vanillaCoreRepl);
|
|
1859
1833
|
copyPackageLicense(projectDir);
|
|
1860
1834
|
copyVanillaGitignore(projectDir);
|
|
1861
1835
|
} else {
|
|
@@ -1909,12 +1883,10 @@ async function cmdInit(argv) {
|
|
|
1909
1883
|
console.log(' - ' + cssTarget);
|
|
1910
1884
|
if (indexPath) console.log(' - ' + indexPath);
|
|
1911
1885
|
if (framework === 'vanilla') {
|
|
1912
|
-
if (
|
|
1913
|
-
console.log(' - Vanilla JS (
|
|
1914
|
-
} else if (useVanillaMinimal) {
|
|
1915
|
-
console.log(' - Vanilla JS (minimal): index.html + CSS + js/main.js + all interactive components.');
|
|
1886
|
+
if (useVanillaCore) {
|
|
1887
|
+
console.log(' - Vanilla JS (core): theme switcher, js/main.js, icons, component showcase, ' + SCAFFOLD_README_FILENAME + '.');
|
|
1916
1888
|
} else {
|
|
1917
|
-
console.log(' - Vanilla JS (manual): index.html + CSS only. Add JS from docs or copy from
|
|
1889
|
+
console.log(' - Vanilla JS (manual): index.html + CSS only. Add JS from docs or copy from Core.');
|
|
1918
1890
|
}
|
|
1919
1891
|
}
|
|
1920
1892
|
const pm = getPackageManagerCommands({ agent: selectedPm, command: selectedPm });
|
|
@@ -1928,7 +1900,8 @@ async function cmdInit(argv) {
|
|
|
1928
1900
|
console.log(' - Wrote ' + RIZZO_CONFIG_FILE);
|
|
1929
1901
|
|
|
1930
1902
|
if (runInstallAfterScaffold && !noInstall && hasPackageJson) {
|
|
1931
|
-
|
|
1903
|
+
const dirLabel = projectDir !== cwd ? ' in ' + pathRelative(cwd, projectDir) : ' (current directory)';
|
|
1904
|
+
console.log('\nRunning install' + dirLabel + ': ' + pm.install);
|
|
1932
1905
|
const code = runInDir(projectDir, pm.install);
|
|
1933
1906
|
if (code !== 0) {
|
|
1934
1907
|
console.error('\nInstall failed (exit ' + code + '). Run manually: ' + runPrefix + pm.install);
|
|
@@ -1936,7 +1909,8 @@ async function cmdInit(argv) {
|
|
|
1936
1909
|
} else if (!yes && !noInstall && hasPackageJson) {
|
|
1937
1910
|
const shouldRun = await confirmRunInstall(pm);
|
|
1938
1911
|
if (shouldRun) {
|
|
1939
|
-
|
|
1912
|
+
const dirLabel = projectDir !== cwd ? ' in ' + pathRelative(cwd, projectDir) : ' here';
|
|
1913
|
+
console.log('\nChanging to project directory and running install' + dirLabel + ': ' + pm.install);
|
|
1940
1914
|
const code = runInDir(projectDir, pm.install);
|
|
1941
1915
|
if (code !== 0) {
|
|
1942
1916
|
console.error('\nInstall failed (exit ' + code + '). Run manually: ' + runPrefix + pm.install);
|
|
@@ -1949,20 +1923,24 @@ async function cmdInit(argv) {
|
|
|
1949
1923
|
console.log(' - ' + fw + ' (manual): base + ' + selectedComponents.length + ' component(s). Run: ' + runPrefix + nextStep);
|
|
1950
1924
|
}
|
|
1951
1925
|
if (useAstroBase) {
|
|
1952
|
-
|
|
1953
|
-
console.log(' - Astro (' + label.toLowerCase() + '): app + ' + selectedComponents.length + ' component(s). Run: ' + runPrefix + nextStep);
|
|
1926
|
+
console.log(' - Astro (core): app + ' + selectedComponents.length + ' component(s). Run: ' + runPrefix + nextStep);
|
|
1954
1927
|
}
|
|
1955
1928
|
if (useSvelteBase) {
|
|
1956
|
-
|
|
1957
|
-
console.log(' - SvelteKit (' + label.toLowerCase() + '): app + ' + selectedComponents.length + ' component(s). Run: ' + runPrefix + nextStep);
|
|
1929
|
+
console.log(' - SvelteKit (core): app + ' + selectedComponents.length + ' component(s). Run: ' + runPrefix + nextStep);
|
|
1958
1930
|
}
|
|
1959
1931
|
if ((framework === 'astro' || framework === 'svelte') && !useAstroBase && !useSvelteBase && !useHandpickAstro && !useHandpickSvelte) {
|
|
1960
1932
|
const fw = framework === 'svelte' ? 'Svelte' : 'Astro';
|
|
1961
1933
|
const createExample = getCreateProjectExample(pm, framework);
|
|
1962
|
-
console.log('\n -
|
|
1934
|
+
console.log('\n - Basic template (CSS + index). To get a full app: ' + createExample + ', then cd into the project and run ' + pm.dlx('rizzo-css add') + '.');
|
|
1935
|
+
}
|
|
1936
|
+
if (hasPackageJson) {
|
|
1937
|
+
console.log('\nNext: ' + runPrefix + nextStep);
|
|
1938
|
+
} else if (framework === 'vanilla') {
|
|
1939
|
+
const vanillaNext = projectDir !== cwd
|
|
1940
|
+
? 'cd ' + pathRelative(cwd, projectDir) + ' then open index.html or serve the folder (e.g. npx serve .)'
|
|
1941
|
+
: 'open index.html or serve the folder (e.g. npx serve .)';
|
|
1942
|
+
console.log('\nNext: ' + vanillaNext);
|
|
1963
1943
|
}
|
|
1964
|
-
if (hasPackageJson) console.log('\nNext: ' + runPrefix + nextStep);
|
|
1965
|
-
else if (framework === 'vanilla') console.log('\nNext: open index.html or serve the folder.');
|
|
1966
1944
|
console.log('\nDocs: https://rizzo-css.vercel.app\n');
|
|
1967
1945
|
}
|
|
1968
1946
|
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
Copyright © 2017 IBM Corp. with Reserved Font Name "Plex"
|
|
2
|
+
|
|
3
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
4
|
+
This license is copied below, and is also available with a FAQ at:
|
|
5
|
+
https://openfontlicense.org
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
-----------------------------------------------------------
|
|
9
|
+
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
10
|
+
-----------------------------------------------------------
|
|
11
|
+
|
|
12
|
+
PREAMBLE
|
|
13
|
+
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
14
|
+
development of collaborative font projects, to support the font creation
|
|
15
|
+
efforts of academic and linguistic communities, and to provide a free and
|
|
16
|
+
open framework in which fonts may be shared and improved in partnership
|
|
17
|
+
with others.
|
|
18
|
+
|
|
19
|
+
The OFL allows the licensed fonts to be used, studied, modified and
|
|
20
|
+
redistributed freely as long as they are not sold by themselves. The
|
|
21
|
+
fonts, including any derivative works, can be bundled, embedded,
|
|
22
|
+
redistributed and/or sold with any software provided that any reserved
|
|
23
|
+
names are not used by derivative works. The fonts and derivatives,
|
|
24
|
+
however, cannot be released under any other type of license. The
|
|
25
|
+
requirement for fonts to remain under this license does not apply
|
|
26
|
+
to any document created using the fonts or their derivatives.
|
|
27
|
+
|
|
28
|
+
DEFINITIONS
|
|
29
|
+
"Font Software" refers to the set of files released by the Copyright
|
|
30
|
+
Holder(s) under this license and clearly marked as such. This may
|
|
31
|
+
include source files, build scripts and documentation.
|
|
32
|
+
|
|
33
|
+
"Reserved Font Name" refers to any names specified as such after the
|
|
34
|
+
copyright statement(s).
|
|
35
|
+
|
|
36
|
+
"Original Version" refers to the collection of Font Software components as
|
|
37
|
+
distributed by the Copyright Holder(s).
|
|
38
|
+
|
|
39
|
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
40
|
+
or substituting -- in part or in whole -- any of the components of the
|
|
41
|
+
Original Version, by changing formats or by porting the Font Software to a
|
|
42
|
+
new environment.
|
|
43
|
+
|
|
44
|
+
"Author" refers to any designer, engineer, programmer, technical
|
|
45
|
+
writer or other person who contributed to the Font Software.
|
|
46
|
+
|
|
47
|
+
PERMISSION & CONDITIONS
|
|
48
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
49
|
+
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
50
|
+
redistribute, and sell modified and unmodified copies of the Font
|
|
51
|
+
Software, subject to the following conditions:
|
|
52
|
+
|
|
53
|
+
1) Neither the Font Software nor any of its individual components,
|
|
54
|
+
in Original or Modified Versions, may be sold by itself.
|
|
55
|
+
|
|
56
|
+
2) Original or Modified Versions of the Font Software may be bundled,
|
|
57
|
+
redistributed and/or sold with any software, provided that each copy
|
|
58
|
+
contains the above copyright notice and this license. These can be
|
|
59
|
+
included either as stand-alone text files, human-readable headers or
|
|
60
|
+
in the appropriate machine-readable metadata fields within text or
|
|
61
|
+
binary files as long as those fields can be easily viewed by the user.
|
|
62
|
+
|
|
63
|
+
3) No Modified Version of the Font Software may use the Reserved Font
|
|
64
|
+
Name(s) unless explicit written permission is granted by the corresponding
|
|
65
|
+
Copyright Holder. This restriction only applies to the primary font name as
|
|
66
|
+
presented to the users.
|
|
67
|
+
|
|
68
|
+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
69
|
+
Software shall not be used to promote, endorse or advertise any
|
|
70
|
+
Modified Version, except to acknowledge the contribution(s) of the
|
|
71
|
+
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
72
|
+
permission.
|
|
73
|
+
|
|
74
|
+
5) The Font Software, modified or unmodified, in part or in whole,
|
|
75
|
+
must be distributed entirely under this license, and must not be
|
|
76
|
+
distributed under any other license. The requirement for fonts to
|
|
77
|
+
remain under this license does not apply to any document created
|
|
78
|
+
using the Font Software.
|
|
79
|
+
|
|
80
|
+
TERMINATION
|
|
81
|
+
This license becomes null and void if any of the above conditions are
|
|
82
|
+
not met.
|
|
83
|
+
|
|
84
|
+
DISCLAIMER
|
|
85
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
86
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
87
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
88
|
+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
89
|
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
90
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
91
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
92
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
93
|
+
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
Binary file
|