@worldresources/wri-design-systems 2.195.1 → 2.196.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 +7 -10
- package/agents/setup-ai.mjs +28 -12
- package/agents/setup-ai.sh +14 -9
- package/agents/skills/a11y-checker/SKILL.md +2 -2
- package/dist/index.cjs.js +245 -152
- package/dist/index.d.ts +30 -1
- package/dist/index.esm.js +463 -370
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -46,23 +46,21 @@ ds setup-ai
|
|
|
46
46
|
|
|
47
47
|
This will:
|
|
48
48
|
|
|
49
|
-
- Install / update AI instruction files (these may be overwritten):
|
|
50
|
-
- `AGENTS.md` content distributed as: `CLAUDE.md`, `GEMINI.md`, `.geminirules`
|
|
51
49
|
- Configure IDE integrations when detected:
|
|
52
50
|
- Cursor: writes `.cursor/rules` and creates `.cursor/mcp.json` (skips if it already exists)
|
|
53
|
-
- VS Code / GitHub Copilot: writes `.github/copilot-instructions.md` and creates `.vscode/mcp.json` (skips if it already exists)
|
|
51
|
+
- VS Code / GitHub Copilot: writes `.github/copilot-instructions.md`, `.github/instructions/wri-ds.instructions.md` (if available), and creates `.vscode/mcp.json` (skips if it already exists)
|
|
54
52
|
- Windsurf: writes `.windsurfrules`
|
|
55
53
|
- Cline: writes `.clinerules`
|
|
54
|
+
- Automatically install helper skills:
|
|
55
|
+
- Copies the `ds-ui-creator` skill into `.gemini/skills/ds-ui-creator` and `.claude/skills/ds-ui-creator`
|
|
56
56
|
- Ensure a `.gitignore` block is present (creates `.gitignore` if missing; appends once and never duplicates):
|
|
57
|
-
- `CLAUDE.md`
|
|
58
57
|
- `.windsurfrules`
|
|
59
58
|
- `.clinerules`
|
|
60
59
|
- `.github/copilot-instructions.md`
|
|
60
|
+
- `.github/instructions/wri-ds.instructions.md`
|
|
61
61
|
- `.cursor/rules`
|
|
62
62
|
- `.cursor/mcp.json`
|
|
63
63
|
- `.vscode/mcp.json`
|
|
64
|
-
- `GEMINI.md`
|
|
65
|
-
- `.geminirules`
|
|
66
64
|
|
|
67
65
|
Optional: run it against a specific path:
|
|
68
66
|
|
|
@@ -453,6 +451,7 @@ line-height: ${getThemedLineHeight(600)};
|
|
|
453
451
|
- [Pagination](https://github.com/wri/wri-design-systems/tree/main/src/components/Navigation/Pagination)
|
|
454
452
|
- [Search](https://github.com/wri/wri-design-systems/tree/main/src/components/Navigation/Search)
|
|
455
453
|
- [Tab Bar](https://github.com/wri/wri-design-systems/tree/main/src/components/Navigation/TabBar)
|
|
454
|
+
- [Mobile Search](https://github.com/wri/wri-design-systems/tree/main/src/components/Navigation/MobileSearch)
|
|
456
455
|
|
|
457
456
|
## Status
|
|
458
457
|
|
|
@@ -515,12 +514,10 @@ If you are unsure, choose `minor` and leave a note in the PR for review.
|
|
|
515
514
|
|
|
516
515
|
## PR Description With AI Skill
|
|
517
516
|
|
|
518
|
-
To get a solid PR description quickly, use the `pr-
|
|
517
|
+
To get a solid PR description quickly, use the [`pr-description`](agents/skills/pr-description/SKILL.md) skill in your AI-enabled editor.
|
|
519
518
|
|
|
520
519
|
1. Ensure your branch is up to date and run:
|
|
521
520
|
`git diff main...HEAD`
|
|
522
|
-
2. Ask the assistant to use `pr-
|
|
521
|
+
2. Ask the assistant to use `pr-description` and summarize the current PR changes. Or ask "create a PR description for my changes"
|
|
523
522
|
3. Paste the generated result into the PR description using this structure:
|
|
524
523
|
`## What`, `## Why`, `## Changes`.
|
|
525
|
-
|
|
526
|
-
The `pr-documentation` skill is defined at [`.gemini/skills/pr-documentation/SKILL.md`](.gemini/skills/pr-documentation/SKILL.md) and [`.claude/skills/pr-documentation/SKILL.md`](.claude/skills/pr-documentation/SKILL.md) and is tailored for this repository workflow.
|
package/agents/setup-ai.mjs
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
writeFileSync,
|
|
11
11
|
readFileSync,
|
|
12
12
|
readdirSync,
|
|
13
|
+
cpSync,
|
|
13
14
|
} from 'fs'
|
|
14
15
|
import { join, dirname, relative, resolve } from 'path'
|
|
15
16
|
import { execSync } from 'child_process'
|
|
@@ -75,13 +76,36 @@ function writeJSON(dest, label, content) {
|
|
|
75
76
|
installed.push(`${label} → ${relative(ROOT, dest)}`)
|
|
76
77
|
}
|
|
77
78
|
|
|
79
|
+
function installSkill(skillName) {
|
|
80
|
+
const srcDir = join(__dirname, 'skills', skillName)
|
|
81
|
+
if (!existsSync(srcDir)) {
|
|
82
|
+
skipped.push(`Skill ${skillName} (source not found)`)
|
|
83
|
+
return
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Install for Gemini/Antigravity
|
|
87
|
+
const destGeminiDir = join(ROOT, '.gemini', 'skills', skillName)
|
|
88
|
+
mkdirSync(destGeminiDir, { recursive: true })
|
|
89
|
+
cpSync(srcDir, destGeminiDir, { recursive: true })
|
|
90
|
+
installed.push(
|
|
91
|
+
`Gemini Skill: ${skillName} → ${relative(ROOT, destGeminiDir)}`,
|
|
92
|
+
)
|
|
93
|
+
|
|
94
|
+
// Install for Claude
|
|
95
|
+
const destClaudeDir = join(ROOT, '.claude', 'skills', skillName)
|
|
96
|
+
mkdirSync(destClaudeDir, { recursive: true })
|
|
97
|
+
cpSync(srcDir, destClaudeDir, { recursive: true })
|
|
98
|
+
installed.push(
|
|
99
|
+
`Claude Skill: ${skillName} → ${relative(ROOT, destClaudeDir)}`,
|
|
100
|
+
)
|
|
101
|
+
}
|
|
102
|
+
|
|
78
103
|
function ensureGitignoreBlock() {
|
|
79
104
|
const gitignorePath = join(ROOT, '.gitignore')
|
|
80
105
|
const marker =
|
|
81
106
|
'# AI setup — generated by agents/setup-ai.js (npx ds setup-ai)'
|
|
82
107
|
const blockLines = [
|
|
83
108
|
marker,
|
|
84
|
-
'CLAUDE.md',
|
|
85
109
|
'.windsurfrules',
|
|
86
110
|
'.clinerules',
|
|
87
111
|
'.github/copilot-instructions.md',
|
|
@@ -89,8 +113,6 @@ function ensureGitignoreBlock() {
|
|
|
89
113
|
'.cursor/rules',
|
|
90
114
|
'.cursor/mcp.json',
|
|
91
115
|
'.vscode/mcp.json',
|
|
92
|
-
'GEMINI.md',
|
|
93
|
-
'.geminirules',
|
|
94
116
|
]
|
|
95
117
|
const block = blockLines.join('\n') + '\n'
|
|
96
118
|
|
|
@@ -153,15 +175,6 @@ const mcpVSCode = {
|
|
|
153
175
|
},
|
|
154
176
|
}
|
|
155
177
|
|
|
156
|
-
// ── IDE detection & file installation ────────────────────────────
|
|
157
|
-
|
|
158
|
-
// Claude Code — always write CLAUDE.md (Claude Code reads both AGENTS.md and CLAUDE.md)
|
|
159
|
-
installFile(join(ROOT, 'CLAUDE.md'), 'Claude Code')
|
|
160
|
-
|
|
161
|
-
// Gemini — always write GEMINI.md and .geminirules for Gemini-based agents
|
|
162
|
-
installFile(join(ROOT, 'GEMINI.md'), 'Gemini')
|
|
163
|
-
installFile(join(ROOT, '.geminirules'), 'Gemini (rules)')
|
|
164
|
-
|
|
165
178
|
// Cursor
|
|
166
179
|
const hasCursor =
|
|
167
180
|
pathExists(HOME, '.cursor') ||
|
|
@@ -219,6 +232,9 @@ if (hasCline) {
|
|
|
219
232
|
skipped.push('Cline (not detected)')
|
|
220
233
|
}
|
|
221
234
|
|
|
235
|
+
// Skills
|
|
236
|
+
installSkill('ds-ui-creator')
|
|
237
|
+
|
|
222
238
|
ensureGitignoreBlock()
|
|
223
239
|
|
|
224
240
|
// ── Summary ───────────────────────────────────────────────────────
|
package/agents/setup-ai.sh
CHANGED
|
@@ -29,15 +29,6 @@ install_file() {
|
|
|
29
29
|
INSTALLED+=("$label → $dest")
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
# ── Claude Code / Codex ────────────────────────────────────────
|
|
33
|
-
# AGENTS.md is already the source file in this directory — no copy needed.
|
|
34
|
-
# CLAUDE.md is a copy for Claude Code (reads both AGENTS.md and CLAUDE.md).
|
|
35
|
-
install_file "$SCRIPT_DIR/CLAUDE.md" "Claude Code (CLAUDE.md)"
|
|
36
|
-
|
|
37
|
-
# ── Gemini ─────────────────────────────────────────────────────
|
|
38
|
-
install_file "$SCRIPT_DIR/GEMINI.md" "Gemini"
|
|
39
|
-
install_file "$SCRIPT_DIR/.geminirules" "Gemini (rules)"
|
|
40
|
-
|
|
41
32
|
|
|
42
33
|
# ── Cursor ─────────────────────────────────────────────────────
|
|
43
34
|
if [ -d "$HOME/.cursor" ] || [ -d "/Applications/Cursor.app" ] || command -v cursor &>/dev/null; then
|
|
@@ -125,6 +116,20 @@ EOF
|
|
|
125
116
|
fi
|
|
126
117
|
fi
|
|
127
118
|
|
|
119
|
+
# ── Skills ─────────────────────────────────────────────────────
|
|
120
|
+
SKILL_SRC="$SCRIPT_DIR/skills/ds-ui-creator"
|
|
121
|
+
if [ -d "$SKILL_SRC" ]; then
|
|
122
|
+
mkdir -p "$SCRIPT_DIR/.gemini/skills/ds-ui-creator"
|
|
123
|
+
cp -R "$SKILL_SRC/" "$SCRIPT_DIR/.gemini/skills/ds-ui-creator/"
|
|
124
|
+
INSTALLED+=("Gemini Skill: ds-ui-creator → .gemini/skills/ds-ui-creator")
|
|
125
|
+
|
|
126
|
+
mkdir -p "$SCRIPT_DIR/.claude/skills/ds-ui-creator"
|
|
127
|
+
cp -R "$SKILL_SRC/" "$SCRIPT_DIR/.claude/skills/ds-ui-creator/"
|
|
128
|
+
INSTALLED+=("Claude Skill: ds-ui-creator → .claude/skills/ds-ui-creator")
|
|
129
|
+
else
|
|
130
|
+
SKIPPED+=("Skill ds-ui-creator (source not found)")
|
|
131
|
+
fi
|
|
132
|
+
|
|
128
133
|
# ── Summary ────────────────────────────────────────────────────
|
|
129
134
|
echo ""
|
|
130
135
|
echo "✅ Installed:"
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: a11y-checker
|
|
3
|
-
description: Reviews UI code (HTML, JSX, TSX,
|
|
3
|
+
description: Reviews UI code (HTML, JSX, TSX, etc.) for accessibility (a11y) compliance across both library development (WRI Design System) and generic web applications, providing concrete guidelines and code-level fixes.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
When running the accessibility checker on any codebase, follow this multi-tiered guide to ensure compliance with universal WCAG standards as well as library-specific rules.
|
|
7
7
|
|
|
8
8
|
## 1. Universal Accessibility Standards (Any Web Project)
|
|
9
9
|
|
|
10
|
-
Apply these rules to any kind of project (plain HTML, native React,
|
|
10
|
+
Apply these rules to any kind of project (plain HTML, native React, or other UI libraries):
|
|
11
11
|
|
|
12
12
|
### Accessible Names & Interactive Elements
|
|
13
13
|
|