@grampro/kit 2.6.1 → 2.6.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.
Files changed (32) hide show
  1. package/.gbs/skills/gbs-components/SKILL.md +16 -0
  2. package/CHANGELOG.md +64 -0
  3. package/README.md +47 -0
  4. package/package.json +1 -1
  5. package/source/components/accordion/passport.json +1 -1
  6. package/source/components/alert/passport.json +1 -1
  7. package/source/components/avatar/passport.json +1 -1
  8. package/source/components/badge/passport.json +1 -1
  9. package/source/components/breadcrumb/passport.json +1 -1
  10. package/source/components/button/passport.json +1 -1
  11. package/source/components/card/passport.json +1 -1
  12. package/source/components/checkbox/passport.json +1 -1
  13. package/source/components/combobox/passport.json +1 -1
  14. package/source/components/data-grid/passport.json +1 -1
  15. package/source/components/date-picker/passport.json +1 -1
  16. package/source/components/dialog/passport.json +1 -1
  17. package/source/components/file-uploader/passport.json +1 -1
  18. package/source/components/input/passport.json +1 -1
  19. package/source/components/menu/passport.json +1 -1
  20. package/source/components/modal/passport.json +1 -1
  21. package/source/components/number-input/passport.json +1 -1
  22. package/source/components/popover/passport.json +1 -1
  23. package/source/components/progress/passport.json +1 -1
  24. package/source/components/radio-group/passport.json +1 -1
  25. package/source/components/skeleton/passport.json +1 -1
  26. package/source/components/spinner/passport.json +1 -1
  27. package/source/components/switch/passport.json +1 -1
  28. package/source/components/tabs/passport.json +1 -1
  29. package/source/components/textarea/passport.json +1 -1
  30. package/source/components/toaster/passport.json +1 -1
  31. package/source/components/tooltip/passport.json +1 -1
  32. package/tools/mcp/README.md +10 -1
@@ -6,6 +6,22 @@ autoAttach: ["src/**/*.tsx", "src/**/*.jsx", "app/**/*.tsx", "components/**/*.ts
6
6
 
7
7
  # GBS components (2.0 beta)
8
8
 
9
+ ## If the MCP server is connected
10
+
11
+ This file is a summary. The `grampro` MCP server answers from passports
12
+ generated from the component source, so where the two differ it is right
13
+ and this is stale. When its tools are available:
14
+
15
+ - **`get_component <Name>`** before writing a component — every prop with
16
+ its type, the values a union accepts, which props are required, handler
17
+ signatures. Do not write a prop you have not read there.
18
+ - **`validate_usage`** on the JSX before reporting back. It catches props
19
+ invented from memory, which is the one failure a passport cannot prevent.
20
+ - **`figma_frame`** to read a design, from a `designFile` path or a Figma
21
+ URL, when building from one.
22
+
23
+ Neither needs the other installed. Without the server this file is what
24
+ you have, and everything below still applies.
9
25
  ## Install before you import
10
26
 
11
27
  Not an npm dependency — the CLI **copies source into the repo**:
package/CHANGELOG.md CHANGED
@@ -1,5 +1,69 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.6.3
4
+
5
+ ### Fixed
6
+
7
+ **The text LLMs read was teaching a deprecated command.** `llms.txt` has a
8
+ hand-written preamble, so it lagged behind the CLI: it told every model
9
+ that reached the site to run `npx @grampro/kit -a <Component>`, a spelling
10
+ the CLI itself marks "Deprecated. Use: add". It now says `add`, and names
11
+ the Figma plugin, the whole-design export and `designFile`, none of which
12
+ it mentioned.
13
+
14
+ **The plugin's install link was invisible to every LLM.** It is rendered by
15
+ a component, and the Markdown conversion passed that through verbatim — so
16
+ `llms-full.txt` and every `.md` page carried a dangling `<FigmaPlugin />`
17
+ tag where the URL should have been, and the plugin's address appeared
18
+ nowhere a model could read it. The conversion emits a Markdown link now,
19
+ and the URL lives in one place so the button and the converter cannot
20
+ disagree about it.
21
+
22
+ **The Figma plugin's listing is in review**, which Figma is quoting at a
23
+ few weeks. Every place that links it now says so and gives the interim
24
+ path: clone the repository and import `figma-plugin/manifest.json` through
25
+ **Plugins → Development → Import plugin from manifest...** in the desktop
26
+ app. The build is committed, so there is nothing to compile.
27
+
28
+ **Six links in the docs went nowhere.** `datagrid.mdx` and
29
+ `fileuploader.mdx` pointed at `#column-options`, `#grid-api-ref`,
30
+ `#server-side-pagination`, `#upload-protocol`, `#custom-transport` and
31
+ `#server-implementation` as same-page anchors. Those sections moved to
32
+ child pages when the docs were split and the links were never updated, so
33
+ they had been doing nothing since. They point at the child pages now.
34
+
35
+ ### Changed
36
+
37
+ **Every command is listed in one place.** `list` and `passport` appeared
38
+ in no user-facing documentation at all, and the rest were scattered across
39
+ three pages, so there was nowhere to look to find out what the CLI does.
40
+ The README now carries the lot in a table.
41
+
42
+ ## 2.6.2
43
+
44
+ ### Changed
45
+
46
+ **The agent skill now knows the MCP server exists.** It described the
47
+ component library and never mentioned the server, so an agent holding both
48
+ had nothing to tell it which to trust. The skill is a summary; the server
49
+ answers from passports generated from the source, so where they differ the
50
+ server is right and the skill is stale — and it now says so, along with
51
+ calling `get_component` before writing a component and `validate_usage`
52
+ before reporting back.
53
+
54
+ The only previous mention of "MCP" in the skill was WebMCP, the DataGrid's
55
+ browser-agent surface, which is a different thing entirely.
56
+
57
+ **Neither needs the other, and the docs now say so.** The server carries
58
+ its own copy of the guidance inside the package, so `get_guidance` answers
59
+ in a project with no `.gbs/` folder at all. What they do together is the
60
+ useful part: the skill is always in an agent's context and the server is
61
+ not, so the skill is what tells an agent to ask and the server is what it
62
+ asks.
63
+
64
+ The two pages now read in the order they are used — Theming, Agent skill,
65
+ MCP server.
66
+
3
67
  ## 2.6.1
4
68
 
5
69
  ### Changed
package/README.md CHANGED
@@ -80,6 +80,21 @@ Each component also has a **framework-free core** — `createDialogStore()`,
80
80
  `createGridEngine()` — with no React imports, usable on a server. That part is
81
81
  genuinely headless, and the component READMEs document it under "Headless use".
82
82
 
83
+ ## Commands
84
+
85
+ | | |
86
+ | --- | --- |
87
+ | `add <Component>...` | Copy components into the project. `--dest` chooses where; `--legacy` reaches the 1.x set. |
88
+ | `list` | What is available to add. |
89
+ | `skill` | Install the agent skill. `--for claude,codex,antigravity` narrows it. |
90
+ | `mcp` | Run the MCP server. Agents start this themselves; you rarely type it. |
91
+ | `mcp install` | Write the server's configuration for Claude Code, Codex and Cursor. |
92
+ | `secret set figma` | Store a Figma token in the OS credential store. Also `get`, `list`, `remove`. |
93
+ | `design <file>` | Split a whole-design Figma export into a folder of screens. |
94
+ | `passport --check` | Fail if a passport has drifted from its source. For CI, and after forking a component. |
95
+
96
+ `npx @grampro/kit <command>`, or `grampro-kit` once it is a dev dependency.
97
+
83
98
  ## Documentation
84
99
 
85
100
  [kit.gramproindia.com](https://kit.gramproindia.com) — usage and props per
@@ -122,6 +137,38 @@ takes. Full walkthrough, including a prompt to paste:
122
137
  [kit.gramproindia.com/mcp-server](https://kit.gramproindia.com/mcp-server).
123
138
  Details in [`tools/mcp/README.md`](tools/mcp/README.md).
124
139
 
140
+ ## Figma plugin
141
+
142
+ [**Grampro Kit on the Figma Community**](https://www.figma.com/community/plugin/1692828324805361551)
143
+
144
+ > In review — Figma is quoting a few weeks. Until it clears, clone this
145
+ > repository and import `figma-plugin/manifest.json` through **Plugins →
146
+ > Development → Import plugin from manifest...** in the Figma desktop app.
147
+ > The build is committed, so there is nothing to compile.
148
+
149
+ Two jobs. It generates the whole design system inside Figma — 53 variables
150
+ across light and dark, 13 text styles, 38 component sets — and it exports
151
+ screens as JSON a coding agent can build from.
152
+
153
+ ```bash
154
+ # in Figma: Grampro Kit → Export all screens for an agent → Save .json
155
+ npx @grampro/kit design ./design.json
156
+ ```
157
+
158
+ ```text
159
+ design/
160
+ purchase-orders.json
161
+ suppliers.json
162
+ index.json every screen, the shared theme, the regions that repeat
163
+ ```
164
+
165
+ The agent reads `index.json` to plan, then builds one screen at a time
166
+ against `figma_frame`, `get_component` and `validate_usage`. It needs no
167
+ Figma API token and makes no network requests of any kind.
168
+
169
+ Source is in [`figma-plugin/`](figma-plugin/); the published listing is
170
+ what to install.
171
+
125
172
  ## Agent skill
126
173
 
127
174
  Install the skill once per project so a coding agent uses these components
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@grampro/kit",
3
- "version": "2.6.1",
3
+ "version": "2.6.3",
4
4
  "description": "GramproKit \u2014 an agent-native UI runtime for React. Copy-in components you own, each publishing a contract that software can read.",
5
5
  "type": "module",
6
6
  "files": [
@@ -10,7 +10,7 @@
10
10
  ]
11
11
  },
12
12
  "source": {
13
- "libraryVersion": "2.6.1",
13
+ "libraryVersion": "2.6.3",
14
14
  "files": [
15
15
  "core/index.ts",
16
16
  "core/open.ts",
@@ -8,7 +8,7 @@
8
8
  ]
9
9
  },
10
10
  "source": {
11
- "libraryVersion": "2.6.1",
11
+ "libraryVersion": "2.6.3",
12
12
  "files": [
13
13
  "core/index.ts",
14
14
  "core/live.ts",
@@ -9,7 +9,7 @@
9
9
  ]
10
10
  },
11
11
  "source": {
12
- "libraryVersion": "2.6.1",
12
+ "libraryVersion": "2.6.3",
13
13
  "files": [
14
14
  "core/identity.ts",
15
15
  "core/index.ts",
@@ -9,7 +9,7 @@
9
9
  ]
10
10
  },
11
11
  "source": {
12
- "libraryVersion": "2.6.1",
12
+ "libraryVersion": "2.6.3",
13
13
  "files": [
14
14
  "core/count.ts",
15
15
  "core/index.ts",
@@ -8,7 +8,7 @@
8
8
  ]
9
9
  },
10
10
  "source": {
11
- "libraryVersion": "2.6.1",
11
+ "libraryVersion": "2.6.3",
12
12
  "files": [
13
13
  "core/index.ts",
14
14
  "core/trail.ts",
@@ -8,7 +8,7 @@
8
8
  ]
9
9
  },
10
10
  "source": {
11
- "libraryVersion": "2.6.1",
11
+ "libraryVersion": "2.6.3",
12
12
  "files": [
13
13
  "core/index.ts",
14
14
  "core/state.ts",
@@ -12,7 +12,7 @@
12
12
  ]
13
13
  },
14
14
  "source": {
15
- "libraryVersion": "2.6.1",
15
+ "libraryVersion": "2.6.3",
16
16
  "files": [
17
17
  "core/index.ts",
18
18
  "core/trend.ts",
@@ -10,7 +10,7 @@
10
10
  ]
11
11
  },
12
12
  "source": {
13
- "libraryVersion": "2.6.1",
13
+ "libraryVersion": "2.6.3",
14
14
  "files": [
15
15
  "core/group.ts",
16
16
  "core/index.ts",
@@ -9,7 +9,7 @@
9
9
  ]
10
10
  },
11
11
  "source": {
12
- "libraryVersion": "2.6.1",
12
+ "libraryVersion": "2.6.3",
13
13
  "files": [
14
14
  "core/filter.ts",
15
15
  "core/index.ts",
@@ -14,7 +14,7 @@
14
14
  ]
15
15
  },
16
16
  "source": {
17
- "libraryVersion": "2.6.1",
17
+ "libraryVersion": "2.6.3",
18
18
  "files": [
19
19
  "agent/coerce.ts",
20
20
  "agent/contract.ts",
@@ -10,7 +10,7 @@
10
10
  ]
11
11
  },
12
12
  "source": {
13
- "libraryVersion": "2.6.1",
13
+ "libraryVersion": "2.6.3",
14
14
  "files": [
15
15
  "core/calendar.ts",
16
16
  "core/format.ts",
@@ -9,7 +9,7 @@
9
9
  ]
10
10
  },
11
11
  "source": {
12
- "libraryVersion": "2.6.1",
12
+ "libraryVersion": "2.6.3",
13
13
  "files": [
14
14
  "core/api.ts",
15
15
  "core/dialog.ts",
@@ -13,7 +13,7 @@
13
13
  ]
14
14
  },
15
15
  "source": {
16
- "libraryVersion": "2.6.1",
16
+ "libraryVersion": "2.6.3",
17
17
  "files": [
18
18
  "core/format.ts",
19
19
  "core/index.ts",
@@ -9,7 +9,7 @@
9
9
  ]
10
10
  },
11
11
  "source": {
12
- "libraryVersion": "2.6.1",
12
+ "libraryVersion": "2.6.3",
13
13
  "files": [
14
14
  "core/count.ts",
15
15
  "core/index.ts",
@@ -16,7 +16,7 @@
16
16
  ]
17
17
  },
18
18
  "source": {
19
- "libraryVersion": "2.6.1",
19
+ "libraryVersion": "2.6.3",
20
20
  "files": [
21
21
  "core/index.ts",
22
22
  "core/navigation.ts",
@@ -8,7 +8,7 @@
8
8
  ]
9
9
  },
10
10
  "source": {
11
- "libraryVersion": "2.6.1",
11
+ "libraryVersion": "2.6.3",
12
12
  "files": [
13
13
  "core/dismiss.ts",
14
14
  "core/index.ts",
@@ -8,7 +8,7 @@
8
8
  ]
9
9
  },
10
10
  "source": {
11
- "libraryVersion": "2.6.1",
11
+ "libraryVersion": "2.6.3",
12
12
  "files": [
13
13
  "core/format.ts",
14
14
  "core/index.ts",
@@ -8,7 +8,7 @@
8
8
  ]
9
9
  },
10
10
  "source": {
11
- "libraryVersion": "2.6.1",
11
+ "libraryVersion": "2.6.3",
12
12
  "files": [
13
13
  "core/index.ts",
14
14
  "core/types.ts",
@@ -9,7 +9,7 @@
9
9
  ]
10
10
  },
11
11
  "source": {
12
- "libraryVersion": "2.6.1",
12
+ "libraryVersion": "2.6.3",
13
13
  "files": [
14
14
  "core/index.ts",
15
15
  "core/progress.ts",
@@ -10,7 +10,7 @@
10
10
  ]
11
11
  },
12
12
  "source": {
13
- "libraryVersion": "2.6.1",
13
+ "libraryVersion": "2.6.3",
14
14
  "files": [
15
15
  "core/group.ts",
16
16
  "core/index.ts",
@@ -9,7 +9,7 @@
9
9
  ]
10
10
  },
11
11
  "source": {
12
- "libraryVersion": "2.6.1",
12
+ "libraryVersion": "2.6.3",
13
13
  "files": [
14
14
  "core/index.ts",
15
15
  "core/lines.ts",
@@ -8,7 +8,7 @@
8
8
  ]
9
9
  },
10
10
  "source": {
11
- "libraryVersion": "2.6.1",
11
+ "libraryVersion": "2.6.3",
12
12
  "files": [
13
13
  "core/index.ts",
14
14
  "core/types.ts",
@@ -8,7 +8,7 @@
8
8
  ]
9
9
  },
10
10
  "source": {
11
- "libraryVersion": "2.6.1",
11
+ "libraryVersion": "2.6.3",
12
12
  "files": [
13
13
  "core/index.ts",
14
14
  "core/toggle.ts",
@@ -12,7 +12,7 @@
12
12
  ]
13
13
  },
14
14
  "source": {
15
- "libraryVersion": "2.6.1",
15
+ "libraryVersion": "2.6.3",
16
16
  "files": [
17
17
  "core/index.ts",
18
18
  "core/navigation.ts",
@@ -8,7 +8,7 @@
8
8
  ]
9
9
  },
10
10
  "source": {
11
- "libraryVersion": "2.6.1",
11
+ "libraryVersion": "2.6.3",
12
12
  "files": [
13
13
  "core/count.ts",
14
14
  "core/index.ts",
@@ -11,7 +11,7 @@
11
11
  ]
12
12
  },
13
13
  "source": {
14
- "libraryVersion": "2.6.1",
14
+ "libraryVersion": "2.6.3",
15
15
  "files": [
16
16
  "core/api.ts",
17
17
  "core/index.ts",
@@ -8,7 +8,7 @@
8
8
  ]
9
9
  },
10
10
  "source": {
11
- "libraryVersion": "2.6.1",
11
+ "libraryVersion": "2.6.3",
12
12
  "files": [
13
13
  "core/index.ts",
14
14
  "core/types.ts",
@@ -127,7 +127,16 @@ invention, and this catches it:
127
127
 
128
128
  ## A whole design at once
129
129
 
130
- In Figma, **Grampro Kit → Export all screens for an agent** walks every
130
+ Install [Grampro Kit from the Figma Community](https://www.figma.com/community/plugin/1692828324805361551).
131
+
132
+ > The listing is in review, which Figma is quoting at a few weeks. Until it
133
+ > clears: clone the repository and, in the Figma **desktop** app, use
134
+ > **Plugins → Development → Import plugin from manifest...** on
135
+ > `figma-plugin/manifest.json`. The build is committed, so there is nothing
136
+ > to compile.
137
+
138
+ Then
139
+ **Grampro Kit → Export all screens for an agent** walks every
131
140
  page and exports each top-level frame, with one set of theme values read
132
141
  across the whole design rather than guessed per frame. Save it, then:
133
142