@discourser/design-system 0.1.0 → 0.1.3
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 +100 -21
- package/package.json +8 -3
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
# @
|
|
1
|
+
# @discourser/design-system
|
|
2
2
|
|
|
3
3
|
[](https://github.com/tastymakers/design-system/actions/workflows/ci.yml)
|
|
4
|
-
[](https://www.npmjs.com/package/@discourser/design-system)
|
|
5
5
|
|
|
6
6
|
An aesthetic-agnostic design system built with Panda CSS and Ark UI. **Swap design languages by changing a single import.**
|
|
7
7
|
|
|
@@ -29,18 +29,18 @@ An aesthetic-agnostic design system built with Panda CSS and Ark UI. **Swap desi
|
|
|
29
29
|
## 📦 Installation
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
npm install @
|
|
32
|
+
npm install @discourser/design-system
|
|
33
33
|
# or
|
|
34
|
-
pnpm add @
|
|
34
|
+
pnpm add @discourser/design-system
|
|
35
35
|
# or
|
|
36
|
-
yarn add @
|
|
36
|
+
yarn add @discourser/design-system
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
## 🎯 Quick Start
|
|
40
40
|
|
|
41
41
|
```tsx
|
|
42
|
-
import { Button, Card, IconButton } from '@
|
|
43
|
-
import '@
|
|
42
|
+
import { Button, Card, IconButton } from '@discourser/design-system';
|
|
43
|
+
import '@discourser/design-system/styled-system';
|
|
44
44
|
|
|
45
45
|
function App() {
|
|
46
46
|
return (
|
|
@@ -65,7 +65,7 @@ function App() {
|
|
|
65
65
|
Material Design 3 button with 5 variants and 3 sizes.
|
|
66
66
|
|
|
67
67
|
```tsx
|
|
68
|
-
import { Button } from '@
|
|
68
|
+
import { Button } from '@discourser/design-system';
|
|
69
69
|
|
|
70
70
|
<Button variant="filled" size="md" leftIcon={<Icon />}>
|
|
71
71
|
Click me
|
|
@@ -80,7 +80,7 @@ import { Button } from '@tastymakers/design-system';
|
|
|
80
80
|
Container component with 3 variants and optional interactive state.
|
|
81
81
|
|
|
82
82
|
```tsx
|
|
83
|
-
import { Card } from '@
|
|
83
|
+
import { Card } from '@discourser/design-system';
|
|
84
84
|
|
|
85
85
|
<Card variant="elevated" interactive>
|
|
86
86
|
<h3>Card Title</h3>
|
|
@@ -96,7 +96,7 @@ import { Card } from '@tastymakers/design-system';
|
|
|
96
96
|
Icon-only button with 4 variants and 3 sizes. Requires `aria-label` for accessibility.
|
|
97
97
|
|
|
98
98
|
```tsx
|
|
99
|
-
import { IconButton } from '@
|
|
99
|
+
import { IconButton } from '@discourser/design-system';
|
|
100
100
|
|
|
101
101
|
<IconButton variant="filled" size="md" aria-label="Settings">
|
|
102
102
|
<SettingsIcon />
|
|
@@ -179,7 +179,7 @@ pnpm test --ui # Open Vitest UI
|
|
|
179
179
|
|
|
180
180
|
| Command | Description |
|
|
181
181
|
|---------|-------------|
|
|
182
|
-
| `pnpm dev` | Start Storybook on port 6006
|
|
182
|
+
| `pnpm dev` | Start Storybook on port 6006
|
|
183
183
|
| `pnpm build` | Build library (Panda + tsup) |
|
|
184
184
|
| `pnpm build:panda` | Generate styled-system |
|
|
185
185
|
| `pnpm build:lib` | Build library only |
|
|
@@ -191,16 +191,95 @@ pnpm test --ui # Open Vitest UI
|
|
|
191
191
|
|
|
192
192
|
## 🤝 Contributing
|
|
193
193
|
|
|
194
|
-
|
|
194
|
+
### Development Workflow
|
|
195
195
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
196
|
+
**⚠️ IMPORTANT: We use Changesets for version management. Never manually edit the version in `package.json`.**
|
|
197
|
+
|
|
198
|
+
#### For Team Members (Write Access)
|
|
199
|
+
|
|
200
|
+
1. **Create a feature branch from `main`:**
|
|
201
|
+
```bash
|
|
202
|
+
git checkout main
|
|
203
|
+
git pull
|
|
204
|
+
git checkout -b feature/my-feature # or fix/bug-name, docs/readme-update
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
2. **Make your changes and test:**
|
|
208
|
+
```bash
|
|
209
|
+
pnpm test --run # Run tests
|
|
210
|
+
pnpm typecheck # Type check
|
|
211
|
+
pnpm lint # Lint code
|
|
212
|
+
pnpm build # Build package
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
3. **Create a changeset** (required for any code changes):
|
|
216
|
+
```bash
|
|
217
|
+
pnpm changeset
|
|
218
|
+
# Select change type:
|
|
219
|
+
# - patch: Bug fixes (0.1.2 → 0.1.3)
|
|
220
|
+
# - minor: New features (0.1.2 → 0.2.0)
|
|
221
|
+
# - major: Breaking changes (0.1.2 → 1.0.0)
|
|
222
|
+
# Write a brief summary of your changes
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
4. **Commit and push:**
|
|
226
|
+
```bash
|
|
227
|
+
git add .
|
|
228
|
+
git commit -m "feat: add amazing feature"
|
|
229
|
+
git push -u origin feature/my-feature
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
5. **Open a Pull Request to `main`:**
|
|
233
|
+
- CI will run automatically (lint, test, typecheck, build)
|
|
234
|
+
- Address any CI failures
|
|
235
|
+
- Wait for review (if required)
|
|
236
|
+
|
|
237
|
+
6. **After your PR is merged:**
|
|
238
|
+
- Changesets bot creates/updates a "Version Packages" PR automatically
|
|
239
|
+
- When "Version Packages" PR is merged → package publishes to npm automatically via OIDC
|
|
240
|
+
|
|
241
|
+
#### For External Contributors (No Write Access)
|
|
242
|
+
|
|
243
|
+
1. **Fork the repository** on GitHub
|
|
244
|
+
2. **Clone your fork:**
|
|
245
|
+
```bash
|
|
246
|
+
git clone https://github.com/YOUR_USERNAME/Discourser-Design-System.git
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
3. **Follow steps 1-5 above** (feature branch, changeset, commit)
|
|
250
|
+
4. **Open a Pull Request** from your fork to our `main` branch
|
|
251
|
+
5. **Wait for maintainer review** - we'll review and merge if approved
|
|
252
|
+
|
|
253
|
+
### Branch Protection
|
|
254
|
+
|
|
255
|
+
- ✅ `main` is protected - all changes require Pull Requests
|
|
256
|
+
- ✅ CI must pass before merging (lint, test, typecheck, build)
|
|
257
|
+
- ✅ Only maintainers can merge to `main`
|
|
258
|
+
- ✅ Releases only happen from `main` via automated workflow
|
|
259
|
+
|
|
260
|
+
### Release Process (Automated)
|
|
261
|
+
|
|
262
|
+
**You don't manually publish!** Our CI/CD handles it:
|
|
263
|
+
|
|
264
|
+
1. **Changesets accumulate** - Multiple PRs can add changesets
|
|
265
|
+
2. **"Version Packages" PR** - Created automatically when changesets exist
|
|
266
|
+
3. **Review changelog** - Check the auto-generated CHANGELOG.md
|
|
267
|
+
4. **Merge "Version Packages" PR** - Triggers automatic npm publish via OIDC
|
|
268
|
+
5. **Published!** - Package is live on npm with provenance
|
|
269
|
+
|
|
270
|
+
### What NOT to Do
|
|
271
|
+
|
|
272
|
+
❌ Don't manually edit version in `package.json` - use `pnpm changeset`
|
|
273
|
+
❌ Don't push directly to `main` - use Pull Requests
|
|
274
|
+
❌ Don't merge without CI passing - wait for checks
|
|
275
|
+
❌ Don't skip changesets - required for tracking changes
|
|
276
|
+
❌ Don't manually run `npm publish` - CI handles it
|
|
277
|
+
|
|
278
|
+
### Questions?
|
|
279
|
+
|
|
280
|
+
- See [`.claude/skills/npm-oidc-publishing/SKILL.md`](.claude/skills/npm-oidc-publishing/SKILL.md) for OIDC setup details
|
|
281
|
+
- See [.github/README.md](.github/README.md) for CI/CD workflow documentation
|
|
282
|
+
- Ask in Discussions or open an Issue
|
|
204
283
|
|
|
205
284
|
## 📄 License
|
|
206
285
|
|
|
@@ -209,5 +288,5 @@ MIT © TastyMakers
|
|
|
209
288
|
## 🔗 Links
|
|
210
289
|
|
|
211
290
|
- [Storybook Documentation](https://tastymakers.github.io/design-system/)
|
|
212
|
-
- [npm Package](https://www.npmjs.com/package/@
|
|
291
|
+
- [npm Package](https://www.npmjs.com/package/@discourser/design-system)
|
|
213
292
|
- [GitHub Repository](https://github.com/tastymakers/design-system)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@discourser/design-system",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Aesthetic-agnostic design system with Panda CSS and Ark UI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"typecheck": "tsc --noEmit",
|
|
67
67
|
"changeset": "changeset",
|
|
68
68
|
"version": "changeset version",
|
|
69
|
-
"release": "pnpm build && changeset publish"
|
|
69
|
+
"release": "pnpm build && changeset publish --access public"
|
|
70
70
|
},
|
|
71
71
|
"peerDependencies": {
|
|
72
72
|
"react": ">=19.0.0",
|
|
@@ -79,6 +79,7 @@
|
|
|
79
79
|
"devDependencies": {
|
|
80
80
|
"@changesets/changelog-github": "^0.5.2",
|
|
81
81
|
"@changesets/cli": "^2.29.8",
|
|
82
|
+
"@eslint/js": "^9.0.0",
|
|
82
83
|
"@material/material-color-utilities": "^0.3.0",
|
|
83
84
|
"@pandacss/dev": "^0.52.0",
|
|
84
85
|
"@storybook/addon-a11y": "^8.5.0",
|
|
@@ -94,7 +95,11 @@
|
|
|
94
95
|
"@vitejs/plugin-react": "^4.3.0",
|
|
95
96
|
"@vitest/ui": "^2.1.9",
|
|
96
97
|
"axe-core": "^4.11.0",
|
|
98
|
+
"@typescript-eslint/eslint-plugin": "^8.0.0",
|
|
99
|
+
"@typescript-eslint/parser": "^8.0.0",
|
|
97
100
|
"eslint": "^9.0.0",
|
|
101
|
+
"eslint-plugin-react": "^7.35.0",
|
|
102
|
+
"eslint-plugin-react-hooks": "^5.0.0",
|
|
98
103
|
"jest-axe": "^10.0.0",
|
|
99
104
|
"jsdom": "^27.4.0",
|
|
100
105
|
"prettier": "^3.3.1",
|
|
@@ -118,6 +123,6 @@
|
|
|
118
123
|
"license": "MIT",
|
|
119
124
|
"repository": {
|
|
120
125
|
"type": "git",
|
|
121
|
-
"url": "https://github.com/
|
|
126
|
+
"url": "https://github.com/Tasty-Maker-Studio/Discourser-Design-System.git"
|
|
122
127
|
}
|
|
123
128
|
}
|