@actioneer/ads-mcp 1.0.7 → 1.0.8

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/manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actioneer/ads",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "importPath": "@actioneer/ads",
5
5
  "styleImport": "@import \"@actioneer/ads/styles.css\";",
6
6
  "families": [
@@ -16,9 +16,9 @@
16
16
  "Chat"
17
17
  ],
18
18
  "counts": {
19
- "total": 742,
19
+ "total": 743,
20
20
  "component": 323,
21
- "type": 311,
21
+ "type": 312,
22
22
  "hook": 10,
23
23
  "util": 98
24
24
  },
@@ -557,7 +557,7 @@
557
557
  "utilities": [
558
558
  "ring-ring"
559
559
  ],
560
- "description": "Focus ring and scrim, both translucent warm ink."
560
+ "description": "Focus ring and scrim, both translucent neutral ink."
561
561
  },
562
562
  {
563
563
  "name": "--color-overlay",
@@ -567,7 +567,7 @@
567
567
  "text-overlay",
568
568
  "border-overlay"
569
569
  ],
570
- "description": "Focus ring and scrim, both translucent warm ink."
570
+ "description": "Focus ring and scrim, both translucent neutral ink."
571
571
  }
572
572
  ],
573
573
  "exports": [
@@ -776,6 +776,7 @@
776
776
  "topLabel",
777
777
  "bottomLabel",
778
778
  "downloadName",
779
+ "look",
779
780
  "className"
780
781
  ]
781
782
  },
@@ -920,6 +921,12 @@
920
921
  "module": "file-dropzone",
921
922
  "showcaseUrl": "https://ads.actioneer.dev/#/review/file-dropzone",
922
923
  "variants": {
924
+ "hasFiles": {
925
+ "values": [
926
+ "true",
927
+ "false"
928
+ ]
929
+ },
923
930
  "isDragging": {
924
931
  "values": [
925
932
  "true",
@@ -1172,6 +1179,13 @@
1172
1179
  "className"
1173
1180
  ]
1174
1181
  },
1182
+ {
1183
+ "name": "AudioWaveformLook",
1184
+ "family": "Foundations",
1185
+ "kind": "type",
1186
+ "importPath": "@actioneer/ads",
1187
+ "module": "audio-waveform"
1188
+ },
1175
1189
  {
1176
1190
  "name": "AudioWaveformProps",
1177
1191
  "family": "Foundations",
@@ -5146,7 +5160,7 @@
5146
5160
  ],
5147
5161
  "default": "default",
5148
5162
  "options": {
5149
- "default": "Neutral heads-up with a warm-grey icon tile and no urgency signaled.",
5163
+ "default": "Neutral heads-up with a neutral icon and no urgency signaled.",
5150
5164
  "success": "Grass green confirms a completed or positive outcome.",
5151
5165
  "warning": "Flags a non-blocking risk or upcoming issue (e.g. scheduled maintenance), amber accent.",
5152
5166
  "danger": "Signals a failure or blocking problem (e.g. connection error) needing attention, red accent.",
@@ -8437,32 +8451,12 @@
8437
8451
  "value": "none"
8438
8452
  },
8439
8453
  {
8440
- "name": "100",
8441
- "value": "0 1px 0 0 rgb(32 32 32 / 0.07)"
8442
- },
8443
- {
8444
- "name": "200",
8445
- "value": "0 3px 1px -1px rgb(32 32 32 / 0.07)"
8446
- },
8447
- {
8448
- "name": "300",
8449
- "value": "0 4px 6px -2px rgb(32 32 32 / 0.2)"
8450
- },
8451
- {
8452
- "name": "400",
8453
- "value": "0 8px 16px -4px rgb(32 32 32 / 0.22)"
8454
- },
8455
- {
8456
- "name": "500",
8457
- "value": "0 12px 20px -8px rgb(32 32 32 / 0.24)"
8458
- },
8459
- {
8460
- "name": "600",
8461
- "value": "0 20px 20px -8px rgb(32 32 32 / 0.28)"
8454
+ "name": "float",
8455
+ "value": "0 0 0 1px rgb(32 32 32 / 0.04), 0 2px 4px rgb(32 32 32 / 0.04), 0 8px 20px -4px rgb(32 32 32 / 0.10)"
8462
8456
  },
8463
8457
  {
8464
- "name": "elevation",
8465
- "value": "none"
8458
+ "name": "overlay",
8459
+ "value": "0 0 0 1px rgb(32 32 32 / 0.04), 0 4px 8px rgb(32 32 32 / 0.04), 0 16px 36px -8px rgb(32 32 32 / 0.14)"
8466
8460
  },
8467
8461
  {
8468
8462
  "name": "table-smudge-left",
@@ -8568,18 +8562,17 @@
8568
8562
  {
8569
8563
  "id": "elevation-is-actionability",
8570
8564
  "number": 2,
8571
- "title": "Shadow only by request",
8572
- "rule": "Every surface defaults to shadow-0. Use the numbered elevation ladder only when the user explicitly requests a shadow for the named surface; the legacy shadow-elevation hook remains flat.",
8565
+ "title": "Five shadows, floating layers only",
8566
+ "rule": "ADS has five shadow tokens: shadow-0 (flat, the default), shadow-float, shadow-overlay, and the two table scroll-hint smudges. Only a layer that floats above the page may carry float or overlay; everything in the page is flat.",
8573
8567
  "do": [
8574
- "Keep controls, cards, menus, overlays, panels, and other surfaces at shadow-0 unless the user specifically requests elevation.",
8575
- "When requested, use shadow-100 for controls, shadow-200 for raised surfaces and pressable cards, shadow-300 for menus, popovers, listboxes, and toasts, and shadow-400 for dialogs and overlay drawers.",
8576
- "Reserve shadow-500 and shadow-600 for rare higher stacked layers; the legacy shadow-elevation hook resolves to shadow-0."
8568
+ "Keep cards, panels, chips, buttons, tabs, fields, thumbs, and other in-page surfaces at shadow-0; separate them with fill, border, or spacing.",
8569
+ "Use shadow-float for floating layers that sit over content: toasts, toolbars, the chat composer dock, and any menu or popover that needs lift beyond its border.",
8570
+ "Use shadow-overlay for modals, dialogs, and overlay drawers, so a dialog always reads above a menu."
8577
8571
  ],
8578
8572
  "dont": [
8579
- "Infer permission to use a shadow from actionability, floating placement, or component type.",
8580
- "Use raw shadow values or legacy named shadow utilities.",
8581
- "Put a shadow on a non-interactive surface for decoration.",
8582
- "Use shadow-500 or shadow-600 as a routine default."
8573
+ "Put a shadow on an in-page surface for decoration or to signal that it is clickable.",
8574
+ "Use raw shadow values, inset glows, or the removed numbered levels and elevation hook.",
8575
+ "Invent a third floating level; stack order comes from float vs overlay."
8583
8576
  ],
8584
8577
  "enforcedByLint": false
8585
8578
  },
@@ -8737,9 +8730,9 @@
8737
8730
  "id": "tabs-search-opposed",
8738
8731
  "number": 11,
8739
8732
  "title": "Tabs lead; scoped search trails",
8740
- "rule": "When tabs and a search field control the same content, they share one responsive control row: the tab track hugs its labels at the leading edge and search sits at the trailing edge. Stack only when the container cannot fit both.",
8733
+ "rule": "When tabs and a search field control the same content, they share one responsive control row: the tab list leads with its triggers left-aligned at their natural width over a baseline that fades from WG3 to transparent, and search sits at the trailing edge. Stack only when the container cannot fit both.",
8741
8734
  "do": [
8742
- "Keep the horizontal TabList content-width, then place the scoped search field opposite it in the same toolbar.",
8735
+ "Keep tab triggers left-aligned at their natural width, then place the scoped search field opposite them in the same toolbar.",
8743
8736
  "On constrained containers, stack tabs first and search second while preserving their relationship."
8744
8737
  ],
8745
8738
  "dont": [
@@ -9667,10 +9660,10 @@
9667
9660
  ]
9668
9661
  },
9669
9662
  "counts": {
9670
- "nodes": 806,
9671
- "edges": 548,
9663
+ "nodes": 808,
9664
+ "edges": 550,
9672
9665
  "component": 323,
9673
- "state": 461,
9666
+ "state": 463,
9674
9667
  "principle": 11,
9675
9668
  "production": 9,
9676
9669
  "layout": 2
@@ -9946,6 +9939,30 @@
9946
9939
  "showcaseUrl": "https://ads.actioneer.dev/#/review/file-dropzone",
9947
9940
  "description": ""
9948
9941
  },
9942
+ {
9943
+ "id": "state:FileDropzone:hasFiles=true",
9944
+ "kind": "state",
9945
+ "label": "hasFiles=true",
9946
+ "component": "FileDropzone",
9947
+ "axis": "hasFiles",
9948
+ "value": "true",
9949
+ "required": false,
9950
+ "derived": true,
9951
+ "isDefault": false,
9952
+ "description": ""
9953
+ },
9954
+ {
9955
+ "id": "state:FileDropzone:hasFiles=false",
9956
+ "kind": "state",
9957
+ "label": "hasFiles=false",
9958
+ "component": "FileDropzone",
9959
+ "axis": "hasFiles",
9960
+ "value": "false",
9961
+ "required": false,
9962
+ "derived": true,
9963
+ "isDefault": false,
9964
+ "description": ""
9965
+ },
9949
9966
  {
9950
9967
  "id": "state:FileDropzone:isDragging=true",
9951
9968
  "kind": "state",
@@ -14558,7 +14575,7 @@
14558
14575
  "required": false,
14559
14576
  "derived": true,
14560
14577
  "isDefault": true,
14561
- "description": "Neutral heads-up with a warm-grey icon tile and no urgency signaled."
14578
+ "description": "Neutral heads-up with a neutral icon and no urgency signaled."
14562
14579
  },
14563
14580
  {
14564
14581
  "id": "state:Alert:variant=success",
@@ -17501,9 +17518,9 @@
17501
17518
  {
17502
17519
  "id": "principle:elevation-is-actionability",
17503
17520
  "kind": "principle",
17504
- "label": "Shadow only by request",
17521
+ "label": "Five shadows, floating layers only",
17505
17522
  "number": 2,
17506
- "rule": "Every surface defaults to shadow-0. Use the numbered elevation ladder only when the user explicitly requests a shadow for the named surface; the legacy shadow-elevation hook remains flat."
17523
+ "rule": "ADS has five shadow tokens: shadow-0 (flat, the default), shadow-float, shadow-overlay, and the two table scroll-hint smudges. Only a layer that floats above the page may carry float or overlay; everything in the page is flat."
17507
17524
  },
17508
17525
  {
17509
17526
  "id": "principle:motion-follows-guide",
@@ -17566,7 +17583,7 @@
17566
17583
  "kind": "principle",
17567
17584
  "label": "Tabs lead; scoped search trails",
17568
17585
  "number": 11,
17569
- "rule": "When tabs and a search field control the same content, they share one responsive control row: the tab track hugs its labels at the leading edge and search sits at the trailing edge. Stack only when the container cannot fit both."
17586
+ "rule": "When tabs and a search field control the same content, they share one responsive control row: the tab list leads with its triggers left-aligned at their natural width over a baseline that fades from WG3 to transparent, and search sits at the trailing edge. Stack only when the container cannot fit both."
17570
17587
  },
17571
17588
  {
17572
17589
  "id": "state:Button:interaction=default",
@@ -18429,6 +18446,18 @@
18429
18446
  "target": "state:CodeBlock:variant=plain",
18430
18447
  "relation": "supports-state"
18431
18448
  },
18449
+ {
18450
+ "id": "component:FileDropzone:supports-state:state:FileDropzone:hasFiles=true:global",
18451
+ "source": "component:FileDropzone",
18452
+ "target": "state:FileDropzone:hasFiles=true",
18453
+ "relation": "supports-state"
18454
+ },
18455
+ {
18456
+ "id": "component:FileDropzone:supports-state:state:FileDropzone:hasFiles=false:global",
18457
+ "source": "component:FileDropzone",
18458
+ "target": "state:FileDropzone:hasFiles=false",
18459
+ "relation": "supports-state"
18460
+ },
18432
18461
  {
18433
18462
  "id": "component:FileDropzone:supports-state:state:FileDropzone:isDragging=true:global",
18434
18463
  "source": "component:FileDropzone",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@actioneer/ads-mcp",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "description": "ADS MCP server: lets an agent in Claude Code / Cursor discover and import the Actioneer Design System",
5
5
  "type": "module",
6
6
  "bin": {
package/src/tools.mjs CHANGED
@@ -52,7 +52,7 @@ export function createTools({ manifest }) {
52
52
  description:
53
53
  "Get the ADS semantic token(s) for a role or purpose (e.g. 'brand', 'muted-foreground', " +
54
54
  "'bg-danger', 'primary text'). Also resolves the non-colour scales: type roles " +
55
- "('body', 'label'), radius steps ('md'), the numbered shadow ladder ('shadow-300'), " +
55
+ "('body', 'label'), radius steps ('md'), the shadow tokens ('shadow-float'), " +
56
56
  "and the named motion presets ('springDialog') with their spring values and purpose. " +
57
57
  "Reference the returned token/utilities instead of a raw " +
58
58
  "color literal — ads-lint rejects literals.",
@@ -183,7 +183,7 @@ export function createTools({ manifest }) {
183
183
  return text(
184
184
  `No ADS token or scale matches "${raw}". Try a colour role ('brand', ` +
185
185
  `'muted-foreground'), a type role ('body'), a radius step ('md'), a shadow ` +
186
- `('shadow-300'), or a motion preset ('springDialog').`,
186
+ `('shadow-float'), or a motion preset ('springDialog').`,
187
187
  true
188
188
  );
189
189
  },