shapes-ui 0.3.0 → 0.4.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/.github/workflows/release.yml +35 -35
- package/CHANGELOG.md +108 -0
- package/content/components/autocomplete.mdx +17 -0
- package/content/components/avatar.mdx +17 -0
- package/content/components/combobox.mdx +11 -0
- package/content/components/context-menu.mdx +11 -0
- package/content/components/dialog.mdx +2 -2
- package/content/components/drawer.mdx +33 -0
- package/content/components/form.mdx +17 -0
- package/content/components/menu.mdx +17 -0
- package/content/components/menubar.mdx +17 -0
- package/content/components/meter.mdx +17 -0
- package/content/components/navigation-menu.mdx +5 -0
- package/content/components/number-field.mdx +5 -0
- package/content/components/popover.mdx +5 -0
- package/content/components/preview-card.mdx +5 -0
- package/content/components/progress.mdx +5 -0
- package/content/components/radio.mdx +5 -0
- package/content/components/scroll-area.mdx +11 -0
- package/content/components/select.mdx +5 -0
- package/content/components/slider.mdx +5 -0
- package/content/components/switch.mdx +5 -0
- package/content/components/tabs.mdx +5 -0
- package/content/components/toast.mdx +5 -0
- package/content/components/toggle.mdx +11 -0
- package/content/components/toolbar.mdx +5 -0
- package/dist/cli.js +31 -10
- package/examples/__index.tsx +384 -63
- package/examples/autocomplete-demo.tsx +37 -0
- package/examples/avatar-demo.tsx +23 -0
- package/examples/combobox-demo.tsx +30 -0
- package/examples/context-menu-demo.tsx +47 -0
- package/examples/dialog-demo.tsx +6 -13
- package/examples/drawer-controlled.tsx +41 -0
- package/examples/drawer-demo.tsx +46 -0
- package/examples/drawer-indent.tsx +47 -0
- package/examples/drawer-positions.tsx +45 -0
- package/examples/drawer-snap-points.tsx +50 -0
- package/examples/form-demo.tsx +27 -0
- package/examples/menu-demo.tsx +33 -0
- package/examples/menubar-demo.tsx +49 -0
- package/examples/meter-demo.tsx +26 -0
- package/examples/navigation-menu-demo.tsx +3 -0
- package/examples/number-field-demo.tsx +3 -0
- package/examples/popover-demo.tsx +3 -0
- package/examples/preview-card-demo.tsx +3 -0
- package/examples/progress-demo.tsx +3 -0
- package/examples/radio-demo.tsx +3 -0
- package/examples/scroll-area-demo.tsx +19 -0
- package/examples/select-demo.tsx +3 -0
- package/examples/slider-demo.tsx +3 -0
- package/examples/switch-demo.tsx +3 -0
- package/examples/tabs-demo.tsx +3 -0
- package/examples/toast-demo.tsx +3 -0
- package/examples/toggle-demo.tsx +55 -0
- package/examples/toolbar-demo.tsx +32 -0
- package/package.json +44 -39
- package/public/r/accordion.json +2 -5
- package/public/r/alert-dialog.json +3 -7
- package/public/r/alert.json +2 -4
- package/public/r/badge.json +2 -4
- package/public/r/button-group.json +3 -7
- package/public/r/button.json +2 -5
- package/public/r/card.json +1 -1
- package/public/r/checkbox.json +2 -5
- package/public/r/collapsible.json +2 -4
- package/public/r/combobox.json +13 -0
- package/public/r/context-menu.json +13 -0
- package/public/r/dialog.json +3 -8
- package/public/r/drawer.json +13 -0
- package/public/r/field.json +2 -5
- package/public/r/fieldset.json +2 -4
- package/public/r/index.json +5 -1
- package/public/r/input-group.json +3 -9
- package/public/r/input.json +2 -4
- package/public/r/scroll-area.json +13 -0
- package/public/r/separator.json +2 -4
- package/public/r/textarea.json +1 -1
- package/scripts/generate-examples.mts +36 -10
- package/src/commands/init.ts +27 -10
- package/src/components/ui/autocomplete.tsx +161 -0
- package/src/components/ui/avatar.tsx +47 -0
- package/src/components/ui/combobox.tsx +277 -0
- package/src/components/ui/context-menu.tsx +245 -0
- package/src/components/ui/dialog.tsx +43 -40
- package/src/components/ui/drawer.tsx +184 -0
- package/src/components/ui/form.tsx +11 -0
- package/src/components/ui/menu.tsx +193 -0
- package/src/components/ui/menubar.tsx +209 -0
- package/src/components/ui/meter.tsx +59 -0
- package/src/components/ui/navigation-menu.tsx +105 -0
- package/src/components/ui/number-field.tsx +110 -0
- package/src/components/ui/popover.tsx +59 -0
- package/src/components/ui/preview-card.tsx +52 -0
- package/src/components/ui/progress.tsx +58 -0
- package/src/components/ui/radio.tsx +36 -0
- package/src/components/ui/scroll-area.tsx +64 -0
- package/src/components/ui/select.tsx +190 -0
- package/src/components/ui/slider.tsx +47 -0
- package/src/components/ui/switch.tsx +36 -0
- package/src/components/ui/tabs.tsx +75 -0
- package/src/components/ui/toast.tsx +76 -0
- package/src/components/ui/toggle.tsx +54 -0
- package/src/components/ui/toolbar.tsx +44 -0
- package/src/routeTree.gen.ts +78 -79
- package/src/utils/cli-utils.ts +12 -0
- package/vite.config.ts +2 -2
|
@@ -1,46 +1,46 @@
|
|
|
1
1
|
name: Release
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
7
|
|
|
8
8
|
concurrency: ${{ github.workflow }}-${{ github.ref }}
|
|
9
9
|
|
|
10
10
|
jobs:
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
11
|
+
release:
|
|
12
|
+
name: Release
|
|
13
|
+
runs-on: ubuntu-latest
|
|
14
|
+
permissions:
|
|
15
|
+
contents: write
|
|
16
|
+
pull-requests: write
|
|
17
|
+
id-token: write
|
|
18
|
+
steps:
|
|
19
|
+
- name: Checkout Repo
|
|
20
|
+
uses: actions/checkout@v4
|
|
21
|
+
with:
|
|
22
|
+
fetch-depth: 0
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
- name: Setup Node.js 24
|
|
25
|
+
uses: actions/setup-node@v4
|
|
26
|
+
with:
|
|
27
|
+
node-version: 24
|
|
28
|
+
registry-url: "https://registry.npmjs.org"
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
- name: Install pnpm
|
|
31
|
+
uses: pnpm/action-setup@v3
|
|
32
|
+
with:
|
|
33
|
+
version: 9
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
- name: Install Dependencies
|
|
36
|
+
run: pnpm install
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
38
|
+
- name: Create Release Pull Request or Publish to npm
|
|
39
|
+
id: changesets
|
|
40
|
+
uses: changesets/action@v1
|
|
41
|
+
with:
|
|
42
|
+
publish: pnpm release
|
|
43
|
+
commit: "chore: version packages"
|
|
44
|
+
title: "chore: version packages"
|
|
45
|
+
env:
|
|
46
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,113 @@
|
|
|
1
1
|
# shapes-ui
|
|
2
2
|
|
|
3
|
+
## 0.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 0125286: ## Added tabs component
|
|
8
|
+
|
|
9
|
+
## "shapes-ui": minor
|
|
10
|
+
|
|
11
|
+
Added tabs component
|
|
12
|
+
|
|
13
|
+
- 6c3b1e7: ## Added toggle component
|
|
14
|
+
|
|
15
|
+
## "shapes-ui": minor
|
|
16
|
+
|
|
17
|
+
Added toggle component
|
|
18
|
+
|
|
19
|
+
- 258921a: Added popover component
|
|
20
|
+
- 8c31990: ## Added select component
|
|
21
|
+
|
|
22
|
+
## "shapes-ui": minor
|
|
23
|
+
|
|
24
|
+
Added select component
|
|
25
|
+
|
|
26
|
+
- ae0e06c: Added switch component
|
|
27
|
+
- a64d5fc: ## Added meter component
|
|
28
|
+
|
|
29
|
+
## "shapes-ui": minor
|
|
30
|
+
|
|
31
|
+
Added meter component
|
|
32
|
+
|
|
33
|
+
- ea2fa8d: ## Added menu component
|
|
34
|
+
|
|
35
|
+
## "shapes-ui": minor
|
|
36
|
+
|
|
37
|
+
Added menu component
|
|
38
|
+
|
|
39
|
+
- 1b12754: Ådded form component
|
|
40
|
+
- 8b9b200: ## Added preview card component
|
|
41
|
+
|
|
42
|
+
## "shapes-ui": minor
|
|
43
|
+
|
|
44
|
+
Added preview card component
|
|
45
|
+
|
|
46
|
+
- 9c9ffec: Added number-field component
|
|
47
|
+
- ba419d2: Added navigation-menu component
|
|
48
|
+
- c6c8075: Added menubar component
|
|
49
|
+
- cbc4e67: Added drawer component
|
|
50
|
+
- 62cb1a0: added meter component
|
|
51
|
+
- 43eba89: Added combobox component
|
|
52
|
+
- af7d67e: ## Added radio component
|
|
53
|
+
|
|
54
|
+
## "shapes-ui": minor
|
|
55
|
+
|
|
56
|
+
Added radio component
|
|
57
|
+
|
|
58
|
+
- 20eb988: ## Added toolbar component
|
|
59
|
+
|
|
60
|
+
## "shapes-ui": minor
|
|
61
|
+
|
|
62
|
+
Added toolbar component
|
|
63
|
+
|
|
64
|
+
- 65cf7c2: Added autocomplete component
|
|
65
|
+
- 14c5d2f: ## Added toast component
|
|
66
|
+
|
|
67
|
+
## "shapes-ui": minor
|
|
68
|
+
|
|
69
|
+
Added toast component
|
|
70
|
+
|
|
71
|
+
- 1c5217c: ## Added menubar component
|
|
72
|
+
|
|
73
|
+
## "shapes-ui": minor
|
|
74
|
+
|
|
75
|
+
Added menubar component
|
|
76
|
+
|
|
77
|
+
- 3dc2d69: ## Added progress component
|
|
78
|
+
|
|
79
|
+
## "shapes-ui": minor
|
|
80
|
+
|
|
81
|
+
Added progress component
|
|
82
|
+
|
|
83
|
+
- 41b2289: Added context menu component
|
|
84
|
+
- c4ebe16: Added autocomplete component
|
|
85
|
+
- cbc4e67: Added Drawer component
|
|
86
|
+
- 92070ea: Added avatar component
|
|
87
|
+
- 49d55ab: Added scroll area component
|
|
88
|
+
- c2a8f2c: ## Added tooltip component
|
|
89
|
+
|
|
90
|
+
## "shapes-ui": minor
|
|
91
|
+
|
|
92
|
+
Added tooltip component
|
|
93
|
+
|
|
94
|
+
- baf0a06: Added menu component
|
|
95
|
+
- ff33653: ## Added slider component
|
|
96
|
+
|
|
97
|
+
## "shapes-ui": minor
|
|
98
|
+
|
|
99
|
+
Added slider component
|
|
100
|
+
|
|
101
|
+
- c309349: ## Added scroll area component
|
|
102
|
+
|
|
103
|
+
## "shapes-ui": minor
|
|
104
|
+
|
|
105
|
+
Added scroll area component
|
|
106
|
+
|
|
107
|
+
### Patch Changes
|
|
108
|
+
|
|
109
|
+
- 4b63949: UJpdated the cli script and examples etc.
|
|
110
|
+
|
|
3
111
|
## 0.3.0
|
|
4
112
|
|
|
5
113
|
### Minor Changes
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Autocomplete
|
|
3
|
+
slug: autocomplete
|
|
4
|
+
description: Input field with autocomplete functionality and dropdown list of filtered options.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<RenderPreview name="autocomplete-demo" />
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
<InstallationBlock name="autocomplete" />
|
|
12
|
+
|
|
13
|
+
## Examples
|
|
14
|
+
|
|
15
|
+
### Demo
|
|
16
|
+
|
|
17
|
+
<RenderPreview name="autocomplete-demo" />
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Avatar
|
|
3
|
+
slug: avatar
|
|
4
|
+
description: Profile image component with fallback for missing images or initials.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<RenderPreview name="avatar-demo" />
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
<InstallationBlock name="avatar" />
|
|
12
|
+
|
|
13
|
+
## Examples
|
|
14
|
+
|
|
15
|
+
### Demo
|
|
16
|
+
|
|
17
|
+
<RenderPreview name="avatar-demo" />
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Context Menu
|
|
3
|
+
slug: context-menu
|
|
4
|
+
description: Displays a context menu that appears at the pointer on right click or long press.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<RenderPreview name="context-menu-demo" />
|
|
8
|
+
|
|
9
|
+
# Installation
|
|
10
|
+
|
|
11
|
+
<InstallationBlock name="context-menu" />
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: Dialog
|
|
3
|
-
slug: dialog
|
|
3
|
+
slug: dialog
|
|
4
4
|
description: Modal overlay for confirmations and forms.
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -8,4 +8,4 @@ description: Modal overlay for confirmations and forms.
|
|
|
8
8
|
|
|
9
9
|
## Installation
|
|
10
10
|
|
|
11
|
-
<InstallationBlock name="dialog" />
|
|
11
|
+
<InstallationBlock name="dialog" />
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Drawer
|
|
3
|
+
slug: drawer
|
|
4
|
+
description: A slide-out panel from the edge of the screen.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<RenderPreview name="drawer-demo" />
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
<InstallationBlock name="drawer" />
|
|
12
|
+
|
|
13
|
+
## Examples
|
|
14
|
+
|
|
15
|
+
### Default
|
|
16
|
+
|
|
17
|
+
<RenderPreview name="drawer-demo" />
|
|
18
|
+
|
|
19
|
+
### Indent background
|
|
20
|
+
|
|
21
|
+
<RenderPreview name="drawer-indent" />
|
|
22
|
+
|
|
23
|
+
### Positions
|
|
24
|
+
|
|
25
|
+
<RenderPreview name="drawer-positions" />
|
|
26
|
+
|
|
27
|
+
### Snap points
|
|
28
|
+
|
|
29
|
+
<RenderPreview name="drawer-snap-points" />
|
|
30
|
+
|
|
31
|
+
### Controlled
|
|
32
|
+
|
|
33
|
+
<RenderPreview name="drawer-controlled" />
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Form
|
|
3
|
+
slug: form
|
|
4
|
+
description: Form wrapper component with consolidated error handling and field validation support.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<RenderPreview name="form-demo" />
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
<InstallationBlock name="form" />
|
|
12
|
+
|
|
13
|
+
## Examples
|
|
14
|
+
|
|
15
|
+
### Demo
|
|
16
|
+
|
|
17
|
+
<RenderPreview name="form-demo" />
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Menu
|
|
3
|
+
slug: menu
|
|
4
|
+
description: Dropdown menu component with support for items, groups, separators, and submenus.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<RenderPreview name="menu-demo" />
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
<InstallationBlock name="menu" />
|
|
12
|
+
|
|
13
|
+
## Examples
|
|
14
|
+
|
|
15
|
+
### Demo
|
|
16
|
+
|
|
17
|
+
<RenderPreview name="menu-demo" />
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Menubar
|
|
3
|
+
slug: menubar
|
|
4
|
+
description: Menu bar providing commands and options for your application with dropdown menus.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<RenderPreview name="menubar-demo" />
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
<InstallationBlock name="menubar" />
|
|
12
|
+
|
|
13
|
+
## Examples
|
|
14
|
+
|
|
15
|
+
### Demo
|
|
16
|
+
|
|
17
|
+
<RenderPreview name="menubar-demo" />
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Meter
|
|
3
|
+
slug: meter
|
|
4
|
+
description: Meter component that provides a graphical display of a numeric value within a range.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<RenderPreview name="meter-demo" />
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
<InstallationBlock name="meter" />
|
|
12
|
+
|
|
13
|
+
## Examples
|
|
14
|
+
|
|
15
|
+
### Demo
|
|
16
|
+
|
|
17
|
+
<RenderPreview name="meter-demo" />
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Scroll Area
|
|
3
|
+
slug: scroll-area
|
|
4
|
+
description: A scroll area component that provides a customizable and accessible way to display scrollable content.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<RenderPreview name="scroll-area-demo" />
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
<InstallationBlock name="scroll-area" />
|
package/dist/cli.js
CHANGED
|
@@ -13835,6 +13835,12 @@ function getMissingDeps(pkg, deps) {
|
|
|
13835
13835
|
if (!pkg) return deps;
|
|
13836
13836
|
return deps.filter((dep) => !pkg.dependencies?.[dep] && !pkg.devDependencies?.[dep]);
|
|
13837
13837
|
}
|
|
13838
|
+
async function isViteProject() {
|
|
13839
|
+
const viteConfigTs = path.join(process.cwd(), "vite.config.ts");
|
|
13840
|
+
const viteConfigJs = path.join(process.cwd(), "vite.config.js");
|
|
13841
|
+
const viteConfigMjs = path.join(process.cwd(), "vite.config.mjs");
|
|
13842
|
+
return await fs2.pathExists(viteConfigTs) || await fs2.pathExists(viteConfigJs) || await fs2.pathExists(viteConfigMjs);
|
|
13843
|
+
}
|
|
13838
13844
|
|
|
13839
13845
|
// src/commands/add.ts
|
|
13840
13846
|
import path2 from "path";
|
|
@@ -13959,7 +13965,10 @@ async function addCommand(components, config2) {
|
|
|
13959
13965
|
import path3 from "path";
|
|
13960
13966
|
import { confirm, intro, note as note2, outro, select, text, spinner as spinner2 } from "@clack/prompts";
|
|
13961
13967
|
import { execa as execa2 } from "execa";
|
|
13968
|
+
import figlet from "figlet";
|
|
13962
13969
|
import fs4 from "fs-extra";
|
|
13970
|
+
import gradient from "gradient-string";
|
|
13971
|
+
import pc from "picocolors";
|
|
13963
13972
|
var BASE_DEPS = [
|
|
13964
13973
|
"@base-ui/react",
|
|
13965
13974
|
"class-variance-authority",
|
|
@@ -13968,15 +13977,14 @@ var BASE_DEPS = [
|
|
|
13968
13977
|
"tailwind-merge",
|
|
13969
13978
|
"tw-animate-css"
|
|
13970
13979
|
];
|
|
13971
|
-
var TAILWIND_DEV_DEPS = ["tailwindcss", "@tailwindcss/vite"];
|
|
13972
13980
|
async function installDeps(deps, dev = false) {
|
|
13973
13981
|
if (!deps.length) return;
|
|
13974
13982
|
const spin = spinner2();
|
|
13975
|
-
const label = dev ? "Installing
|
|
13983
|
+
const label = dev ? "Installing dev dependencies" : "Installing dependencies";
|
|
13976
13984
|
spin.start(label);
|
|
13977
13985
|
const [command, ...args] = await getInstallCommand(deps, dev);
|
|
13978
13986
|
await execa2(command, args);
|
|
13979
|
-
spin.stop("Dependencies installed");
|
|
13987
|
+
spin.stop(pc.green("Dependencies installed"));
|
|
13980
13988
|
}
|
|
13981
13989
|
async function ensureTailwindStyles(cssPath) {
|
|
13982
13990
|
const template = '@import "tailwindcss";\n';
|
|
@@ -13992,15 +14000,21 @@ ${template}`);
|
|
|
13992
14000
|
}
|
|
13993
14001
|
await fs4.writeFile(absPath, template);
|
|
13994
14002
|
}
|
|
14003
|
+
function renderTitle() {
|
|
14004
|
+
const text2 = figlet.textSync("Shapes UI", { font: "Standard" });
|
|
14005
|
+
console.log(gradient.pastel.multiline(text2));
|
|
14006
|
+
}
|
|
13995
14007
|
async function initCommand() {
|
|
13996
|
-
|
|
14008
|
+
console.clear();
|
|
14009
|
+
renderTitle();
|
|
14010
|
+
intro(pc.bgCyan(pc.black(" Welcome to Shapes UI ")));
|
|
13997
14011
|
const configPath = path3.join(process.cwd(), "shapes.json");
|
|
13998
14012
|
if (await fs4.pathExists(configPath)) {
|
|
13999
14013
|
const overwrite = exitIfCancelled(
|
|
14000
14014
|
await confirm({ message: "shapes.json already exists. Overwrite it?" })
|
|
14001
14015
|
);
|
|
14002
14016
|
if (!overwrite) {
|
|
14003
|
-
outro("Init cancelled.");
|
|
14017
|
+
outro(pc.yellow("Init cancelled."));
|
|
14004
14018
|
return;
|
|
14005
14019
|
}
|
|
14006
14020
|
}
|
|
@@ -14021,6 +14035,7 @@ async function initCommand() {
|
|
|
14021
14035
|
);
|
|
14022
14036
|
const pkg = await readPackageJson();
|
|
14023
14037
|
const hasTailwindV4 = isTailwindV4Installed(pkg);
|
|
14038
|
+
const isVite = await isViteProject();
|
|
14024
14039
|
const hasExistingCss = exitIfCancelled(
|
|
14025
14040
|
await confirm({ message: "Do you already have a CSS file?" })
|
|
14026
14041
|
);
|
|
@@ -14031,7 +14046,11 @@ async function initCommand() {
|
|
|
14031
14046
|
})
|
|
14032
14047
|
) : "src/styles/globals.css";
|
|
14033
14048
|
if (!hasTailwindV4) {
|
|
14034
|
-
|
|
14049
|
+
const tailwindDeps = ["tailwindcss"];
|
|
14050
|
+
if (isVite) {
|
|
14051
|
+
tailwindDeps.push("@tailwindcss/vite");
|
|
14052
|
+
}
|
|
14053
|
+
await installDeps(tailwindDeps, true);
|
|
14035
14054
|
}
|
|
14036
14055
|
const missingBaseDeps = getMissingDeps(pkg, BASE_DEPS);
|
|
14037
14056
|
await installDeps(missingBaseDeps, false);
|
|
@@ -14043,15 +14062,17 @@ async function initCommand() {
|
|
|
14043
14062
|
paths: { ui: uiPath, lib: "./src/lib" }
|
|
14044
14063
|
};
|
|
14045
14064
|
await fs4.writeJSON("shapes.json", config2, { spaces: 2 });
|
|
14046
|
-
note2("Created shapes.json");
|
|
14065
|
+
note2("Created shapes.json", "Configuration");
|
|
14047
14066
|
const addNow = exitIfCancelled(await confirm({ message: "Add components now?" }));
|
|
14048
14067
|
if (addNow) {
|
|
14049
14068
|
const selected = await pickComponents();
|
|
14050
|
-
|
|
14051
|
-
|
|
14069
|
+
if (selected.length > 0) {
|
|
14070
|
+
for (const name of selected) {
|
|
14071
|
+
await installComponent(name, config2);
|
|
14072
|
+
}
|
|
14052
14073
|
}
|
|
14053
14074
|
}
|
|
14054
|
-
outro("Shapes UI is ready.");
|
|
14075
|
+
outro(pc.green("Shapes UI is ready."));
|
|
14055
14076
|
}
|
|
14056
14077
|
|
|
14057
14078
|
// src/commands/cli.ts
|