@mila_studios/mycelia-design-system 0.1.1
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 +187 -0
- package/mycelia-ui.css +5545 -0
- package/package.json +127 -0
- package/packages/ui/dist/components/accordion.d.mts +9 -0
- package/packages/ui/dist/components/accordion.js +74 -0
- package/packages/ui/dist/components/accordion.js.map +1 -0
- package/packages/ui/dist/components/alert-dialog.d.mts +22 -0
- package/packages/ui/dist/components/alert-dialog.js +117 -0
- package/packages/ui/dist/components/alert-dialog.js.map +1 -0
- package/packages/ui/dist/components/alert.d.mts +28 -0
- package/packages/ui/dist/components/alert.js +140 -0
- package/packages/ui/dist/components/alert.js.map +1 -0
- package/packages/ui/dist/components/aspect-ratio.d.mts +7 -0
- package/packages/ui/dist/components/aspect-ratio.js +28 -0
- package/packages/ui/dist/components/aspect-ratio.js.map +1 -0
- package/packages/ui/dist/components/avatar-stack.d.mts +16 -0
- package/packages/ui/dist/components/avatar-stack.js +57 -0
- package/packages/ui/dist/components/avatar-stack.js.map +1 -0
- package/packages/ui/dist/components/avatar.d.mts +16 -0
- package/packages/ui/dist/components/avatar.js +108 -0
- package/packages/ui/dist/components/avatar.js.map +1 -0
- package/packages/ui/dist/components/badge.d.mts +16 -0
- package/packages/ui/dist/components/badge.js +61 -0
- package/packages/ui/dist/components/badge.js.map +1 -0
- package/packages/ui/dist/components/breadcrumb.d.mts +22 -0
- package/packages/ui/dist/components/breadcrumb.js +118 -0
- package/packages/ui/dist/components/breadcrumb.js.map +1 -0
- package/packages/ui/dist/components/button.d.mts +36 -0
- package/packages/ui/dist/components/button.js +204 -0
- package/packages/ui/dist/components/button.js.map +1 -0
- package/packages/ui/dist/components/calendar.d.mts +11 -0
- package/packages/ui/dist/components/calendar.js +27 -0
- package/packages/ui/dist/components/calendar.js.map +1 -0
- package/packages/ui/dist/components/card.d.mts +10 -0
- package/packages/ui/dist/components/card.js +84 -0
- package/packages/ui/dist/components/card.js.map +1 -0
- package/packages/ui/dist/components/carousel.d.mts +35 -0
- package/packages/ui/dist/components/carousel.js +362 -0
- package/packages/ui/dist/components/carousel.js.map +1 -0
- package/packages/ui/dist/components/chart.d.mts +88 -0
- package/packages/ui/dist/components/chart.js +249 -0
- package/packages/ui/dist/components/chart.js.map +1 -0
- package/packages/ui/dist/components/checkbox.d.mts +44 -0
- package/packages/ui/dist/components/checkbox.js +161 -0
- package/packages/ui/dist/components/checkbox.js.map +1 -0
- package/packages/ui/dist/components/combobox.d.mts +45 -0
- package/packages/ui/dist/components/combobox.js +148 -0
- package/packages/ui/dist/components/combobox.js.map +1 -0
- package/packages/ui/dist/components/command-menu.d.mts +88 -0
- package/packages/ui/dist/components/command-menu.js +414 -0
- package/packages/ui/dist/components/command-menu.js.map +1 -0
- package/packages/ui/dist/components/command.d.mts +84 -0
- package/packages/ui/dist/components/command.js +125 -0
- package/packages/ui/dist/components/command.js.map +1 -0
- package/packages/ui/dist/components/data-table.d.mts +23 -0
- package/packages/ui/dist/components/data-table.js +377 -0
- package/packages/ui/dist/components/data-table.js.map +1 -0
- package/packages/ui/dist/components/date-picker.d.mts +28 -0
- package/packages/ui/dist/components/date-picker.js +217 -0
- package/packages/ui/dist/components/date-picker.js.map +1 -0
- package/packages/ui/dist/components/dialog.d.mts +19 -0
- package/packages/ui/dist/components/dialog.js +146 -0
- package/packages/ui/dist/components/dialog.js.map +1 -0
- package/packages/ui/dist/components/drawer.d.mts +20 -0
- package/packages/ui/dist/components/drawer.js +159 -0
- package/packages/ui/dist/components/drawer.js.map +1 -0
- package/packages/ui/dist/components/hover-card.d.mts +9 -0
- package/packages/ui/dist/components/hover-card.js +35 -0
- package/packages/ui/dist/components/hover-card.js.map +1 -0
- package/packages/ui/dist/components/icon-button.d.mts +22 -0
- package/packages/ui/dist/components/icon-button.js +169 -0
- package/packages/ui/dist/components/icon-button.js.map +1 -0
- package/packages/ui/dist/components/input-file.d.mts +12 -0
- package/packages/ui/dist/components/input-file.js +209 -0
- package/packages/ui/dist/components/input-file.js.map +1 -0
- package/packages/ui/dist/components/input-otp.d.mts +85 -0
- package/packages/ui/dist/components/input-otp.js +254 -0
- package/packages/ui/dist/components/input-otp.js.map +1 -0
- package/packages/ui/dist/components/input.d.mts +17 -0
- package/packages/ui/dist/components/input.js +116 -0
- package/packages/ui/dist/components/input.js.map +1 -0
- package/packages/ui/dist/components/label.d.mts +14 -0
- package/packages/ui/dist/components/label.js +40 -0
- package/packages/ui/dist/components/label.js.map +1 -0
- package/packages/ui/dist/components/navigation-menu.d.mts +20 -0
- package/packages/ui/dist/components/navigation-menu.js +136 -0
- package/packages/ui/dist/components/navigation-menu.js.map +1 -0
- package/packages/ui/dist/components/pagination.d.mts +27 -0
- package/packages/ui/dist/components/pagination.js +159 -0
- package/packages/ui/dist/components/pagination.js.map +1 -0
- package/packages/ui/dist/components/popover.d.mts +9 -0
- package/packages/ui/dist/components/popover.js +34 -0
- package/packages/ui/dist/components/popover.js.map +1 -0
- package/packages/ui/dist/components/progress.d.mts +13 -0
- package/packages/ui/dist/components/progress.js +44 -0
- package/packages/ui/dist/components/progress.js.map +1 -0
- package/packages/ui/dist/components/radio-group.d.mts +42 -0
- package/packages/ui/dist/components/radio-group.js +125 -0
- package/packages/ui/dist/components/radio-group.js.map +1 -0
- package/packages/ui/dist/components/resizable.d.mts +9 -0
- package/packages/ui/dist/components/resizable.js +70 -0
- package/packages/ui/dist/components/resizable.js.map +1 -0
- package/packages/ui/dist/components/scroll-area.d.mts +15 -0
- package/packages/ui/dist/components/scroll-area.js +70 -0
- package/packages/ui/dist/components/scroll-area.js.map +1 -0
- package/packages/ui/dist/components/separator.d.mts +27 -0
- package/packages/ui/dist/components/separator.js +81 -0
- package/packages/ui/dist/components/separator.js.map +1 -0
- package/packages/ui/dist/components/sheet.d.mts +26 -0
- package/packages/ui/dist/components/sheet.js +158 -0
- package/packages/ui/dist/components/sheet.js.map +1 -0
- package/packages/ui/dist/components/sidebar.d.mts +63 -0
- package/packages/ui/dist/components/sidebar.js +271 -0
- package/packages/ui/dist/components/sidebar.js.map +1 -0
- package/packages/ui/dist/components/skeleton.d.mts +13 -0
- package/packages/ui/dist/components/skeleton.js +34 -0
- package/packages/ui/dist/components/skeleton.js.map +1 -0
- package/packages/ui/dist/components/slider.d.mts +7 -0
- package/packages/ui/dist/components/slider.js +70 -0
- package/packages/ui/dist/components/slider.js.map +1 -0
- package/packages/ui/dist/components/sonner.d.mts +8 -0
- package/packages/ui/dist/components/sonner.js +112 -0
- package/packages/ui/dist/components/sonner.js.map +1 -0
- package/packages/ui/dist/components/spinner.d.mts +6 -0
- package/packages/ui/dist/components/spinner.js +44 -0
- package/packages/ui/dist/components/spinner.js.map +1 -0
- package/packages/ui/dist/components/switch.d.mts +43 -0
- package/packages/ui/dist/components/switch.js +136 -0
- package/packages/ui/dist/components/switch.js.map +1 -0
- package/packages/ui/dist/components/table.d.mts +16 -0
- package/packages/ui/dist/components/table.js +115 -0
- package/packages/ui/dist/components/table.js.map +1 -0
- package/packages/ui/dist/components/tabs.d.mts +17 -0
- package/packages/ui/dist/components/tabs.js +104 -0
- package/packages/ui/dist/components/tabs.js.map +1 -0
- package/packages/ui/dist/components/textarea.d.mts +12 -0
- package/packages/ui/dist/components/textarea.js +76 -0
- package/packages/ui/dist/components/textarea.js.map +1 -0
- package/packages/ui/dist/components/tooltip.d.mts +17 -0
- package/packages/ui/dist/components/tooltip.js +46 -0
- package/packages/ui/dist/components/tooltip.js.map +1 -0
- package/packages/ui/dist/lib/utils.d.mts +5 -0
- package/packages/ui/dist/lib/utils.js +11 -0
- package/packages/ui/dist/lib/utils.js.map +1 -0
- package/packages/ui/dist/mycelia-ui.css +5545 -0
- package/packages/ui/postcss.config.mjs +6 -0
- package/packages/ui/src/styles/bundle-entry.css +2 -0
- package/packages/ui/src/styles/globals.css +651 -0
- package/scripts/prepare-build.mjs +32 -0
package/README.md
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
# mycelia-design-system
|
|
2
|
+
|
|
3
|
+
React component library **`@mila-studios/mycelia-design-system`**, available on [npm](https://www.npmjs.com/package/@mila-studios/mycelia-design-system). Source under [`packages/ui`](packages/ui). **React**, **Tailwind v4**, Radix-style primitives. To preview everything in the browser first, see [Run the demo locally](#run-the-demo-locally).
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Run the demo locally
|
|
8
|
+
|
|
9
|
+
If you only want to **browse the component showcase** in the browser (no separate app to wire up), clone this repo, install, and start the bundled demo (esbuild + PostCSS watch):
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
git clone https://github.com/mila-studios/mila-design-components.git
|
|
13
|
+
cd mila-design-components
|
|
14
|
+
npm install
|
|
15
|
+
npm run dev
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Then open the URL printed in the terminal (esbuild’s dev server defaults to **http://localhost:8000**). The demo lives under [`packages/ui/src/demo`](packages/ui/src/demo) and is not part of the published npm package.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Install and use in your app
|
|
23
|
+
|
|
24
|
+
**Requirements:** Node 20+, npm 10+, React 18 or 19.
|
|
25
|
+
|
|
26
|
+
1. Create an app (example: Vite + React + TS):
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
npm create vite@latest my-app -- --template react-ts
|
|
30
|
+
cd my-app
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
2. Install the package from npm:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
npm install @mila-studios/mycelia-design-system
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**Or** add to `package.json`:
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"@mila-studios/mycelia-design-system": "^0.1.0",
|
|
45
|
+
"react": "^19.0.0",
|
|
46
|
+
"react-dom": "^19.0.0"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
3. In **`src/main.tsx`**, import styles **first**:
|
|
52
|
+
|
|
53
|
+
```tsx
|
|
54
|
+
import "@mila-studios/mycelia-design-system/styles.css"
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Fallback: `import "@mila-studios/mycelia-design-system/mycelia-ui.css"`. Charts that use **Recharts** may need `npm install recharts` in your app if the bundler does not hoist it.
|
|
58
|
+
|
|
59
|
+
4. In **`src/App.tsx`**, import by file name (no `.tsx`), then run `npm run dev`:
|
|
60
|
+
|
|
61
|
+
```tsx
|
|
62
|
+
import { Button } from "@mila-studios/mycelia-design-system/components/button"
|
|
63
|
+
|
|
64
|
+
export default function App() {
|
|
65
|
+
return (
|
|
66
|
+
<main>
|
|
67
|
+
<Button type="button">Hello</Button>
|
|
68
|
+
</main>
|
|
69
|
+
)
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Imports:** `@mila-studios/mycelia-design-system/components/<name>` and `@mila-studios/mycelia-design-system/lib/utils` (`cn` helper). The pre-built CSS covers classes used **inside this library**. For Tailwind utilities **only in your app files**, add PostCSS + `@mila-studios/mycelia-design-system/globals.css` + Tailwind `@source` for your sources (see [`packages/ui/src/styles/globals.css`](packages/ui/src/styles/globals.css)).
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Components
|
|
78
|
+
|
|
79
|
+
Paths follow **`@mila-studios/mycelia-design-system/components/<file>`** (file name without `.tsx`). Grouped by role; each file exports the primitives you expect from a shadcn-style setup.
|
|
80
|
+
|
|
81
|
+
| Area | Components |
|
|
82
|
+
| --- | --- |
|
|
83
|
+
| **Actions** | `button`, `icon-button` |
|
|
84
|
+
| **Forms & inputs** | `input`, `textarea`, `label`, `checkbox`, `radio-group`, `switch`, `input-otp`, `input-file`, `combobox`, `calendar`, `date-picker`, `slider` |
|
|
85
|
+
| **Layout & structure** | `card`, `separator`, `scroll-area`, `resizable`, `aspect-ratio` |
|
|
86
|
+
| **Dialogs & overlays** | `dialog`, `alert-dialog`, `drawer`, `sheet`, `popover`, `hover-card`, `tooltip` |
|
|
87
|
+
| **Navigation** | `tabs`, `breadcrumb`, `navigation-menu`, `pagination`, `sidebar`, `command`, `command-menu` |
|
|
88
|
+
| **Data** | `table`, `data-table` (TanStack Table), `badge`, `avatar`, `avatar-stack`, `carousel` |
|
|
89
|
+
| **Feedback** | `alert`, `accordion`, `progress`, `spinner`, `skeleton`, `sonner` (toasts) |
|
|
90
|
+
| **Charts** | `chart` — MILA-themed wrappers around **Recharts** (`ChartContainer`, `ChartTooltip`, `ChartTooltipContent`, `ChartLegend`, …). Compose with `recharts` exports (`LineChart`, `BarChart`, `Area`, `XAxis`, …). |
|
|
91
|
+
|
|
92
|
+
**Notable details**
|
|
93
|
+
|
|
94
|
+
- **`input`** — MILA sizes: `mini` \| `sm` \| `default` \| `lg`; optional `startAdornment` / `endAdornment`. [Figma — Obra / MILA inputs](https://www.figma.com/design/G7n3jEe1IuqWPezoBhE1Lj/Obra-shadcn-ui---MILA?node-id=16-1738).
|
|
95
|
+
- **`data-table`** — Built on `@tanstack/react-table` (already a dependency of the library).
|
|
96
|
+
- **`chart`** — Use with `recharts`; tokens for grid, axes, and tooltips come from `globals.css` / `styles.css`.
|
|
97
|
+
- **`sonner`** — Toaster; wrap your app with your framework’s pattern and render `<Toaster />` where appropriate.
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Repo layout (contributors)
|
|
102
|
+
|
|
103
|
+
| Path | Purpose |
|
|
104
|
+
| --- | --- |
|
|
105
|
+
| Root `package.json` | Package **`@mila-studios/mycelia-design-system`**, `exports`, published `files` |
|
|
106
|
+
| [`packages/ui`](packages/ui) | Components, [`globals.css`](packages/ui/src/styles/globals.css), build output in [`packages/ui/dist`](packages/ui/dist), pre-built [`mycelia-ui.css`](packages/ui/dist/mycelia-ui.css) |
|
|
107
|
+
| [`packages/ui/src/demo`](packages/ui/src/demo) | Local demo (esbuild + PostCSS), not part of the npm JS bundle |
|
|
108
|
+
|
|
109
|
+
**Contributors:** `npm install` → `npm run dev` (demo), `npm run build` (library + CSS). `packages/ui/dist` and root `mycelia-ui.css` are build outputs (gitignored); `prepare` runs the build when installing from a full clone so consumers get compiled assets.
|
|
110
|
+
|
|
111
|
+
**shadcn CLI** (add components into `packages/ui`):
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
npx shadcn@latest add <component> -c packages/ui/components.json
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Scripts (this repo)
|
|
120
|
+
|
|
121
|
+
| Command | Description |
|
|
122
|
+
| --- | --- |
|
|
123
|
+
| `npm run dev` | Demo dev server + CSS watch |
|
|
124
|
+
| `npm run build` | Library (`tsup`) + `mycelia-ui.css` |
|
|
125
|
+
| `npm run lint` / `npm run typecheck` / `npm run format` | Quality checks for `packages/ui` |
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Contributing
|
|
130
|
+
|
|
131
|
+
This project uses [semantic-release](https://github.com/semantic-release/semantic-release) with [conventional commits](https://www.conventionalcommits.org/) for automated versioning. Your commit messages determine the next version number.
|
|
132
|
+
|
|
133
|
+
### Commit Message Format
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
<type>(<scope>): <description>
|
|
137
|
+
|
|
138
|
+
[optional body]
|
|
139
|
+
|
|
140
|
+
[optional footer]
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Types and Version Impact
|
|
144
|
+
|
|
145
|
+
| Type | Description | Version Bump | Example |
|
|
146
|
+
|------|-------------|--------------|---------|
|
|
147
|
+
| `feat` | New feature | Minor (0.1.0 → 0.2.0) | `feat(button): add loading state` |
|
|
148
|
+
| `fix` | Bug fix | Patch (0.1.0 → 0.1.1) | `fix(input): correct border color on focus` |
|
|
149
|
+
| `feat!` | Breaking change | Major (0.1.0 → 1.0.0) | `feat(api)!: rename Button to Btn` |
|
|
150
|
+
| `docs` | Documentation only | No release | `docs: update install instructions` |
|
|
151
|
+
| `style` | Code style (formatting) | No release | `style: fix indentation` |
|
|
152
|
+
| `refactor` | Code change (no fix/feat) | No release | `refactor(card): simplify props` |
|
|
153
|
+
| `test` | Add/update tests | No release | `test(button): add click handler tests` |
|
|
154
|
+
| `chore` | Maintenance tasks | No release | `chore: update dependencies` |
|
|
155
|
+
|
|
156
|
+
### Examples
|
|
157
|
+
|
|
158
|
+
**Patch release** (bug fix):
|
|
159
|
+
```
|
|
160
|
+
fix(tooltip): prevent overflow on long content
|
|
161
|
+
|
|
162
|
+
The tooltip now properly wraps text and respects max-width.
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Minor release** (new feature):
|
|
166
|
+
```
|
|
167
|
+
feat(sidebar): add collapsible mode
|
|
168
|
+
|
|
169
|
+
- Add `collapsible` prop to Sidebar component
|
|
170
|
+
- Add `onCollapse` callback
|
|
171
|
+
- Update styles for collapsed state
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Major release** (breaking change):
|
|
175
|
+
```
|
|
176
|
+
feat(theme)!: migrate to CSS custom properties
|
|
177
|
+
|
|
178
|
+
BREAKING CHANGE: Theme tokens are now CSS variables.
|
|
179
|
+
Replace `theme.colors.primary` with `var(--color-primary)`.
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
### Scope (optional)
|
|
183
|
+
|
|
184
|
+
The scope identifies the component or area affected:
|
|
185
|
+
- `feat(button):` — Button component
|
|
186
|
+
- `fix(data-table):` — DataTable component
|
|
187
|
+
- `docs(readme):` — README changes
|