@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.
Files changed (149) hide show
  1. package/README.md +187 -0
  2. package/mycelia-ui.css +5545 -0
  3. package/package.json +127 -0
  4. package/packages/ui/dist/components/accordion.d.mts +9 -0
  5. package/packages/ui/dist/components/accordion.js +74 -0
  6. package/packages/ui/dist/components/accordion.js.map +1 -0
  7. package/packages/ui/dist/components/alert-dialog.d.mts +22 -0
  8. package/packages/ui/dist/components/alert-dialog.js +117 -0
  9. package/packages/ui/dist/components/alert-dialog.js.map +1 -0
  10. package/packages/ui/dist/components/alert.d.mts +28 -0
  11. package/packages/ui/dist/components/alert.js +140 -0
  12. package/packages/ui/dist/components/alert.js.map +1 -0
  13. package/packages/ui/dist/components/aspect-ratio.d.mts +7 -0
  14. package/packages/ui/dist/components/aspect-ratio.js +28 -0
  15. package/packages/ui/dist/components/aspect-ratio.js.map +1 -0
  16. package/packages/ui/dist/components/avatar-stack.d.mts +16 -0
  17. package/packages/ui/dist/components/avatar-stack.js +57 -0
  18. package/packages/ui/dist/components/avatar-stack.js.map +1 -0
  19. package/packages/ui/dist/components/avatar.d.mts +16 -0
  20. package/packages/ui/dist/components/avatar.js +108 -0
  21. package/packages/ui/dist/components/avatar.js.map +1 -0
  22. package/packages/ui/dist/components/badge.d.mts +16 -0
  23. package/packages/ui/dist/components/badge.js +61 -0
  24. package/packages/ui/dist/components/badge.js.map +1 -0
  25. package/packages/ui/dist/components/breadcrumb.d.mts +22 -0
  26. package/packages/ui/dist/components/breadcrumb.js +118 -0
  27. package/packages/ui/dist/components/breadcrumb.js.map +1 -0
  28. package/packages/ui/dist/components/button.d.mts +36 -0
  29. package/packages/ui/dist/components/button.js +204 -0
  30. package/packages/ui/dist/components/button.js.map +1 -0
  31. package/packages/ui/dist/components/calendar.d.mts +11 -0
  32. package/packages/ui/dist/components/calendar.js +27 -0
  33. package/packages/ui/dist/components/calendar.js.map +1 -0
  34. package/packages/ui/dist/components/card.d.mts +10 -0
  35. package/packages/ui/dist/components/card.js +84 -0
  36. package/packages/ui/dist/components/card.js.map +1 -0
  37. package/packages/ui/dist/components/carousel.d.mts +35 -0
  38. package/packages/ui/dist/components/carousel.js +362 -0
  39. package/packages/ui/dist/components/carousel.js.map +1 -0
  40. package/packages/ui/dist/components/chart.d.mts +88 -0
  41. package/packages/ui/dist/components/chart.js +249 -0
  42. package/packages/ui/dist/components/chart.js.map +1 -0
  43. package/packages/ui/dist/components/checkbox.d.mts +44 -0
  44. package/packages/ui/dist/components/checkbox.js +161 -0
  45. package/packages/ui/dist/components/checkbox.js.map +1 -0
  46. package/packages/ui/dist/components/combobox.d.mts +45 -0
  47. package/packages/ui/dist/components/combobox.js +148 -0
  48. package/packages/ui/dist/components/combobox.js.map +1 -0
  49. package/packages/ui/dist/components/command-menu.d.mts +88 -0
  50. package/packages/ui/dist/components/command-menu.js +414 -0
  51. package/packages/ui/dist/components/command-menu.js.map +1 -0
  52. package/packages/ui/dist/components/command.d.mts +84 -0
  53. package/packages/ui/dist/components/command.js +125 -0
  54. package/packages/ui/dist/components/command.js.map +1 -0
  55. package/packages/ui/dist/components/data-table.d.mts +23 -0
  56. package/packages/ui/dist/components/data-table.js +377 -0
  57. package/packages/ui/dist/components/data-table.js.map +1 -0
  58. package/packages/ui/dist/components/date-picker.d.mts +28 -0
  59. package/packages/ui/dist/components/date-picker.js +217 -0
  60. package/packages/ui/dist/components/date-picker.js.map +1 -0
  61. package/packages/ui/dist/components/dialog.d.mts +19 -0
  62. package/packages/ui/dist/components/dialog.js +146 -0
  63. package/packages/ui/dist/components/dialog.js.map +1 -0
  64. package/packages/ui/dist/components/drawer.d.mts +20 -0
  65. package/packages/ui/dist/components/drawer.js +159 -0
  66. package/packages/ui/dist/components/drawer.js.map +1 -0
  67. package/packages/ui/dist/components/hover-card.d.mts +9 -0
  68. package/packages/ui/dist/components/hover-card.js +35 -0
  69. package/packages/ui/dist/components/hover-card.js.map +1 -0
  70. package/packages/ui/dist/components/icon-button.d.mts +22 -0
  71. package/packages/ui/dist/components/icon-button.js +169 -0
  72. package/packages/ui/dist/components/icon-button.js.map +1 -0
  73. package/packages/ui/dist/components/input-file.d.mts +12 -0
  74. package/packages/ui/dist/components/input-file.js +209 -0
  75. package/packages/ui/dist/components/input-file.js.map +1 -0
  76. package/packages/ui/dist/components/input-otp.d.mts +85 -0
  77. package/packages/ui/dist/components/input-otp.js +254 -0
  78. package/packages/ui/dist/components/input-otp.js.map +1 -0
  79. package/packages/ui/dist/components/input.d.mts +17 -0
  80. package/packages/ui/dist/components/input.js +116 -0
  81. package/packages/ui/dist/components/input.js.map +1 -0
  82. package/packages/ui/dist/components/label.d.mts +14 -0
  83. package/packages/ui/dist/components/label.js +40 -0
  84. package/packages/ui/dist/components/label.js.map +1 -0
  85. package/packages/ui/dist/components/navigation-menu.d.mts +20 -0
  86. package/packages/ui/dist/components/navigation-menu.js +136 -0
  87. package/packages/ui/dist/components/navigation-menu.js.map +1 -0
  88. package/packages/ui/dist/components/pagination.d.mts +27 -0
  89. package/packages/ui/dist/components/pagination.js +159 -0
  90. package/packages/ui/dist/components/pagination.js.map +1 -0
  91. package/packages/ui/dist/components/popover.d.mts +9 -0
  92. package/packages/ui/dist/components/popover.js +34 -0
  93. package/packages/ui/dist/components/popover.js.map +1 -0
  94. package/packages/ui/dist/components/progress.d.mts +13 -0
  95. package/packages/ui/dist/components/progress.js +44 -0
  96. package/packages/ui/dist/components/progress.js.map +1 -0
  97. package/packages/ui/dist/components/radio-group.d.mts +42 -0
  98. package/packages/ui/dist/components/radio-group.js +125 -0
  99. package/packages/ui/dist/components/radio-group.js.map +1 -0
  100. package/packages/ui/dist/components/resizable.d.mts +9 -0
  101. package/packages/ui/dist/components/resizable.js +70 -0
  102. package/packages/ui/dist/components/resizable.js.map +1 -0
  103. package/packages/ui/dist/components/scroll-area.d.mts +15 -0
  104. package/packages/ui/dist/components/scroll-area.js +70 -0
  105. package/packages/ui/dist/components/scroll-area.js.map +1 -0
  106. package/packages/ui/dist/components/separator.d.mts +27 -0
  107. package/packages/ui/dist/components/separator.js +81 -0
  108. package/packages/ui/dist/components/separator.js.map +1 -0
  109. package/packages/ui/dist/components/sheet.d.mts +26 -0
  110. package/packages/ui/dist/components/sheet.js +158 -0
  111. package/packages/ui/dist/components/sheet.js.map +1 -0
  112. package/packages/ui/dist/components/sidebar.d.mts +63 -0
  113. package/packages/ui/dist/components/sidebar.js +271 -0
  114. package/packages/ui/dist/components/sidebar.js.map +1 -0
  115. package/packages/ui/dist/components/skeleton.d.mts +13 -0
  116. package/packages/ui/dist/components/skeleton.js +34 -0
  117. package/packages/ui/dist/components/skeleton.js.map +1 -0
  118. package/packages/ui/dist/components/slider.d.mts +7 -0
  119. package/packages/ui/dist/components/slider.js +70 -0
  120. package/packages/ui/dist/components/slider.js.map +1 -0
  121. package/packages/ui/dist/components/sonner.d.mts +8 -0
  122. package/packages/ui/dist/components/sonner.js +112 -0
  123. package/packages/ui/dist/components/sonner.js.map +1 -0
  124. package/packages/ui/dist/components/spinner.d.mts +6 -0
  125. package/packages/ui/dist/components/spinner.js +44 -0
  126. package/packages/ui/dist/components/spinner.js.map +1 -0
  127. package/packages/ui/dist/components/switch.d.mts +43 -0
  128. package/packages/ui/dist/components/switch.js +136 -0
  129. package/packages/ui/dist/components/switch.js.map +1 -0
  130. package/packages/ui/dist/components/table.d.mts +16 -0
  131. package/packages/ui/dist/components/table.js +115 -0
  132. package/packages/ui/dist/components/table.js.map +1 -0
  133. package/packages/ui/dist/components/tabs.d.mts +17 -0
  134. package/packages/ui/dist/components/tabs.js +104 -0
  135. package/packages/ui/dist/components/tabs.js.map +1 -0
  136. package/packages/ui/dist/components/textarea.d.mts +12 -0
  137. package/packages/ui/dist/components/textarea.js +76 -0
  138. package/packages/ui/dist/components/textarea.js.map +1 -0
  139. package/packages/ui/dist/components/tooltip.d.mts +17 -0
  140. package/packages/ui/dist/components/tooltip.js +46 -0
  141. package/packages/ui/dist/components/tooltip.js.map +1 -0
  142. package/packages/ui/dist/lib/utils.d.mts +5 -0
  143. package/packages/ui/dist/lib/utils.js +11 -0
  144. package/packages/ui/dist/lib/utils.js.map +1 -0
  145. package/packages/ui/dist/mycelia-ui.css +5545 -0
  146. package/packages/ui/postcss.config.mjs +6 -0
  147. package/packages/ui/src/styles/bundle-entry.css +2 -0
  148. package/packages/ui/src/styles/globals.css +651 -0
  149. 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