sparkdesign 0.4.8 → 0.4.10
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/AGENT_COMPONENT_LIBRARY_QUICKREF.md +117 -0
- package/AI_README.md +7 -2
- package/README.md +4 -1
- package/cli/registry/AGENTS.md +1 -1
- package/cli/registry/agent-manifest.json +4040 -67
- package/cli/registry/basic/accordion.tsx +79 -0
- package/cli/registry/basic/badge.tsx +49 -0
- package/cli/registry/basic/button.tsx +19 -14
- package/cli/registry/basic/calendar.tsx +16 -16
- package/cli/registry/basic/collapsible-card.tsx +10 -1
- package/cli/registry/basic/combobox.tsx +11 -2
- package/cli/registry/basic/date-picker.tsx +3 -2
- package/cli/registry/basic/ellipsis-text.tsx +151 -0
- package/cli/registry/basic/form.tsx +186 -0
- package/cli/registry/basic/icon-button.tsx +12 -4
- package/cli/registry/basic/popover.tsx +19 -2
- package/cli/registry/basic/rating.tsx +161 -0
- package/cli/registry/basic/sidebar.tsx +665 -0
- package/cli/registry/basic/sonner.tsx +10 -10
- package/cli/registry/basic/stepper.tsx +163 -0
- package/cli/registry/basic/timeline.tsx +129 -0
- package/cli/registry/chat/chat-input/compound.tsx +1 -0
- package/cli/registry/chat/permission-card.tsx +1 -1
- package/cli/registry/chat/user-question/compound.tsx +2 -0
- package/cli/registry/meta.json +171 -13
- package/dist/registry/basic/accordion.d.ts +15 -0
- package/dist/registry/basic/badge.d.ts +23 -0
- package/dist/registry/basic/calendar.d.ts +1 -1
- package/dist/registry/basic/combobox.d.ts +2 -1
- package/dist/registry/basic/date-picker.d.ts +2 -2
- package/dist/registry/basic/ellipsis-text.d.ts +45 -0
- package/dist/registry/basic/form.d.ts +23 -0
- package/dist/registry/basic/icon-button.d.ts +15 -2
- package/dist/registry/basic/item.d.ts +1 -1
- package/dist/registry/basic/popover.d.ts +2 -0
- package/dist/registry/basic/rating.d.ts +31 -0
- package/dist/registry/basic/sidebar.d.ts +72 -0
- package/dist/registry/basic/stepper.d.ts +36 -0
- package/dist/registry/basic/tag.d.ts +1 -1
- package/dist/registry/basic/timeline.d.ts +34 -0
- package/dist/spark-design.cjs.js +27 -30
- package/dist/spark-design.es.js +6398 -5130
- package/dist/sparkdesign.css +1 -1
- package/dist/src/components/basic/Accordion/index.d.ts +13 -0
- package/dist/src/components/basic/Badge/index.d.ts +13 -0
- package/dist/src/components/basic/EllipsisText/index.d.ts +4 -36
- package/dist/src/components/basic/Form/index.d.ts +12 -0
- package/dist/src/components/basic/Rating/index.d.ts +13 -0
- package/dist/src/components/basic/Sidebar/index.d.ts +13 -0
- package/dist/src/components/basic/Stepper/index.d.ts +13 -0
- package/dist/src/components/basic/Timeline/index.d.ts +13 -0
- package/dist/src/components/index.d.ts +12 -4
- package/docs/agent/component-selection.md +104 -4
- package/docs/agent/prompt-recipes.md +167 -0
- package/docs/guides/agent-usage.md +213 -0
- package/docs/guides/system-operating-model.md +148 -0
- package/package.json +20 -3
- package/registry/agent-manifest.json +4040 -67
- package/cli/registry/basic/sheet.tsx +0 -18
- package/cli/registry/chat/user-question/UserQuestionCard.tsx +0 -198
- package/cli/registry/chat/user-question/UserQuestionFooter.tsx +0 -66
- package/cli/registry/chat/user-question/UserQuestionHeader.tsx +0 -64
- package/cli/registry/chat/user-question/useUserQuestionState.ts +0 -165
- package/dist/registry/basic/sheet.d.ts +0 -13
- package/dist/registry/chat/user-question/UserQuestionCard.d.ts +0 -36
- package/dist/registry/chat/user-question/UserQuestionFooter.d.ts +0 -24
- package/dist/registry/chat/user-question/UserQuestionHeader.d.ts +0 -26
- package/dist/registry/chat/user-question/useUserQuestionState.d.ts +0 -26
- package/dist/src/components/basic/CollapsibleSection/index.d.ts +0 -43
- package/dist/src/components/basic/Sheet/index.d.ts +0 -13
- package/dist/src/components/chat/Response/StreamingMarkdownBlock.d.ts +0 -12
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
# Spark Design Agent Usage Guide
|
|
2
|
+
|
|
3
|
+
> 给 AI agent / coding agent 的执行指南。目标不是介绍组件库是什么,而是约束“在项目里该怎么正确使用它”。
|
|
4
|
+
|
|
5
|
+
## 1. 默认决策
|
|
6
|
+
|
|
7
|
+
### 1.1 优先级
|
|
8
|
+
|
|
9
|
+
默认优先使用 **CLI 按需引入**:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx sparkdesign@latest add button
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
只有在以下场景才优先考虑整包安装:
|
|
16
|
+
|
|
17
|
+
- 用户明确要求 `npm install sparkdesign`
|
|
18
|
+
- 目标是快速原型,而不是复制源码后再改
|
|
19
|
+
- 运行环境不方便把组件源码拷入项目
|
|
20
|
+
|
|
21
|
+
### 1.2 两条使用路径
|
|
22
|
+
|
|
23
|
+
| 路径 | 适用场景 | Agent 默认行为 |
|
|
24
|
+
|------|----------|----------------|
|
|
25
|
+
| **CLI 按需引入** | 业务项目、需要修改组件源码、希望长期维护本地副本 | **默认优先** |
|
|
26
|
+
| **整包安装** | Showcase、快速试用、低定制场景、只想直接 import | 仅在用户明确要求或项目已采用整包模式时使用 |
|
|
27
|
+
|
|
28
|
+
## 2. CLI 路径怎么用
|
|
29
|
+
|
|
30
|
+
### 2.1 常用命令
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npx sparkdesign@latest init
|
|
34
|
+
npx sparkdesign@latest add button
|
|
35
|
+
npx sparkdesign@latest add response
|
|
36
|
+
npx sparkdesign@latest list
|
|
37
|
+
npx sparkdesign@latest diff button
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### 2.2 生成后的默认路径
|
|
41
|
+
|
|
42
|
+
默认组件会写到:
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
src/components/ui/basic/<name>.tsx
|
|
46
|
+
src/components/ui/chat/<name>.tsx
|
|
47
|
+
src/components/ui/chat/<name>/index.tsx
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
如果项目里已有 `components.json`,以 `aliases.ui` 为准,不要硬猜路径。
|
|
51
|
+
|
|
52
|
+
### 2.3 CLI 路径下的 import 规则
|
|
53
|
+
|
|
54
|
+
默认按以下方式导入:
|
|
55
|
+
|
|
56
|
+
```tsx
|
|
57
|
+
import { Button } from '@/components/ui/basic/button'
|
|
58
|
+
import { Response } from '@/components/ui/chat/response'
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
不要在 CLI 路径下再写:
|
|
62
|
+
|
|
63
|
+
```tsx
|
|
64
|
+
import { Button } from 'sparkdesign'
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
这会把“复制到本地的源码”与“整包运行时”混在一起。
|
|
68
|
+
|
|
69
|
+
## 3. 整包路径怎么用
|
|
70
|
+
|
|
71
|
+
### 3.1 安装与导入
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
npm install sparkdesign
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
```tsx
|
|
78
|
+
import 'sparkdesign/style'
|
|
79
|
+
import { Button, Response } from 'sparkdesign'
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 3.2 整包路径下的样式规则
|
|
83
|
+
|
|
84
|
+
默认优先:
|
|
85
|
+
|
|
86
|
+
```tsx
|
|
87
|
+
import 'sparkdesign/style'
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
只有在消费者自己维护 Tailwind 4 样式管线时,才改用:
|
|
91
|
+
|
|
92
|
+
```tsx
|
|
93
|
+
import 'sparkdesign/theme.css'
|
|
94
|
+
import 'sparkdesign/scale.css'
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## 4. 主题与 Token 硬规则
|
|
98
|
+
|
|
99
|
+
### 4.1 一律使用 design tokens
|
|
100
|
+
|
|
101
|
+
选择 token 前,agent 应优先读取:
|
|
102
|
+
|
|
103
|
+
```tsx
|
|
104
|
+
import ontology from 'sparkdesign/token-ontology.json'
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
仓库内源文件为:
|
|
108
|
+
|
|
109
|
+
```text
|
|
110
|
+
registry/tokens/ontology.json
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
允许:
|
|
114
|
+
|
|
115
|
+
```tsx
|
|
116
|
+
className="bg-primary text-text rounded-md"
|
|
117
|
+
className="px-[var(--spacing-3)]"
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
不允许:
|
|
121
|
+
|
|
122
|
+
```tsx
|
|
123
|
+
className="bg-[#1890FF] text-[#333] rounded-[10px]"
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### 4.2 根节点主题
|
|
127
|
+
|
|
128
|
+
优先在根节点或大容器设置:
|
|
129
|
+
|
|
130
|
+
```tsx
|
|
131
|
+
<div data-theme="light" data-style="neutral" />
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
可选值:
|
|
135
|
+
|
|
136
|
+
- `data-theme`: `light` | `dark` | 自定义主题名
|
|
137
|
+
- `data-style`: `neutral` | `compact` | `soft` | `sharp` | `dense`
|
|
138
|
+
|
|
139
|
+
### 4.3 Portal / 浮层组件
|
|
140
|
+
|
|
141
|
+
Tooltip、DropdownMenu、Toast 这类浮层要考虑 theme/style 继承。若项目已用整包并提供 `ThemeStyleProvider`,优先沿用;不要通过强制 remount 的方式“刷新主题”。
|
|
142
|
+
|
|
143
|
+
## 5. 组件选择规则
|
|
144
|
+
|
|
145
|
+
### 5.0 先读 Agent Manifest
|
|
146
|
+
|
|
147
|
+
设计 / coding agent 在选择组件前,优先读取:
|
|
148
|
+
|
|
149
|
+
```tsx
|
|
150
|
+
import manifest from 'sparkdesign/agent-manifest.json'
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
仓库内源文件为:
|
|
154
|
+
|
|
155
|
+
```text
|
|
156
|
+
registry/agent-manifest.json
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
该 manifest 提供组件 `intent`、`slots`、`states`、`a11y`、`composition`、`antiPatterns` 和常见 `recipes`。选择组件时先按 `intent` 和 `recipes` 匹配,再读源码;不要仅凭组件名相似度决定。
|
|
160
|
+
|
|
161
|
+
### 5.1 Basic vs Chat
|
|
162
|
+
|
|
163
|
+
- `basic/*`: 原子 UI,适合表单、控制、布局、通用信息展示
|
|
164
|
+
- `chat/*`: 对话流组件,适合消息、响应、任务、推理步骤、附件、代码块等
|
|
165
|
+
|
|
166
|
+
### 5.2 不要重复造轮子
|
|
167
|
+
|
|
168
|
+
若以下组件已存在,优先复用:
|
|
169
|
+
|
|
170
|
+
- 通用按钮:`button` / `icon-button`
|
|
171
|
+
- 浮层:`tooltip` / `dropdown-menu` / `alert-dialog`
|
|
172
|
+
- 对话输入:`chat-input`
|
|
173
|
+
- AI 响应:`response`
|
|
174
|
+
- 推理步骤:`reasoning-step`
|
|
175
|
+
- 代码卡片:`code-block-part` / `terminal-code-block-part`
|
|
176
|
+
- 任务与计划:`task-part` / `plan-part`
|
|
177
|
+
|
|
178
|
+
## 6. 改组件时的约束
|
|
179
|
+
|
|
180
|
+
### 6.1 Registry 是 CLI 模板真相
|
|
181
|
+
|
|
182
|
+
若改动会影响 `npx sparkdesign add ...` 的结果,优先检查:
|
|
183
|
+
|
|
184
|
+
- `registry/`
|
|
185
|
+
- `registry/meta.json`
|
|
186
|
+
- `cli/registry/` 是否已由同步脚本刷新
|
|
187
|
+
|
|
188
|
+
### 6.2 根包是唯一发布入口
|
|
189
|
+
|
|
190
|
+
不要从 `cli/` 目录单独发布。
|
|
191
|
+
|
|
192
|
+
正式发布只从仓库根目录执行:
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
npm publish
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
根包会同时带上:
|
|
199
|
+
|
|
200
|
+
- 运行时导出(整包)
|
|
201
|
+
- `bin.sparkdesign -> ./cli/dist/index.js`(CLI)
|
|
202
|
+
|
|
203
|
+
## 7. 给 Agent 的执行清单
|
|
204
|
+
|
|
205
|
+
开始工作前,优先回答这 5 个问题:
|
|
206
|
+
|
|
207
|
+
1. 当前项目是在用 **CLI 本地源码**,还是在用 **整包 import**?
|
|
208
|
+
2. 目标组件属于 `basic` 还是 `chat`?
|
|
209
|
+
3. 是否已经有可复用组件,而不是新建一个相似组件?
|
|
210
|
+
4. 样式是否完全基于 token,而不是硬编码?
|
|
211
|
+
5. 如果会影响 CLI,是否同步检查了 `registry/meta.json` 与发布链路?
|
|
212
|
+
|
|
213
|
+
如果这 5 个问题里有任何一个答不上来,先不要写代码,先补上下文。
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Spark Design Operating Model
|
|
2
|
+
|
|
3
|
+
> The system is excellent only when the implementation, documentation, showcase, registry, and agent contract all describe the same product truth.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
Showcase companion: `#/system-operating-model`.
|
|
8
|
+
|
|
9
|
+
Spark Design should feel like a world-class product system, not a folder of UI parts. Every addition must improve four surfaces at once:
|
|
10
|
+
|
|
11
|
+
- **Product surface:** components are elegant, restrained, accessible, and token-driven.
|
|
12
|
+
- **System surface:** registry, package exports, CLI copies, and metadata stay isomorphic.
|
|
13
|
+
- **Documentation surface:** users can understand when to use a component, how to install it, and how to extend it without reading source first.
|
|
14
|
+
- **Agent surface:** AI tools can select, compose, and verify components from manifest intent instead of guessing from names.
|
|
15
|
+
|
|
16
|
+
## Principles
|
|
17
|
+
|
|
18
|
+
### 1. Quiet Excellence
|
|
19
|
+
|
|
20
|
+
Prefer durable hierarchy over decoration. Components should look precise at rest, clear in motion, and trustworthy under edge cases.
|
|
21
|
+
|
|
22
|
+
Required signals:
|
|
23
|
+
|
|
24
|
+
- Stable spacing, radius, typography, and focus states across all `data-style` values.
|
|
25
|
+
- Semantic color usage through tokens, never one-off palettes in component source.
|
|
26
|
+
- Interaction feedback that clarifies state without delaying work.
|
|
27
|
+
- Empty, loading, disabled, error, and dense-content states handled deliberately.
|
|
28
|
+
|
|
29
|
+
### 2. Isomorphic Maintenance
|
|
30
|
+
|
|
31
|
+
The map must stay aligned with the terrain. A component is not complete until every public surface agrees.
|
|
32
|
+
|
|
33
|
+
Required surfaces:
|
|
34
|
+
|
|
35
|
+
- `registry/` implementation and dependencies.
|
|
36
|
+
- `registry/meta.json` and `cli/registry/meta.json`.
|
|
37
|
+
- `src/components/index.ts` public exports.
|
|
38
|
+
- Showcase config, demo, props table, and localized labels.
|
|
39
|
+
- `registry/agent-manifest.json` intent, slots, states, a11y, recipes, and anti-patterns.
|
|
40
|
+
- P3 headers and P2 module maps when membership changes.
|
|
41
|
+
|
|
42
|
+
### 3. AI-Friendly Semantics
|
|
43
|
+
|
|
44
|
+
Spark should be easy for agents to use correctly under time pressure.
|
|
45
|
+
|
|
46
|
+
Agent-facing data must answer:
|
|
47
|
+
|
|
48
|
+
- What user intent does this component satisfy?
|
|
49
|
+
- When should an agent choose a different component?
|
|
50
|
+
- What slots and states are expected?
|
|
51
|
+
- What accessibility obligations are non-negotiable?
|
|
52
|
+
- Which components compose well together?
|
|
53
|
+
- Which anti-patterns produce generic or unsafe UI?
|
|
54
|
+
|
|
55
|
+
If the manifest cannot answer those questions, update the manifest before treating the component as complete.
|
|
56
|
+
|
|
57
|
+
### 4. Showcase as Product
|
|
58
|
+
|
|
59
|
+
The showcase is the primary trust surface. It should teach by showing real, polished product usage instead of dumping prop variants.
|
|
60
|
+
|
|
61
|
+
Every component page should include:
|
|
62
|
+
|
|
63
|
+
- A strong Overview example that represents the common production use case.
|
|
64
|
+
- One focused block per major dimension: size, state, composition, or variant.
|
|
65
|
+
- Snippets that compile and match the preview.
|
|
66
|
+
- Installation instructions for CLI-first usage.
|
|
67
|
+
- Props that match the actual exported API.
|
|
68
|
+
- Copy that explains when to use the component, not just what props exist.
|
|
69
|
+
|
|
70
|
+
## Component Addition Flow
|
|
71
|
+
|
|
72
|
+
Use this sequence for every new component or public API change:
|
|
73
|
+
|
|
74
|
+
1. **Define intent:** Write the component purpose, non-goals, expected states, and likely compositions.
|
|
75
|
+
2. **Check reuse:** Search existing `basic/*`, `chat/*`, and `agent-manifest.json` before creating anything new.
|
|
76
|
+
3. **Implement in registry:** Keep registry source standalone, tokenized, typed, and free of package-private imports.
|
|
77
|
+
4. **Export publicly:** Add package-facing re-exports under `src/components/` and `src/components/index.ts`.
|
|
78
|
+
5. **Sync registry metadata:** Regenerate and validate `registry/meta.json`; sync CLI registry copies.
|
|
79
|
+
6. **Teach the showcase:** Add demo blocks, config entry, props metadata, and localized page labels.
|
|
80
|
+
7. **Teach agents:** Add or update `registry/agent-manifest.json` with intent, states, a11y, composition, anti-patterns, and hints.
|
|
81
|
+
8. **Update DIP docs:** Refresh P3 headers, P2 maps, and root docs when topology or commands change.
|
|
82
|
+
9. **Verify:** Run the narrow checks that prove the touched surfaces are aligned.
|
|
83
|
+
|
|
84
|
+
## Quality Gates
|
|
85
|
+
|
|
86
|
+
Minimum gates for component work:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
npm run check:agent-manifest
|
|
90
|
+
npm run check:agent-coverage
|
|
91
|
+
npm run check:ai-docs
|
|
92
|
+
npm run check:registry-meta
|
|
93
|
+
npm run check:registry
|
|
94
|
+
npm run check:showcase
|
|
95
|
+
npm run check:showcase-quality
|
|
96
|
+
npm run check:token-antipatterns
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Before publishing or merging broad system work, also run:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
npm run lint
|
|
103
|
+
npm run test:run
|
|
104
|
+
npm run build
|
|
105
|
+
npm run size
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Review Rubric
|
|
109
|
+
|
|
110
|
+
Use this rubric before calling project-wide polish complete:
|
|
111
|
+
|
|
112
|
+
| Area | Passing standard |
|
|
113
|
+
| ---- | ---------------- |
|
|
114
|
+
| Structure | Source of truth is clear; registry, CLI, package exports, and docs agree. |
|
|
115
|
+
| Components | APIs are small, typed, tokenized, accessible, and composed from existing primitives. |
|
|
116
|
+
| Showcase | Pages feel product-grade, scannable, and useful for both beginners and advanced users. |
|
|
117
|
+
| Docs | Guides explain decisions, not only commands; SOPs prevent drift. |
|
|
118
|
+
| AI contract | Manifest and token ontology make correct component selection obvious. |
|
|
119
|
+
| Maintenance | Verification commands prove the actual changed surfaces, not only a narrow build path. |
|
|
120
|
+
|
|
121
|
+
`npm run check:ai-docs` guards the AI-facing semantic layer: package exports,
|
|
122
|
+
published files, relative links, and Showcase companion pages for the operating
|
|
123
|
+
model, prompt recipes, and component selection guide.
|
|
124
|
+
|
|
125
|
+
`npm run check:showcase-quality` guards the public documentation surface:
|
|
126
|
+
registry-to-showcase coverage, demo exports, props metadata, and locale coverage.
|
|
127
|
+
The default props metadata baseline is 70% and should only move upward. The
|
|
128
|
+
Showcase registry config must not keep parallel `legacy*` maps; `categories`,
|
|
129
|
+
`props`, `dependencies`, and `timeline` are the single source of truth. Duplicate
|
|
130
|
+
component keys inside `props` or `dependencies` are blocked because they silently
|
|
131
|
+
overwrite documentation data.
|
|
132
|
+
|
|
133
|
+
## Anti-Patterns
|
|
134
|
+
|
|
135
|
+
- Adding a component because a demo needs one instead of validating reusable intent.
|
|
136
|
+
- Shipping source without CLI registry and metadata alignment.
|
|
137
|
+
- Updating showcase copy without updating agent semantics.
|
|
138
|
+
- Writing a component that looks good only in one theme or one `data-style`.
|
|
139
|
+
- Treating the homepage as marketing while component pages remain weak.
|
|
140
|
+
- Letting docs say "token-driven" while source uses raw colors or arbitrary geometry.
|
|
141
|
+
|
|
142
|
+
## Coverage Ratchet
|
|
143
|
+
|
|
144
|
+
`npm run check:showcase-quality` currently enforces a baseline for component page structure, props metadata, and locale coverage. When props tables or localized copy improve, raise the script thresholds instead of letting quality gains remain informal.
|
|
145
|
+
|
|
146
|
+
## North Star
|
|
147
|
+
|
|
148
|
+
Spark Design should help humans and agents build calm, coherent AI product interfaces. The strongest version of the project is clean enough for beginners, explicit enough for maintainers, and structured enough for AI systems to use without guesswork.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sparkdesign",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Modern React Design System with dual-dimension theme system",
|
|
6
6
|
"keywords": [
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"homepage": "https://spark.design",
|
|
19
19
|
"bin": {
|
|
20
|
-
"sparkdesign": "
|
|
20
|
+
"sparkdesign": "cli/dist/index.js"
|
|
21
21
|
},
|
|
22
22
|
"exports": {
|
|
23
23
|
".": {
|
|
@@ -32,16 +32,26 @@
|
|
|
32
32
|
"./theme-base.css": "./dist/theme-base.css",
|
|
33
33
|
"./agent-manifest.json": "./registry/agent-manifest.json",
|
|
34
34
|
"./token-ontology.json": "./registry/tokens/ontology.json",
|
|
35
|
+
"./ai-readme.md": "./AI_README.md",
|
|
36
|
+
"./agent-quickref.md": "./AGENT_COMPONENT_LIBRARY_QUICKREF.md",
|
|
37
|
+
"./agent-prompt-recipes.md": "./docs/agent/prompt-recipes.md",
|
|
38
|
+
"./agent-component-selection.md": "./docs/agent/component-selection.md",
|
|
39
|
+
"./agent-token-ontology.md": "./docs/agent/token-ontology.md",
|
|
40
|
+
"./system-operating-model.md": "./docs/guides/system-operating-model.md",
|
|
41
|
+
"./agent-usage.md": "./docs/guides/agent-usage.md",
|
|
35
42
|
"./tokens/*": "./dist/tokens/*",
|
|
36
43
|
"./themes/*": "./dist/themes/*",
|
|
37
44
|
"./scale/*": "./dist/scale/*"
|
|
38
45
|
},
|
|
39
46
|
"files": [
|
|
40
47
|
"AI_README.md",
|
|
48
|
+
"AGENT_COMPONENT_LIBRARY_QUICKREF.md",
|
|
41
49
|
"dist",
|
|
42
50
|
"cli/dist",
|
|
43
51
|
"cli/registry",
|
|
44
52
|
"docs/agent",
|
|
53
|
+
"docs/guides/agent-usage.md",
|
|
54
|
+
"docs/guides/system-operating-model.md",
|
|
45
55
|
"registry/agent-manifest.json",
|
|
46
56
|
"registry/tokens/ontology.json"
|
|
47
57
|
],
|
|
@@ -56,10 +66,14 @@
|
|
|
56
66
|
"gen:registry-meta": "node scripts/generate-registry-meta.mjs",
|
|
57
67
|
"check:registry-meta": "node scripts/generate-registry-meta.mjs --check && node scripts/validate-registry-meta.mjs registry && node scripts/validate-registry-meta.mjs cli",
|
|
58
68
|
"check:agent-manifest": "node scripts/validate-agent-manifest.mjs",
|
|
69
|
+
"check:ai-docs": "node scripts/check-ai-docs-package.mjs",
|
|
59
70
|
"check:token-ontology": "node scripts/validate-token-ontology.mjs",
|
|
60
71
|
"check:token-antipatterns": "node scripts/check-token-antipatterns.mjs",
|
|
61
72
|
"check:registry": "node scripts/check-registry-sync.mjs",
|
|
62
73
|
"check:showcase": "node scripts/check-showcase-sync.mjs",
|
|
74
|
+
"check:showcase-quality": "node scripts/check-showcase-quality.mjs",
|
|
75
|
+
"report:agent-coverage": "node scripts/report-agent-manifest-coverage.mjs",
|
|
76
|
+
"check:agent-coverage": "node scripts/report-agent-manifest-coverage.mjs --fail-under=100",
|
|
63
77
|
"gen:demo": "node scripts/gen-demo.mjs",
|
|
64
78
|
"build": "vite build && npx @tailwindcss/cli -i src/lib.css -o dist/sparkdesign.css --minify && tsc -p tsconfig.lib.json && npm run build:cli",
|
|
65
79
|
"build:cli": "cd cli && npm run build",
|
|
@@ -79,7 +93,7 @@
|
|
|
79
93
|
"test:smoke:vite": "node scripts/smoke-test-cli.mjs vite",
|
|
80
94
|
"test:smoke:next": "node scripts/smoke-test-cli.mjs nextjs",
|
|
81
95
|
"test:smoke:add": "node scripts/smoke-test-cli.mjs pure-add",
|
|
82
|
-
"prepublishOnly": "node scripts/generate-registry-meta.mjs && npm run check:agent-manifest && npm run check:token-ontology && npm run check:token-antipatterns && npm run build && node scripts/sync-registry-to-cli.mjs && npm run check:registry-meta"
|
|
96
|
+
"prepublishOnly": "node scripts/generate-registry-meta.mjs && npm run check:agent-manifest && npm run check:agent-coverage && npm run check:ai-docs && npm run check:token-ontology && npm run check:token-antipatterns && npm run check:showcase-quality && npm run build && node scripts/sync-registry-to-cli.mjs && npm run check:registry-meta"
|
|
83
97
|
},
|
|
84
98
|
"peerDependencies": {
|
|
85
99
|
"react": ">=18.0.0",
|
|
@@ -106,6 +120,7 @@
|
|
|
106
120
|
"@radix-ui/react-select": "^2.2.6",
|
|
107
121
|
"@radix-ui/react-separator": "^1.1.8",
|
|
108
122
|
"@radix-ui/react-slider": "^1.3.6",
|
|
123
|
+
"@radix-ui/react-slot": "^1.2.4",
|
|
109
124
|
"@radix-ui/react-switch": "^1.2.6",
|
|
110
125
|
"@radix-ui/react-tabs": "^1.1.2",
|
|
111
126
|
"@radix-ui/react-toggle": "^1.1.10",
|
|
@@ -132,6 +147,7 @@
|
|
|
132
147
|
"prompts": "^2.4.2",
|
|
133
148
|
"radix-ui": "^1.4.3",
|
|
134
149
|
"react-day-picker": "^9.14.0",
|
|
150
|
+
"react-hook-form": "^7.76.0",
|
|
135
151
|
"react-i18next": "^16.5.4",
|
|
136
152
|
"react-markdown": "^10.1.0",
|
|
137
153
|
"react-resizable-panels": "^4.6.2",
|
|
@@ -163,6 +179,7 @@
|
|
|
163
179
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
164
180
|
"eslint-plugin-react-refresh": "^0.4.24",
|
|
165
181
|
"globals": "^16.5.0",
|
|
182
|
+
"jsdom": "^29.1.1",
|
|
166
183
|
"size-limit": "^12.0.0",
|
|
167
184
|
"typescript": "~5.9.3",
|
|
168
185
|
"typescript-eslint": "^8.48.0",
|