@linktr.ee/arbor-mcp 0.6.0 → 0.7.0

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 (2) hide show
  1. package/dist/index.js +51 -1
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -6178,6 +6178,7 @@ function coerceEntry(raw) {
6178
6178
  notWhen: asStringArray(r.notWhen),
6179
6179
  disambiguateFrom: asDisambiguations(r.disambiguateFrom),
6180
6180
  guideline: typeof r.guideline === "string" ? r.guideline : null,
6181
+ implementation: typeof r.implementation === "string" ? r.implementation : null,
6181
6182
  decisions: asStringArray(r.decisions)
6182
6183
  };
6183
6184
  }
@@ -6291,7 +6292,7 @@ var listComponentsTool = {
6291
6292
  // src/tools/get-component.ts
6292
6293
  var TOOL_NAME4 = "arbor_get_component";
6293
6294
  var TOOL_TITLE4 = "Get one Arbor component";
6294
- var TOOL_DESCRIPTION4 = "Get a single Arbor component's metadata by name (case-insensitive) or id (name, id, description) PLUS its intention overlay \u2014 lifecycle status (shipped | in-progress | design-only | deprecated | researched-not-shipped), when to use it, when NOT to (and what to use instead), and what it is commonly confused with. Intention comes from Arbor's source of truth, so a design-only component absent from the live design data still resolves. Read-only; matches top-level components, not Figma variants. Does NOT return token values or rendered source \u2014 use the shadcn registry / Storybook for implementation and arbor_open_in_playroom for a runnable snippet. Does NOT change anything.";
6295
+ var TOOL_DESCRIPTION4 = "Get a single Arbor component's metadata by name (case-insensitive) or id (name, id, description) PLUS its intention overlay \u2014 lifecycle status (shipped | in-progress | design-only | deprecated | researched-not-shipped), when to use it, when NOT to (and what to use instead), what it is commonly confused with, and repo paths to its guideline and (when present) agent implementation guidance. Intention comes from Arbor's source of truth, so a design-only component absent from the live design data still resolves. Read-only; matches top-level components, not Figma variants. Does NOT return token values or rendered source \u2014 use the shadcn registry / Storybook for implementation and arbor_open_in_playroom for a runnable snippet. Does NOT change anything.";
6295
6296
  var inputSchema4 = external_exports.object({
6296
6297
  name: external_exports.string().trim().min(1).max(100).optional().describe('Component name (case-insensitive), e.g. "Button"'),
6297
6298
  id: external_exports.string().trim().min(1).max(100).optional().describe("Supernova component id"),
@@ -6313,6 +6314,7 @@ var intentionSchema = external_exports.object({
6313
6314
  notWhen: external_exports.array(external_exports.string()).describe("When NOT to reach for it, ideally naming the better alternative"),
6314
6315
  disambiguateFrom: external_exports.array(disambiguationSchema).describe("Things this is commonly confused with"),
6315
6316
  guideline: external_exports.string().nullable().describe("Repo-relative path to the long-form guideline, when one exists"),
6317
+ implementation: external_exports.string().nullable().describe("Repo-relative path to the agent-facing implementation guidance (code-correctness + a11y rules), when one exists"),
6316
6318
  decisions: external_exports.array(external_exports.string()).describe("Decision-log ids (DL-NN) that explain this intention")
6317
6319
  });
6318
6320
  var outputSchema4 = external_exports.object({
@@ -6337,6 +6339,7 @@ async function resolveIntention(lookupName, load) {
6337
6339
  notWhen: match.notWhen,
6338
6340
  disambiguateFrom: match.disambiguateFrom.map((d) => ({ component: d.component, distinction: d.distinction })),
6339
6341
  guideline: match.guideline,
6342
+ implementation: match.implementation,
6340
6343
  decisions: match.decisions
6341
6344
  };
6342
6345
  return { intention, intentionSource: "remote" };
@@ -6932,6 +6935,22 @@ var compositions_default = [
6932
6935
  name: "NotificationBadge",
6933
6936
  code: "<NotificationBadge count={3} />"
6934
6937
  },
6938
+ // ── IndicatorBadge ──
6939
+ {
6940
+ group: "IndicatorBadge",
6941
+ name: "IndicatorBadge (count)",
6942
+ code: "<IndicatorBadge count={5} />"
6943
+ },
6944
+ {
6945
+ group: "IndicatorBadge",
6946
+ name: "IndicatorBadge (dot)",
6947
+ code: '<IndicatorBadge dot aria-label="Unread" />'
6948
+ },
6949
+ {
6950
+ group: "IndicatorBadge",
6951
+ name: "IndicatorBadge (custom color)",
6952
+ code: '<IndicatorBadge count={5} color="#7B61FF" />'
6953
+ },
6935
6954
  // ── Button ──
6936
6955
  {
6937
6956
  group: "Button",
@@ -6965,6 +6984,31 @@ var compositions_default = [
6965
6984
  <Button variant="secondary">Cancel</Button>
6966
6985
  <Button>Save changes</Button>
6967
6986
  </div>`
6987
+ },
6988
+ // ── ButtonGroup ──
6989
+ {
6990
+ group: "ButtonGroup",
6991
+ name: "ButtonGroup (confirm / cancel)",
6992
+ code: `<ButtonGroup aria-label="Save changes">
6993
+ <Button variant="secondary">Cancel</Button>
6994
+ <Button>Save changes</Button>
6995
+ </ButtonGroup>`
6996
+ },
6997
+ {
6998
+ group: "ButtonGroup",
6999
+ name: "ButtonGroup (stacked)",
7000
+ code: `<ButtonGroup stacked aria-label="Start trial or decide later">
7001
+ <Button variant="accent">Start 7-day free trial</Button>
7002
+ <Button variant="ghost">Decide later</Button>
7003
+ </ButtonGroup>`
7004
+ },
7005
+ {
7006
+ group: "ButtonGroup",
7007
+ name: "ButtonGroup (auto width)",
7008
+ code: `<ButtonGroup fullWidth={false} aria-label="Discard or update">
7009
+ <Button variant="ghost">Discard changes</Button>
7010
+ <Button>Update everywhere</Button>
7011
+ </ButtonGroup>`
6968
7012
  },
6969
7013
  // ── CardSelect ──
6970
7014
  {
@@ -7195,6 +7239,12 @@ var compositions_default = [
7195
7239
  </RadioGroup>
7196
7240
  </Fieldset>`
7197
7241
  },
7242
+ // ── FileUpload ──
7243
+ {
7244
+ group: "FileUpload",
7245
+ name: "FileUpload",
7246
+ code: '<div className="w-full max-w-md"><FileUpload label="Select files to upload" supportingText="PDF, PNG, or JPG \u2014 up to 100MB each" /></div>'
7247
+ },
7198
7248
  // ── HeaderBar ──
7199
7249
  // Maps to figma-mappings `HeaderBar` (node 5223-5837). Title + back-button
7200
7250
  // is the canonical small variant; HeaderBar.stories.tsx covers the full
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@linktr.ee/arbor-mcp",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Model Context Protocol server exposing Arbor design system tools: Playroom snippets, Figma→code sync health, UX-writing checks, decision-log lookup, and federated component/version metadata.",
5
5
  "keywords": [
6
6
  "arbor",