@amedia/brick-mcp 1.0.2 → 1.0.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.
@@ -326,8 +326,8 @@ When using `data-skin="opinion"` with `data-filled="true"`:
326
326
 
327
327
  ```css
328
328
  brick-pill-v10 {
329
- --opinion-background-color: #yourcolor;
330
- --opinion-color-text: #yourtextcolor;
329
+ --brick-colors-brandAccentsSurfaceOpinion: #yourcolor;
330
+ --brick-colors-brandAccentsTextOpinion: #yourtextcolor;
331
331
  }
332
332
  ```
333
333
 
@@ -1,7 +1,7 @@
1
1
  [
2
2
  {
3
3
  "name": "brick-alt-teaser",
4
- "version": "8.1.23",
4
+ "version": "8.1.24",
5
5
  "selector": "brick-alt-teaser-v8",
6
6
  "category": "Display",
7
7
  "tags": [
@@ -11,7 +11,7 @@
11
11
  },
12
12
  {
13
13
  "name": "brick-avatar",
14
- "version": "0.2.60",
14
+ "version": "0.2.61",
15
15
  "selector": "brick-avatar-v0",
16
16
  "description": "brick-avatar component",
17
17
  "category": "Display",
@@ -23,7 +23,7 @@
23
23
  },
24
24
  {
25
25
  "name": "brick-button",
26
- "version": "9.4.18",
26
+ "version": "9.4.19",
27
27
  "selector": "brick-button-v9",
28
28
  "category": "Forms",
29
29
  "tags": [
@@ -35,7 +35,7 @@
35
35
  },
36
36
  {
37
37
  "name": "brick-byline",
38
- "version": "1.0.22",
38
+ "version": "1.0.23",
39
39
  "selector": "brick-byline-v1",
40
40
  "description": "brick-byline component",
41
41
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-byline",
@@ -43,7 +43,7 @@
43
43
  },
44
44
  {
45
45
  "name": "brick-card",
46
- "version": "7.3.32",
46
+ "version": "7.3.33",
47
47
  "selector": "brick-card-v7",
48
48
  "category": "Layout",
49
49
  "tags": [
@@ -54,7 +54,7 @@
54
54
  },
55
55
  {
56
56
  "name": "brick-carousel",
57
- "version": "2.3.5",
57
+ "version": "2.3.6",
58
58
  "selector": "brick-carousel-v2",
59
59
  "description": "Simple carousel for any content passed to it.",
60
60
  "category": "Display",
@@ -66,7 +66,7 @@
66
66
  },
67
67
  {
68
68
  "name": "brick-classnames",
69
- "version": "3.0.2",
69
+ "version": "3.0.3",
70
70
  "selector": "brick-classnames-v3",
71
71
  "description": "Utility method to create a safe string from a design name",
72
72
  "category": "Utilities",
@@ -78,7 +78,7 @@
78
78
  },
79
79
  {
80
80
  "name": "brick-countdown",
81
- "version": "3.0.7",
81
+ "version": "3.0.8",
82
82
  "selector": "brick-countdown-v3",
83
83
  "description": "brick-countdown component",
84
84
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-countdown",
@@ -86,7 +86,7 @@
86
86
  },
87
87
  {
88
88
  "name": "brick-dialog",
89
- "version": "2.1.15",
89
+ "version": "2.1.16",
90
90
  "selector": "brick-dialog-v2",
91
91
  "description": "brick-dialog component",
92
92
  "category": "Feedback",
@@ -98,7 +98,7 @@
98
98
  },
99
99
  {
100
100
  "name": "brick-expand",
101
- "version": "0.0.27",
101
+ "version": "0.0.28",
102
102
  "selector": "brick-expand-v0",
103
103
  "description": "brick-expand component",
104
104
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-expand",
@@ -106,7 +106,7 @@
106
106
  },
107
107
  {
108
108
  "name": "brick-fonts",
109
- "version": "2.0.2",
109
+ "version": "2.0.3",
110
110
  "selector": "brick-fonts-v2",
111
111
  "description": "Distribution of font files",
112
112
  "category": "Utilities",
@@ -117,7 +117,7 @@
117
117
  },
118
118
  {
119
119
  "name": "brick-helloworld",
120
- "version": "2.0.28",
120
+ "version": "2.0.29",
121
121
  "selector": "brick-helloworld-v2",
122
122
  "description": "Brick Hello World component",
123
123
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-helloworld",
@@ -125,7 +125,7 @@
125
125
  },
126
126
  {
127
127
  "name": "brick-icon",
128
- "version": "2.3.24",
128
+ "version": "2.4.0",
129
129
  "selector": "brick-icon-v2",
130
130
  "category": "Display",
131
131
  "tags": [
@@ -136,14 +136,14 @@
136
136
  },
137
137
  {
138
138
  "name": "brick-illustrations",
139
- "version": "1.3.0",
139
+ "version": "1.3.1",
140
140
  "selector": "brick-illustrations-v1",
141
141
  "description": "brick-illustrations",
142
142
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-illustrations"
143
143
  },
144
144
  {
145
145
  "name": "brick-image",
146
- "version": "6.0.27",
146
+ "version": "6.0.28",
147
147
  "selector": "brick-image-v6",
148
148
  "category": "Display",
149
149
  "tags": [
@@ -154,7 +154,7 @@
154
154
  },
155
155
  {
156
156
  "name": "brick-input",
157
- "version": "4.0.7",
157
+ "version": "4.0.8",
158
158
  "selector": "brick-input-v4",
159
159
  "description": "brick-input component",
160
160
  "category": "Forms",
@@ -167,14 +167,14 @@
167
167
  },
168
168
  {
169
169
  "name": "brick-pill",
170
- "version": "10.1.6",
170
+ "version": "10.1.7",
171
171
  "selector": "brick-pill-v10",
172
172
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-pill",
173
173
  "mainJsFile": "brick-pill.js"
174
174
  },
175
175
  {
176
176
  "name": "brick-player",
177
- "version": "2.4.3",
177
+ "version": "2.4.4",
178
178
  "selector": "brick-player-v2",
179
179
  "description": "Component for playing video and audio files",
180
180
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-player",
@@ -182,7 +182,7 @@
182
182
  },
183
183
  {
184
184
  "name": "brick-published",
185
- "version": "4.0.23",
185
+ "version": "4.0.24",
186
186
  "selector": "brick-published-v4",
187
187
  "description": "brick-published",
188
188
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-published",
@@ -190,7 +190,7 @@
190
190
  },
191
191
  {
192
192
  "name": "brick-share",
193
- "version": "0.4.3",
193
+ "version": "0.4.4",
194
194
  "selector": "brick-share-v0",
195
195
  "description": "brick-share component",
196
196
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-share",
@@ -198,7 +198,7 @@
198
198
  },
199
199
  {
200
200
  "name": "brick-skip-link",
201
- "version": "0.0.2",
201
+ "version": "0.0.3",
202
202
  "selector": "brick-skip-link-v0",
203
203
  "description": "brick-skip-link component",
204
204
  "category": "Navigation",
@@ -210,7 +210,7 @@
210
210
  },
211
211
  {
212
212
  "name": "brick-stepper",
213
- "version": "1.1.9",
213
+ "version": "1.1.10",
214
214
  "selector": "brick-stepper-v1",
215
215
  "description": "brick-stepper component",
216
216
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-stepper",
@@ -218,7 +218,7 @@
218
218
  },
219
219
  {
220
220
  "name": "brick-tab",
221
- "version": "0.1.30",
221
+ "version": "0.1.31",
222
222
  "selector": "brick-tab-v0",
223
223
  "description": "brick-tab component",
224
224
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-tab",
@@ -226,7 +226,7 @@
226
226
  },
227
227
  {
228
228
  "name": "brick-tabs",
229
- "version": "0.1.31",
229
+ "version": "0.1.32",
230
230
  "selector": "brick-tabs-v0",
231
231
  "description": "brick-tabs component handling tablist, tabs and tabpanel",
232
232
  "category": "Navigation",
@@ -238,7 +238,7 @@
238
238
  },
239
239
  {
240
240
  "name": "brick-tag",
241
- "version": "0.0.30",
241
+ "version": "0.0.31",
242
242
  "selector": "brick-tag-v0",
243
243
  "description": "brick-tag component",
244
244
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-tag",
@@ -246,7 +246,7 @@
246
246
  },
247
247
  {
248
248
  "name": "brick-teaser",
249
- "version": "22.2.9",
249
+ "version": "22.2.10",
250
250
  "selector": "brick-teaser-v22",
251
251
  "description": "Teaser component.",
252
252
  "category": "Display",
@@ -258,7 +258,7 @@
258
258
  },
259
259
  {
260
260
  "name": "brick-teaser-player",
261
- "version": "1.1.20",
261
+ "version": "1.1.21",
262
262
  "selector": "brick-teaser-player-v1",
263
263
  "description": "brick-video-teaser component",
264
264
  "category": "Display",
@@ -270,7 +270,7 @@
270
270
  },
271
271
  {
272
272
  "name": "brick-teaser-reels",
273
- "version": "0.4.22",
273
+ "version": "0.4.23",
274
274
  "selector": "brick-teaser-reels-v0",
275
275
  "description": "brick-teaser-reels component",
276
276
  "category": "Display",
@@ -282,7 +282,7 @@
282
282
  },
283
283
  {
284
284
  "name": "brick-textarea",
285
- "version": "2.0.26",
285
+ "version": "2.0.27",
286
286
  "selector": "brick-textarea-v2",
287
287
  "description": "brick-textarea component",
288
288
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-textarea",
@@ -290,7 +290,7 @@
290
290
  },
291
291
  {
292
292
  "name": "brick-themes",
293
- "version": "1.0.2",
293
+ "version": "1.0.3",
294
294
  "selector": "brick-themes-v1",
295
295
  "description": "Brick theme names",
296
296
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-themes",
@@ -298,7 +298,7 @@
298
298
  },
299
299
  {
300
300
  "name": "brick-toast",
301
- "version": "0.1.44",
301
+ "version": "0.1.45",
302
302
  "selector": "brick-toast-v0",
303
303
  "description": "brick-toast component",
304
304
  "category": "Feedback",
@@ -310,7 +310,7 @@
310
310
  },
311
311
  {
312
312
  "name": "brick-toggle",
313
- "version": "3.1.32",
313
+ "version": "3.1.33",
314
314
  "selector": "brick-toggle-v3",
315
315
  "description": "brick-toggle component",
316
316
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-toggle",
@@ -318,7 +318,7 @@
318
318
  },
319
319
  {
320
320
  "name": "brick-tokens",
321
- "version": "6.2.1",
321
+ "version": "6.2.2",
322
322
  "selector": "brick-tokens-v6",
323
323
  "description": "Tokens package",
324
324
  "category": "Utilities",
@@ -330,7 +330,7 @@
330
330
  },
331
331
  {
332
332
  "name": "brick-tooltip",
333
- "version": "1.0.33",
333
+ "version": "1.0.34",
334
334
  "selector": "brick-tooltip-v1",
335
335
  "description": "brick-tooltip component",
336
336
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-tooltip",
@@ -326,8 +326,8 @@ When using `data-skin="opinion"` with `data-filled="true"`:
326
326
 
327
327
  ```css
328
328
  brick-pill-v10 {
329
- --opinion-background-color: #yourcolor;
330
- --opinion-color-text: #yourtextcolor;
329
+ --brick-colors-brandAccentsSurfaceOpinion: #yourcolor;
330
+ --brick-colors-brandAccentsTextOpinion: #yourtextcolor;
331
331
  }
332
332
  ```
333
333
 
@@ -1,7 +1,7 @@
1
1
  [
2
2
  {
3
3
  "name": "brick-alt-teaser",
4
- "version": "8.1.23",
4
+ "version": "8.1.24",
5
5
  "selector": "brick-alt-teaser-v8",
6
6
  "category": "Display",
7
7
  "tags": [
@@ -11,7 +11,7 @@
11
11
  },
12
12
  {
13
13
  "name": "brick-avatar",
14
- "version": "0.2.60",
14
+ "version": "0.2.61",
15
15
  "selector": "brick-avatar-v0",
16
16
  "description": "brick-avatar component",
17
17
  "category": "Display",
@@ -23,7 +23,7 @@
23
23
  },
24
24
  {
25
25
  "name": "brick-button",
26
- "version": "9.4.18",
26
+ "version": "9.4.19",
27
27
  "selector": "brick-button-v9",
28
28
  "category": "Forms",
29
29
  "tags": [
@@ -35,7 +35,7 @@
35
35
  },
36
36
  {
37
37
  "name": "brick-byline",
38
- "version": "1.0.22",
38
+ "version": "1.0.23",
39
39
  "selector": "brick-byline-v1",
40
40
  "description": "brick-byline component",
41
41
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-byline",
@@ -43,7 +43,7 @@
43
43
  },
44
44
  {
45
45
  "name": "brick-card",
46
- "version": "7.3.32",
46
+ "version": "7.3.33",
47
47
  "selector": "brick-card-v7",
48
48
  "category": "Layout",
49
49
  "tags": [
@@ -54,7 +54,7 @@
54
54
  },
55
55
  {
56
56
  "name": "brick-carousel",
57
- "version": "2.3.5",
57
+ "version": "2.3.6",
58
58
  "selector": "brick-carousel-v2",
59
59
  "description": "Simple carousel for any content passed to it.",
60
60
  "category": "Display",
@@ -66,7 +66,7 @@
66
66
  },
67
67
  {
68
68
  "name": "brick-classnames",
69
- "version": "3.0.2",
69
+ "version": "3.0.3",
70
70
  "selector": "brick-classnames-v3",
71
71
  "description": "Utility method to create a safe string from a design name",
72
72
  "category": "Utilities",
@@ -78,7 +78,7 @@
78
78
  },
79
79
  {
80
80
  "name": "brick-countdown",
81
- "version": "3.0.7",
81
+ "version": "3.0.8",
82
82
  "selector": "brick-countdown-v3",
83
83
  "description": "brick-countdown component",
84
84
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-countdown",
@@ -86,7 +86,7 @@
86
86
  },
87
87
  {
88
88
  "name": "brick-dialog",
89
- "version": "2.1.15",
89
+ "version": "2.1.16",
90
90
  "selector": "brick-dialog-v2",
91
91
  "description": "brick-dialog component",
92
92
  "category": "Feedback",
@@ -98,7 +98,7 @@
98
98
  },
99
99
  {
100
100
  "name": "brick-expand",
101
- "version": "0.0.27",
101
+ "version": "0.0.28",
102
102
  "selector": "brick-expand-v0",
103
103
  "description": "brick-expand component",
104
104
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-expand",
@@ -106,7 +106,7 @@
106
106
  },
107
107
  {
108
108
  "name": "brick-fonts",
109
- "version": "2.0.2",
109
+ "version": "2.0.3",
110
110
  "selector": "brick-fonts-v2",
111
111
  "description": "Distribution of font files",
112
112
  "category": "Utilities",
@@ -117,7 +117,7 @@
117
117
  },
118
118
  {
119
119
  "name": "brick-helloworld",
120
- "version": "2.0.28",
120
+ "version": "2.0.29",
121
121
  "selector": "brick-helloworld-v2",
122
122
  "description": "Brick Hello World component",
123
123
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-helloworld",
@@ -125,7 +125,7 @@
125
125
  },
126
126
  {
127
127
  "name": "brick-icon",
128
- "version": "2.3.24",
128
+ "version": "2.4.0",
129
129
  "selector": "brick-icon-v2",
130
130
  "category": "Display",
131
131
  "tags": [
@@ -136,14 +136,14 @@
136
136
  },
137
137
  {
138
138
  "name": "brick-illustrations",
139
- "version": "1.3.0",
139
+ "version": "1.3.1",
140
140
  "selector": "brick-illustrations-v1",
141
141
  "description": "brick-illustrations",
142
142
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-illustrations"
143
143
  },
144
144
  {
145
145
  "name": "brick-image",
146
- "version": "6.0.27",
146
+ "version": "6.0.28",
147
147
  "selector": "brick-image-v6",
148
148
  "category": "Display",
149
149
  "tags": [
@@ -154,7 +154,7 @@
154
154
  },
155
155
  {
156
156
  "name": "brick-input",
157
- "version": "4.0.7",
157
+ "version": "4.0.8",
158
158
  "selector": "brick-input-v4",
159
159
  "description": "brick-input component",
160
160
  "category": "Forms",
@@ -167,14 +167,14 @@
167
167
  },
168
168
  {
169
169
  "name": "brick-pill",
170
- "version": "10.1.6",
170
+ "version": "10.1.7",
171
171
  "selector": "brick-pill-v10",
172
172
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-pill",
173
173
  "mainJsFile": "brick-pill.js"
174
174
  },
175
175
  {
176
176
  "name": "brick-player",
177
- "version": "2.4.3",
177
+ "version": "2.4.4",
178
178
  "selector": "brick-player-v2",
179
179
  "description": "Component for playing video and audio files",
180
180
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-player",
@@ -182,7 +182,7 @@
182
182
  },
183
183
  {
184
184
  "name": "brick-published",
185
- "version": "4.0.23",
185
+ "version": "4.0.24",
186
186
  "selector": "brick-published-v4",
187
187
  "description": "brick-published",
188
188
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-published",
@@ -190,7 +190,7 @@
190
190
  },
191
191
  {
192
192
  "name": "brick-share",
193
- "version": "0.4.3",
193
+ "version": "0.4.4",
194
194
  "selector": "brick-share-v0",
195
195
  "description": "brick-share component",
196
196
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-share",
@@ -198,7 +198,7 @@
198
198
  },
199
199
  {
200
200
  "name": "brick-skip-link",
201
- "version": "0.0.2",
201
+ "version": "0.0.3",
202
202
  "selector": "brick-skip-link-v0",
203
203
  "description": "brick-skip-link component",
204
204
  "category": "Navigation",
@@ -210,7 +210,7 @@
210
210
  },
211
211
  {
212
212
  "name": "brick-stepper",
213
- "version": "1.1.9",
213
+ "version": "1.1.10",
214
214
  "selector": "brick-stepper-v1",
215
215
  "description": "brick-stepper component",
216
216
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-stepper",
@@ -218,7 +218,7 @@
218
218
  },
219
219
  {
220
220
  "name": "brick-tab",
221
- "version": "0.1.30",
221
+ "version": "0.1.31",
222
222
  "selector": "brick-tab-v0",
223
223
  "description": "brick-tab component",
224
224
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-tab",
@@ -226,7 +226,7 @@
226
226
  },
227
227
  {
228
228
  "name": "brick-tabs",
229
- "version": "0.1.31",
229
+ "version": "0.1.32",
230
230
  "selector": "brick-tabs-v0",
231
231
  "description": "brick-tabs component handling tablist, tabs and tabpanel",
232
232
  "category": "Navigation",
@@ -238,7 +238,7 @@
238
238
  },
239
239
  {
240
240
  "name": "brick-tag",
241
- "version": "0.0.30",
241
+ "version": "0.0.31",
242
242
  "selector": "brick-tag-v0",
243
243
  "description": "brick-tag component",
244
244
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-tag",
@@ -246,7 +246,7 @@
246
246
  },
247
247
  {
248
248
  "name": "brick-teaser",
249
- "version": "22.2.9",
249
+ "version": "22.2.10",
250
250
  "selector": "brick-teaser-v22",
251
251
  "description": "Teaser component.",
252
252
  "category": "Display",
@@ -258,7 +258,7 @@
258
258
  },
259
259
  {
260
260
  "name": "brick-teaser-player",
261
- "version": "1.1.20",
261
+ "version": "1.1.21",
262
262
  "selector": "brick-teaser-player-v1",
263
263
  "description": "brick-video-teaser component",
264
264
  "category": "Display",
@@ -270,7 +270,7 @@
270
270
  },
271
271
  {
272
272
  "name": "brick-teaser-reels",
273
- "version": "0.4.22",
273
+ "version": "0.4.23",
274
274
  "selector": "brick-teaser-reels-v0",
275
275
  "description": "brick-teaser-reels component",
276
276
  "category": "Display",
@@ -282,7 +282,7 @@
282
282
  },
283
283
  {
284
284
  "name": "brick-textarea",
285
- "version": "2.0.26",
285
+ "version": "2.0.27",
286
286
  "selector": "brick-textarea-v2",
287
287
  "description": "brick-textarea component",
288
288
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-textarea",
@@ -290,7 +290,7 @@
290
290
  },
291
291
  {
292
292
  "name": "brick-themes",
293
- "version": "1.0.2",
293
+ "version": "1.0.3",
294
294
  "selector": "brick-themes-v1",
295
295
  "description": "Brick theme names",
296
296
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-themes",
@@ -298,7 +298,7 @@
298
298
  },
299
299
  {
300
300
  "name": "brick-toast",
301
- "version": "0.1.44",
301
+ "version": "0.1.45",
302
302
  "selector": "brick-toast-v0",
303
303
  "description": "brick-toast component",
304
304
  "category": "Feedback",
@@ -310,7 +310,7 @@
310
310
  },
311
311
  {
312
312
  "name": "brick-toggle",
313
- "version": "3.1.32",
313
+ "version": "3.1.33",
314
314
  "selector": "brick-toggle-v3",
315
315
  "description": "brick-toggle component",
316
316
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-toggle",
@@ -318,7 +318,7 @@
318
318
  },
319
319
  {
320
320
  "name": "brick-tokens",
321
- "version": "6.2.1",
321
+ "version": "6.2.2",
322
322
  "selector": "brick-tokens-v6",
323
323
  "description": "Tokens package",
324
324
  "category": "Utilities",
@@ -330,7 +330,7 @@
330
330
  },
331
331
  {
332
332
  "name": "brick-tooltip",
333
- "version": "1.0.33",
333
+ "version": "1.0.34",
334
334
  "selector": "brick-tooltip-v1",
335
335
  "description": "brick-tooltip component",
336
336
  "assetUrl": "https://assets.acdn.no/pkg/@amedia/brick-tooltip",
package/dist/http.js CHANGED
@@ -31,8 +31,7 @@ function getDataPath() {
31
31
  return join(dir, "data");
32
32
  } catch {
33
33
  const parent = dirname(dir);
34
- if (parent === dir)
35
- break;
34
+ if (parent === dir) break;
36
35
  dir = parent;
37
36
  }
38
37
  }
@@ -141,8 +140,7 @@ async function loadAllTokens() {
141
140
  }
142
141
  function tokenMatchesCategory(token, category) {
143
142
  const prefixes = CATEGORY_PREFIXES[category];
144
- if (!prefixes)
145
- return false;
143
+ if (!prefixes) return false;
146
144
  const path = token.path.toLowerCase();
147
145
  return prefixes.some((prefix) => path.startsWith(prefix));
148
146
  }
package/dist/http.js.map CHANGED
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/http.ts", "../src/server.ts", "../src/tools/getComponentDocs.ts", "../src/utils/dataPath.ts", "../src/extractors/packageScanner.ts", "../src/tools/getDesignTokens.ts", "../src/tools/listComponents.ts"],
4
4
  "sourcesContent": ["/**\n * HTTP server entry point for local development only\n * Uses Fastify and SSE transport for MCP communication\n */\n\nimport cors from '@fastify/cors';\nimport { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';\nimport Fastify from 'fastify';\n\nimport { createServer } from './server.ts';\n\nconst PORT = 3000;\nconst HOST = 'localhost';\n\nconst fastify = Fastify({\n logger: {\n level: 'info',\n },\n});\n\n// Store active transports and servers by sessionId\nconst activeTransports = new Map<string, SSEServerTransport>();\nconst activeMcpServers = new Map<string, ReturnType<typeof createServer>>();\n\n// Enable CORS for local development\nawait fastify.register(cors, {\n origin: true,\n credentials: true,\n});\n\n// Health check endpoint\nfastify.get('/health', async () => {\n return { status: 'ok' };\n});\n\n// SSE endpoint for MCP communication\nfastify.get('/sse', async (_request, reply) => {\n // Prevent Fastify from automatically sending a response\n reply.hijack();\n\n // Create a new MCP server instance for this connection\n const mcpServer = createServer();\n\n // Create SSE transport (this will handle headers internally)\n const transport = new SSEServerTransport('/message', reply.raw);\n\n // Handle the SSE connection (this calls transport.start() which writes headers)\n await mcpServer.connect(transport);\n\n // Store the transport and server by sessionId for POST message handling\n // The sessionId is available after the transport starts via the public getter\n const sessionId = transport.sessionId;\n activeTransports.set(sessionId, transport);\n activeMcpServers.set(sessionId, mcpServer);\n\n // Clean up when the connection closes\n reply.raw.on('close', async () => {\n activeTransports.delete(sessionId);\n const server = activeMcpServers.get(sessionId);\n if (server) {\n await server.close();\n activeMcpServers.delete(sessionId);\n }\n });\n});\n\n// POST endpoint for messages\nfastify.post<{\n Querystring: { sessionId: string };\n}>('/message', async (request, reply) => {\n // Prevent Fastify from automatically sending a response\n reply.hijack();\n\n // Extract sessionId from query parameters (now properly typed)\n const { sessionId } = request.query;\n\n // Find the transport for this session\n const transport = activeTransports.get(sessionId);\n\n if (!transport) {\n reply.raw.writeHead(404, { 'Content-Type': 'application/json' });\n reply.raw.end(JSON.stringify({ error: 'Session not found' }));\n return;\n }\n\n // Let the transport handle the POST message\n await transport.handlePostMessage(request.raw, reply.raw, request.body);\n});\n\n// Start the server\ntry {\n await fastify.listen({ port: PORT, host: HOST });\n console.log(`Brick MCP HTTP server listening on http://${HOST}:${PORT}`);\n console.log(`SSE endpoint: http://${HOST}:${PORT}/sse`);\n} catch (err) {\n fastify.log.error(err);\n process.exit(1);\n}\n", "/**\n * MCP server setup and registration\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\n\nimport { getComponentDocs } from './tools/getComponentDocs.ts';\nimport { getDesignTokens } from './tools/getDesignTokens.ts';\nimport { listComponents } from './tools/listComponents.ts';\n\n/**\n * Create and configure the MCP server\n */\nexport function createServer(): McpServer {\n // Create an MCP server\n const server = new McpServer({\n name: 'brick-design-system',\n version: '1.0.0',\n });\n\n // Register list-components tool\n server.registerTool(\n 'list-components',\n {\n title: 'List Brick Components',\n description:\n 'List all available Brick components with metadata. Optionally filter by category, tag, or name.',\n inputSchema: z.object({\n filter: z\n .string()\n .optional()\n .describe('Optional filter by category, tag, or name'),\n }),\n } as const,\n async ({ filter }: { filter?: string }) => {\n const result = await listComponents({ filter });\n\n return {\n content: [\n {\n type: 'text',\n text: JSON.stringify(result, null, 2),\n },\n ],\n };\n }\n );\n\n // Register get-component-docs tool\n server.registerTool(\n 'get-component-docs',\n {\n title: 'Get Component Documentation',\n description:\n 'Retrieve detailed documentation for specific Brick component(s) including props, events, examples, and accessibility information.',\n inputSchema: z.object({\n components: z\n .array(z.string())\n .describe(\n 'Array of component names (e.g., [\"brick-button\", \"brick-modal\"])'\n ),\n }),\n } as const,\n async ({ components }: { components: string[] }) => {\n const result = await getComponentDocs({ components });\n\n return {\n content: [\n {\n type: 'text',\n text: JSON.stringify(result, null, 2),\n },\n ],\n };\n }\n );\n\n // Register get-design-tokens tool\n server.registerTool(\n 'get-design-tokens',\n {\n title: 'Get Design Tokens',\n description:\n 'Access design tokens from brick-tokens. Optionally filter by category (colors, spacing, typography, shadows, borders).',\n inputSchema: z.object({\n category: z\n .enum(['colors', 'spacing', 'typography', 'shadows', 'borders'])\n .optional()\n .describe('Filter tokens by category'),\n }),\n } as const,\n async ({\n category,\n }: {\n category?: 'colors' | 'spacing' | 'typography' | 'shadows' | 'borders';\n }) => {\n const result = await getDesignTokens({ category });\n\n return {\n content: [\n {\n type: 'text',\n text: result,\n },\n ],\n };\n }\n );\n\n return server;\n}\n", "/**\n * Get Component Docs tool implementation\n */\n\nimport { readFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\nimport { getDataPath } from '../utils/dataPath.ts';\nimport { loadComponentData } from '../extractors/packageScanner.ts';\n\nexport interface GetComponentDocsInput {\n components: string[]; // e.g., [\"brick-button\", \"brick-modal\"]\n}\n\nexport interface GetComponentDocsOutput {\n docs: string[];\n}\n\n/**\n * Load markdown documentation for a component\n */\nasync function loadComponentMarkdown(\n componentName: string\n): Promise<string | undefined> {\n try {\n const markdownPath = join(\n getDataPath(),\n 'components',\n `${componentName}.md`\n );\n const content = await readFile(markdownPath, 'utf-8');\n return content;\n } catch (error) {\n console.error(`Error loading markdown for ${componentName}:`, error);\n return undefined;\n }\n}\n\n/**\n * Get detailed documentation for specific component(s)\n */\nexport async function getComponentDocs(\n input: GetComponentDocsInput\n): Promise<GetComponentDocsOutput> {\n // Load markdown documentation for each requested component\n const docsPromises = input.components.map(async (componentName) => {\n const md = await loadComponentMarkdown(componentName);\n if (!md) {\n const json = await loadComponentData(componentName);\n return json ? JSON.stringify(json) : undefined;\n }\n return md;\n });\n\n const docsResults = await Promise.all(docsPromises);\n\n // Filter out any components that failed to load\n const docs = docsResults.filter((doc): doc is string => doc !== undefined);\n\n return { docs };\n}\n", "/**\n * Utility for finding the data directory path\n * Works both in development (from src/) and production (from dist/)\n */\n\nimport { accessSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\n/**\n * Get the path to the data directory\n * When running from dist/, looks for dist/data\n * When running from src/, looks for package root data\n */\nexport function getDataPath(): string {\n const currentFilePath = fileURLToPath(import.meta.url);\n let dir = dirname(currentFilePath);\n\n // First check if there's a data directory in the same parent as the current file\n // This handles the dist/data case when running from dist/\n const localDataPath = join(dir, 'data');\n try {\n accessSync(localDataPath);\n return localDataPath;\n } catch {\n // Continue to package root search\n }\n\n // Walk up the directory tree to find package root (where package.json exists)\n for (let i = 0; i < 5; i++) {\n try {\n const testPath = join(dir, 'package.json');\n accessSync(testPath);\n return join(dir, 'data');\n } catch {\n // Go up one level\n const parent = dirname(dir);\n if (parent === dir) break; // Reached filesystem root\n dir = parent;\n }\n }\n\n return join(dirname(currentFilePath), '..', '..', 'data');\n}\n", "/**\n * Package scanner for discovering Brick components\n */\n\nimport { readFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\nimport { type BrickComponent, type BrickComponentMetadata } from '../types.ts';\nimport { getDataPath } from '../utils/dataPath.ts';\n\n/**\n * Load all component metadata (lightweight, for listing)\n */\nexport async function scanAllPackages(): Promise<BrickComponentMetadata[]> {\n try {\n const metadataPath = join(getDataPath(), 'components-metadata.json');\n const content = await readFile(metadataPath, 'utf-8');\n const metadata: BrickComponentMetadata[] = JSON.parse(content);\n return metadata;\n } catch (error) {\n console.error('Error loading component metadata:', error);\n return [];\n }\n}\n\n/**\n * Load full component data for a specific component\n */\nexport async function loadComponentData(\n componentName: string\n): Promise<BrickComponent | undefined> {\n try {\n const componentPath = join(\n getDataPath(),\n 'components',\n `${componentName}.json`\n );\n const content = await readFile(componentPath, 'utf-8');\n const component: BrickComponent = JSON.parse(content);\n return component;\n } catch (error) {\n console.error(`Error loading component data for ${componentName}:`, error);\n return undefined;\n }\n}\n\n/**\n * Filter components by category or tag\n */\nexport function filterComponents(\n components: BrickComponentMetadata[],\n filter?: string\n): BrickComponentMetadata[] {\n if (!filter) {\n return components;\n }\n\n const filterLower = filter.toLowerCase();\n\n return components.filter((component) => {\n // Match against name\n if (component.name.toLowerCase().includes(filterLower)) {\n return true;\n }\n\n // Match against category\n if (component.category?.toLowerCase().includes(filterLower)) {\n return true;\n }\n\n // Match against tags\n if (\n component.tags?.some((tag) => tag.toLowerCase().includes(filterLower))\n ) {\n return true;\n }\n\n return false;\n });\n}\n", "/**\n * Get Design Tokens tool implementation\n */\n\nimport { readFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\nimport { getDataPath } from '../utils/dataPath.ts';\n\nexport interface DesignToken {\n path: string;\n name: string;\n type: string;\n value: string;\n description?: string;\n cssVariable: string;\n}\n\nexport interface GetDesignTokensInput {\n category?: 'colors' | 'spacing' | 'typography' | 'shadows' | 'borders';\n}\n\n/**\n * Category filter definitions mapping category names to path prefixes\n */\nconst CATEGORY_PREFIXES: Record<string, string[]> = {\n colors: ['color.'],\n spacing: ['spacing.'],\n typography: ['typography.'],\n shadows: ['box-shadow.'],\n borders: ['border-width.', 'border-radius.', 'border.'],\n};\n\n/**\n * Get the path to the bundled tokens data\n */\nfunction getTokensDataPath(): string {\n return join(getDataPath(), 'tokens.json');\n}\n\n/**\n * Load all tokens from bundled JSON data\n */\nasync function loadAllTokens(): Promise<DesignToken[]> {\n try {\n const dataPath = getTokensDataPath();\n const content = await readFile(dataPath, 'utf-8');\n return JSON.parse(content);\n } catch (error) {\n console.error('Error loading tokens data:', error);\n return [];\n }\n}\n\n/**\n * Check if a token belongs to a given category\n */\nfunction tokenMatchesCategory(token: DesignToken, category: string): boolean {\n const prefixes = CATEGORY_PREFIXES[category];\n if (!prefixes) return false;\n const path = token.path.toLowerCase();\n return prefixes.some((prefix) => path.startsWith(prefix));\n}\n\n/**\n * Format tokens as a compact text listing\n */\nfunction formatTokensCompact(tokens: DesignToken[]): string {\n return tokens\n .map((t) => {\n const base = `${t.cssVariable}: ${t.value}`;\n return t.description ? `${base} \u2014 ${t.description}` : base;\n })\n .join('\\n');\n}\n\n/**\n * Build a category summary with counts and example token paths\n */\nfunction buildCategorySummary(allTokens: DesignToken[]): string {\n const lines: string[] = ['Available token categories:'];\n\n for (const category of Object.keys(CATEGORY_PREFIXES)) {\n const matching = allTokens.filter((t) => tokenMatchesCategory(t, category));\n const count = matching.length;\n const examples = matching\n .slice(0, 3)\n .map((t) => t.path)\n .join(', ');\n const suffix = examples ? ` (${examples}, ...)` : '';\n lines.push(`- ${category}: ${count} tokens${suffix}`);\n }\n\n lines.push('', 'Call with a specific category to see tokens.');\n return lines.join('\\n');\n}\n\n/**\n * Get design tokens with optional filtering.\n * Returns a compact text string to minimize context window usage.\n */\nexport async function getDesignTokens(\n input: GetDesignTokensInput\n): Promise<string> {\n const allTokens = await loadAllTokens();\n\n // No category: return summary instead of dumping all tokens\n if (!input.category) {\n return buildCategorySummary(allTokens);\n }\n\n const filteredTokens = allTokens.filter((t) =>\n tokenMatchesCategory(t, input.category!)\n );\n\n const header = `${input.category} tokens (${filteredTokens.length} tokens). Values shown are examples from one theme. Actual values vary across themes (alfa, bravo, charlie, nettavisen, alt). Use the CSS variable for theme-aware styling.\\n`;\n return header + formatTokensCompact(filteredTokens);\n}\n", "/**\n * List Components tool implementation\n */\n\nimport {\n filterComponents,\n scanAllPackages,\n} from '../extractors/packageScanner.ts';\nimport type { BrickComponentMetadata } from '../types.ts';\n\nexport interface ListComponentsInput {\n filter?: string;\n}\n\nexport interface ListComponentsOutput {\n components: BrickComponentMetadata[];\n}\n\n/**\n * List all available Brick components with optional filtering\n */\nexport async function listComponents(\n input: ListComponentsInput\n): Promise<ListComponentsOutput> {\n // Scan all packages in the monorepo (returns lightweight metadata)\n const allComponents = await scanAllPackages();\n\n // Apply filter if provided\n const components = filterComponents(allComponents, input.filter);\n\n return {\n components,\n };\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["readFile", "join", "join", "join", "join", "readFile", "readFile", "join", "join", "readFile"]
7
7
  }
package/dist/index.js CHANGED
@@ -30,8 +30,7 @@ function getDataPath() {
30
30
  return join(dir, "data");
31
31
  } catch {
32
32
  const parent = dirname(dir);
33
- if (parent === dir)
34
- break;
33
+ if (parent === dir) break;
35
34
  dir = parent;
36
35
  }
37
36
  }
@@ -140,8 +139,7 @@ async function loadAllTokens() {
140
139
  }
141
140
  function tokenMatchesCategory(token, category) {
142
141
  const prefixes = CATEGORY_PREFIXES[category];
143
- if (!prefixes)
144
- return false;
142
+ if (!prefixes) return false;
145
143
  const path = token.path.toLowerCase();
146
144
  return prefixes.some((prefix) => path.startsWith(prefix));
147
145
  }
package/dist/index.js.map CHANGED
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../src/server.ts", "../src/tools/getComponentDocs.ts", "../src/utils/dataPath.ts", "../src/extractors/packageScanner.ts", "../src/tools/getDesignTokens.ts", "../src/tools/listComponents.ts"],
4
4
  "sourcesContent": ["/**\n * Main MCP server entry point\n */\n\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';\n\nimport { createServer } from './server.ts';\n\n// Create and start the server\nconst server = createServer();\n\n// Start receiving messages on stdin and sending messages on stdout\nconst transport = new StdioServerTransport();\nawait server.connect(transport);\n", "/**\n * MCP server setup and registration\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';\nimport { z } from 'zod';\n\nimport { getComponentDocs } from './tools/getComponentDocs.ts';\nimport { getDesignTokens } from './tools/getDesignTokens.ts';\nimport { listComponents } from './tools/listComponents.ts';\n\n/**\n * Create and configure the MCP server\n */\nexport function createServer(): McpServer {\n // Create an MCP server\n const server = new McpServer({\n name: 'brick-design-system',\n version: '1.0.0',\n });\n\n // Register list-components tool\n server.registerTool(\n 'list-components',\n {\n title: 'List Brick Components',\n description:\n 'List all available Brick components with metadata. Optionally filter by category, tag, or name.',\n inputSchema: z.object({\n filter: z\n .string()\n .optional()\n .describe('Optional filter by category, tag, or name'),\n }),\n } as const,\n async ({ filter }: { filter?: string }) => {\n const result = await listComponents({ filter });\n\n return {\n content: [\n {\n type: 'text',\n text: JSON.stringify(result, null, 2),\n },\n ],\n };\n }\n );\n\n // Register get-component-docs tool\n server.registerTool(\n 'get-component-docs',\n {\n title: 'Get Component Documentation',\n description:\n 'Retrieve detailed documentation for specific Brick component(s) including props, events, examples, and accessibility information.',\n inputSchema: z.object({\n components: z\n .array(z.string())\n .describe(\n 'Array of component names (e.g., [\"brick-button\", \"brick-modal\"])'\n ),\n }),\n } as const,\n async ({ components }: { components: string[] }) => {\n const result = await getComponentDocs({ components });\n\n return {\n content: [\n {\n type: 'text',\n text: JSON.stringify(result, null, 2),\n },\n ],\n };\n }\n );\n\n // Register get-design-tokens tool\n server.registerTool(\n 'get-design-tokens',\n {\n title: 'Get Design Tokens',\n description:\n 'Access design tokens from brick-tokens. Optionally filter by category (colors, spacing, typography, shadows, borders).',\n inputSchema: z.object({\n category: z\n .enum(['colors', 'spacing', 'typography', 'shadows', 'borders'])\n .optional()\n .describe('Filter tokens by category'),\n }),\n } as const,\n async ({\n category,\n }: {\n category?: 'colors' | 'spacing' | 'typography' | 'shadows' | 'borders';\n }) => {\n const result = await getDesignTokens({ category });\n\n return {\n content: [\n {\n type: 'text',\n text: result,\n },\n ],\n };\n }\n );\n\n return server;\n}\n", "/**\n * Get Component Docs tool implementation\n */\n\nimport { readFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\nimport { getDataPath } from '../utils/dataPath.ts';\nimport { loadComponentData } from '../extractors/packageScanner.ts';\n\nexport interface GetComponentDocsInput {\n components: string[]; // e.g., [\"brick-button\", \"brick-modal\"]\n}\n\nexport interface GetComponentDocsOutput {\n docs: string[];\n}\n\n/**\n * Load markdown documentation for a component\n */\nasync function loadComponentMarkdown(\n componentName: string\n): Promise<string | undefined> {\n try {\n const markdownPath = join(\n getDataPath(),\n 'components',\n `${componentName}.md`\n );\n const content = await readFile(markdownPath, 'utf-8');\n return content;\n } catch (error) {\n console.error(`Error loading markdown for ${componentName}:`, error);\n return undefined;\n }\n}\n\n/**\n * Get detailed documentation for specific component(s)\n */\nexport async function getComponentDocs(\n input: GetComponentDocsInput\n): Promise<GetComponentDocsOutput> {\n // Load markdown documentation for each requested component\n const docsPromises = input.components.map(async (componentName) => {\n const md = await loadComponentMarkdown(componentName);\n if (!md) {\n const json = await loadComponentData(componentName);\n return json ? JSON.stringify(json) : undefined;\n }\n return md;\n });\n\n const docsResults = await Promise.all(docsPromises);\n\n // Filter out any components that failed to load\n const docs = docsResults.filter((doc): doc is string => doc !== undefined);\n\n return { docs };\n}\n", "/**\n * Utility for finding the data directory path\n * Works both in development (from src/) and production (from dist/)\n */\n\nimport { accessSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\nimport { fileURLToPath } from 'node:url';\n\n/**\n * Get the path to the data directory\n * When running from dist/, looks for dist/data\n * When running from src/, looks for package root data\n */\nexport function getDataPath(): string {\n const currentFilePath = fileURLToPath(import.meta.url);\n let dir = dirname(currentFilePath);\n\n // First check if there's a data directory in the same parent as the current file\n // This handles the dist/data case when running from dist/\n const localDataPath = join(dir, 'data');\n try {\n accessSync(localDataPath);\n return localDataPath;\n } catch {\n // Continue to package root search\n }\n\n // Walk up the directory tree to find package root (where package.json exists)\n for (let i = 0; i < 5; i++) {\n try {\n const testPath = join(dir, 'package.json');\n accessSync(testPath);\n return join(dir, 'data');\n } catch {\n // Go up one level\n const parent = dirname(dir);\n if (parent === dir) break; // Reached filesystem root\n dir = parent;\n }\n }\n\n return join(dirname(currentFilePath), '..', '..', 'data');\n}\n", "/**\n * Package scanner for discovering Brick components\n */\n\nimport { readFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\nimport { type BrickComponent, type BrickComponentMetadata } from '../types.ts';\nimport { getDataPath } from '../utils/dataPath.ts';\n\n/**\n * Load all component metadata (lightweight, for listing)\n */\nexport async function scanAllPackages(): Promise<BrickComponentMetadata[]> {\n try {\n const metadataPath = join(getDataPath(), 'components-metadata.json');\n const content = await readFile(metadataPath, 'utf-8');\n const metadata: BrickComponentMetadata[] = JSON.parse(content);\n return metadata;\n } catch (error) {\n console.error('Error loading component metadata:', error);\n return [];\n }\n}\n\n/**\n * Load full component data for a specific component\n */\nexport async function loadComponentData(\n componentName: string\n): Promise<BrickComponent | undefined> {\n try {\n const componentPath = join(\n getDataPath(),\n 'components',\n `${componentName}.json`\n );\n const content = await readFile(componentPath, 'utf-8');\n const component: BrickComponent = JSON.parse(content);\n return component;\n } catch (error) {\n console.error(`Error loading component data for ${componentName}:`, error);\n return undefined;\n }\n}\n\n/**\n * Filter components by category or tag\n */\nexport function filterComponents(\n components: BrickComponentMetadata[],\n filter?: string\n): BrickComponentMetadata[] {\n if (!filter) {\n return components;\n }\n\n const filterLower = filter.toLowerCase();\n\n return components.filter((component) => {\n // Match against name\n if (component.name.toLowerCase().includes(filterLower)) {\n return true;\n }\n\n // Match against category\n if (component.category?.toLowerCase().includes(filterLower)) {\n return true;\n }\n\n // Match against tags\n if (\n component.tags?.some((tag) => tag.toLowerCase().includes(filterLower))\n ) {\n return true;\n }\n\n return false;\n });\n}\n", "/**\n * Get Design Tokens tool implementation\n */\n\nimport { readFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\nimport { getDataPath } from '../utils/dataPath.ts';\n\nexport interface DesignToken {\n path: string;\n name: string;\n type: string;\n value: string;\n description?: string;\n cssVariable: string;\n}\n\nexport interface GetDesignTokensInput {\n category?: 'colors' | 'spacing' | 'typography' | 'shadows' | 'borders';\n}\n\n/**\n * Category filter definitions mapping category names to path prefixes\n */\nconst CATEGORY_PREFIXES: Record<string, string[]> = {\n colors: ['color.'],\n spacing: ['spacing.'],\n typography: ['typography.'],\n shadows: ['box-shadow.'],\n borders: ['border-width.', 'border-radius.', 'border.'],\n};\n\n/**\n * Get the path to the bundled tokens data\n */\nfunction getTokensDataPath(): string {\n return join(getDataPath(), 'tokens.json');\n}\n\n/**\n * Load all tokens from bundled JSON data\n */\nasync function loadAllTokens(): Promise<DesignToken[]> {\n try {\n const dataPath = getTokensDataPath();\n const content = await readFile(dataPath, 'utf-8');\n return JSON.parse(content);\n } catch (error) {\n console.error('Error loading tokens data:', error);\n return [];\n }\n}\n\n/**\n * Check if a token belongs to a given category\n */\nfunction tokenMatchesCategory(token: DesignToken, category: string): boolean {\n const prefixes = CATEGORY_PREFIXES[category];\n if (!prefixes) return false;\n const path = token.path.toLowerCase();\n return prefixes.some((prefix) => path.startsWith(prefix));\n}\n\n/**\n * Format tokens as a compact text listing\n */\nfunction formatTokensCompact(tokens: DesignToken[]): string {\n return tokens\n .map((t) => {\n const base = `${t.cssVariable}: ${t.value}`;\n return t.description ? `${base} \u2014 ${t.description}` : base;\n })\n .join('\\n');\n}\n\n/**\n * Build a category summary with counts and example token paths\n */\nfunction buildCategorySummary(allTokens: DesignToken[]): string {\n const lines: string[] = ['Available token categories:'];\n\n for (const category of Object.keys(CATEGORY_PREFIXES)) {\n const matching = allTokens.filter((t) => tokenMatchesCategory(t, category));\n const count = matching.length;\n const examples = matching\n .slice(0, 3)\n .map((t) => t.path)\n .join(', ');\n const suffix = examples ? ` (${examples}, ...)` : '';\n lines.push(`- ${category}: ${count} tokens${suffix}`);\n }\n\n lines.push('', 'Call with a specific category to see tokens.');\n return lines.join('\\n');\n}\n\n/**\n * Get design tokens with optional filtering.\n * Returns a compact text string to minimize context window usage.\n */\nexport async function getDesignTokens(\n input: GetDesignTokensInput\n): Promise<string> {\n const allTokens = await loadAllTokens();\n\n // No category: return summary instead of dumping all tokens\n if (!input.category) {\n return buildCategorySummary(allTokens);\n }\n\n const filteredTokens = allTokens.filter((t) =>\n tokenMatchesCategory(t, input.category!)\n );\n\n const header = `${input.category} tokens (${filteredTokens.length} tokens). Values shown are examples from one theme. Actual values vary across themes (alfa, bravo, charlie, nettavisen, alt). Use the CSS variable for theme-aware styling.\\n`;\n return header + formatTokensCompact(filteredTokens);\n}\n", "/**\n * List Components tool implementation\n */\n\nimport {\n filterComponents,\n scanAllPackages,\n} from '../extractors/packageScanner.ts';\nimport type { BrickComponentMetadata } from '../types.ts';\n\nexport interface ListComponentsInput {\n filter?: string;\n}\n\nexport interface ListComponentsOutput {\n components: BrickComponentMetadata[];\n}\n\n/**\n * List all available Brick components with optional filtering\n */\nexport async function listComponents(\n input: ListComponentsInput\n): Promise<ListComponentsOutput> {\n // Scan all packages in the monorepo (returns lightweight metadata)\n const allComponents = await scanAllPackages();\n\n // Apply filter if provided\n const components = filterComponents(allComponents, input.filter);\n\n return {\n components,\n };\n}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["readFile", "join", "join", "join", "join", "readFile", "readFile", "join", "join", "readFile", "server"]
7
7
  }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@amedia/brick-mcp",
3
3
  "homepage": "https://github.com/amedia/brick.git",
4
4
  "author": "Amedia",
5
- "version": "1.0.2",
5
+ "version": "1.0.3",
6
6
  "description": "This is a MCP server for Brick",
7
7
  "license": "MIT",
8
8
  "type": "module",
@@ -40,41 +40,41 @@
40
40
  "zod-to-json-schema": "3.24.6"
41
41
  },
42
42
  "devDependencies": {
43
- "@amedia/brick-alt-teaser": "8.1.23",
44
- "@amedia/brick-avatar": "0.2.60",
45
- "@amedia/brick-button": "9.4.18",
46
- "@amedia/brick-byline": "1.0.22",
47
- "@amedia/brick-card": "7.3.32",
48
- "@amedia/brick-carousel": "2.3.5",
49
- "@amedia/brick-classnames": "3.0.2",
50
- "@amedia/brick-countdown": "3.0.7",
51
- "@amedia/brick-dialog": "2.1.15",
52
- "@amedia/brick-expand": "0.0.27",
53
- "@amedia/brick-fonts": "2.0.2",
54
- "@amedia/brick-helloworld": "2.0.28",
55
- "@amedia/brick-icon": "2.3.24",
56
- "@amedia/brick-icons": "2.2.5",
57
- "@amedia/brick-illustrations": "1.3.0",
58
- "@amedia/brick-image": "6.0.27",
59
- "@amedia/brick-input": "4.0.7",
60
- "@amedia/brick-pill": "10.1.6",
61
- "@amedia/brick-player": "2.4.3",
62
- "@amedia/brick-published": "4.0.23",
63
- "@amedia/brick-share": "0.4.3",
64
- "@amedia/brick-stepper": "1.1.9",
65
- "@amedia/brick-tab": "0.1.30",
66
- "@amedia/brick-tabs": "0.1.31",
67
- "@amedia/brick-tag": "0.0.30",
68
- "@amedia/brick-teaser": "22.2.9",
69
- "@amedia/brick-teaser-player": "1.1.20",
70
- "@amedia/brick-teaser-reels": "0.4.22",
71
- "@amedia/brick-template": "2.0.1",
72
- "@amedia/brick-textarea": "2.0.26",
73
- "@amedia/brick-themes": "1.0.2",
74
- "@amedia/brick-toast": "0.1.44",
75
- "@amedia/brick-toggle": "3.1.32",
76
- "@amedia/brick-tokens": "6.2.1",
77
- "@amedia/brick-tooltip": "1.0.33"
43
+ "@amedia/brick-alt-teaser": "8.1.24",
44
+ "@amedia/brick-avatar": "0.2.61",
45
+ "@amedia/brick-button": "9.4.19",
46
+ "@amedia/brick-byline": "1.0.23",
47
+ "@amedia/brick-card": "7.3.33",
48
+ "@amedia/brick-carousel": "2.3.6",
49
+ "@amedia/brick-classnames": "3.0.3",
50
+ "@amedia/brick-countdown": "3.0.8",
51
+ "@amedia/brick-dialog": "2.1.16",
52
+ "@amedia/brick-expand": "0.0.28",
53
+ "@amedia/brick-fonts": "2.0.3",
54
+ "@amedia/brick-helloworld": "2.0.29",
55
+ "@amedia/brick-icon": "2.4.0",
56
+ "@amedia/brick-icons": "2.2.6",
57
+ "@amedia/brick-illustrations": "1.3.1",
58
+ "@amedia/brick-image": "6.0.28",
59
+ "@amedia/brick-input": "4.0.8",
60
+ "@amedia/brick-pill": "10.1.7",
61
+ "@amedia/brick-player": "2.4.4",
62
+ "@amedia/brick-published": "4.0.24",
63
+ "@amedia/brick-share": "0.4.4",
64
+ "@amedia/brick-stepper": "1.1.10",
65
+ "@amedia/brick-tab": "0.1.31",
66
+ "@amedia/brick-tabs": "0.1.32",
67
+ "@amedia/brick-tag": "0.0.31",
68
+ "@amedia/brick-teaser": "22.2.10",
69
+ "@amedia/brick-teaser-player": "1.1.21",
70
+ "@amedia/brick-teaser-reels": "0.4.23",
71
+ "@amedia/brick-template": "2.0.2",
72
+ "@amedia/brick-textarea": "2.0.27",
73
+ "@amedia/brick-themes": "1.0.3",
74
+ "@amedia/brick-toast": "0.1.45",
75
+ "@amedia/brick-toggle": "3.1.33",
76
+ "@amedia/brick-tokens": "6.2.2",
77
+ "@amedia/brick-tooltip": "1.0.34"
78
78
  },
79
79
  "eik": {
80
80
  "server": "https://assets.acdn.no",