web-components-doctor 0.1.0 → 0.3.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.
@@ -10,6 +10,7 @@
10
10
  * governing permissions and limitations under the License.
11
11
  */
12
12
  import { extractElementsFromTemplate } from '../adapters/lit-adapter.js';
13
+ import { extractElementFromJSX } from '../adapters/jsx-adapter.js';
13
14
  /**
14
15
  * An attribute is considered "present" if it exists in the map at all
15
16
  * (including boolean attributes with empty string values).
@@ -60,76 +61,81 @@ export function createAccessibleComponentRule(descriptors) {
60
61
  schema: [],
61
62
  },
62
63
  create(context) {
63
- return {
64
- TaggedTemplateExpression(node) {
65
- const elements = extractElementsFromTemplate(node);
66
- for (const element of elements) {
67
- const descriptor = descriptors[element.tagName];
68
- if (!descriptor?.accessibility)
69
- continue;
70
- const a11y = descriptor.accessibility;
71
- if (a11y.requireOneOf && !hasOneOf(element, a11y.requireOneOf)) {
72
- context.report({
73
- node,
74
- messageId: 'missingOneOf',
75
- data: {
76
- tagName: element.tagName,
77
- attributes: a11y.requireOneOf
78
- .map((a) => `\`${a}\``)
79
- .join(', '),
80
- },
81
- });
82
- }
83
- if (a11y.requireAll && !hasAll(element, a11y.requireAll)) {
84
- const missing = a11y.requireAll.filter((a) => !element.attributes.has(a));
85
- context.report({
86
- node,
87
- messageId: 'missingAll',
88
- data: {
89
- tagName: element.tagName,
90
- attributes: missing.map((a) => `\`${a}\``).join(', '),
91
- },
92
- });
93
- }
94
- if (a11y.conditionalRules) {
95
- for (const rule of a11y.conditionalRules) {
96
- if (!matchesCondition(element, rule.when))
97
- continue;
98
- if (rule.requireOneOf && !hasOneOf(element, rule.requireOneOf)) {
99
- context.report({
100
- node,
101
- messageId: rule.message
102
- ? 'conditionalViolation'
103
- : 'missingOneOf',
104
- data: rule.message
105
- ? { message: rule.message }
106
- : {
107
- tagName: element.tagName,
108
- attributes: rule.requireOneOf
109
- .map((a) => `\`${a}\``)
110
- .join(', '),
111
- },
112
- });
113
- }
114
- if (rule.requireAll && !hasAll(element, rule.requireAll)) {
115
- context.report({
116
- node,
117
- messageId: rule.message
118
- ? 'conditionalViolation'
119
- : 'missingAll',
120
- data: rule.message
121
- ? { message: rule.message }
122
- : {
123
- tagName: element.tagName,
124
- attributes: rule.requireAll
125
- .map((a) => `\`${a}\``)
126
- .join(', '),
127
- },
128
- });
129
- }
64
+ function check(node, elements) {
65
+ for (const element of elements) {
66
+ const descriptor = descriptors[element.tagName];
67
+ if (!descriptor?.accessibility)
68
+ continue;
69
+ const a11y = descriptor.accessibility;
70
+ if (a11y.requireOneOf && !hasOneOf(element, a11y.requireOneOf)) {
71
+ context.report({
72
+ node,
73
+ messageId: 'missingOneOf',
74
+ data: {
75
+ tagName: element.tagName,
76
+ attributes: a11y.requireOneOf
77
+ .map((a) => `\`${a}\``)
78
+ .join(', '),
79
+ },
80
+ });
81
+ }
82
+ if (a11y.requireAll && !hasAll(element, a11y.requireAll)) {
83
+ const missing = a11y.requireAll.filter((a) => !element.attributes.has(a));
84
+ context.report({
85
+ node,
86
+ messageId: 'missingAll',
87
+ data: {
88
+ tagName: element.tagName,
89
+ attributes: missing.map((a) => `\`${a}\``).join(', '),
90
+ },
91
+ });
92
+ }
93
+ if (a11y.conditionalRules) {
94
+ for (const rule of a11y.conditionalRules) {
95
+ if (!matchesCondition(element, rule.when))
96
+ continue;
97
+ if (rule.requireOneOf && !hasOneOf(element, rule.requireOneOf)) {
98
+ context.report({
99
+ node,
100
+ messageId: rule.message
101
+ ? 'conditionalViolation'
102
+ : 'missingOneOf',
103
+ data: rule.message
104
+ ? { message: rule.message }
105
+ : {
106
+ tagName: element.tagName,
107
+ attributes: rule.requireOneOf
108
+ .map((a) => `\`${a}\``)
109
+ .join(', '),
110
+ },
111
+ });
112
+ }
113
+ if (rule.requireAll && !hasAll(element, rule.requireAll)) {
114
+ context.report({
115
+ node,
116
+ messageId: rule.message
117
+ ? 'conditionalViolation'
118
+ : 'missingAll',
119
+ data: rule.message
120
+ ? { message: rule.message }
121
+ : {
122
+ tagName: element.tagName,
123
+ attributes: rule.requireAll
124
+ .map((a) => `\`${a}\``)
125
+ .join(', '),
126
+ },
127
+ });
130
128
  }
131
129
  }
132
130
  }
131
+ }
132
+ }
133
+ return {
134
+ TaggedTemplateExpression(node) {
135
+ check(node, extractElementsFromTemplate(node));
136
+ },
137
+ JSXElement(node) {
138
+ check(node, extractElementFromJSX(node));
133
139
  },
134
140
  };
135
141
  },
@@ -156,48 +162,53 @@ export function createNoDeprecatedRule(descriptors) {
156
162
  schema: [],
157
163
  },
158
164
  create(context) {
159
- return {
160
- TaggedTemplateExpression(node) {
161
- const elements = extractElementsFromTemplate(node);
162
- for (const element of elements) {
163
- const descriptor = descriptors[element.tagName];
164
- if (!descriptor?.deprecations)
165
- continue;
166
- const dep = descriptor.deprecations;
167
- if (dep.attributes) {
168
- for (const attrDep of dep.attributes) {
169
- if (attrDep.deprecatedValues) {
170
- const attrVal = element.attributes.get(attrDep.attribute);
171
- if (!attrVal || attrVal.isDynamic)
172
- continue;
173
- const match = attrDep.deprecatedValues.find((d) => d.value === attrVal.value);
174
- if (match) {
175
- context.report({
176
- node,
177
- messageId: 'deprecatedValue',
178
- data: { message: match.message },
179
- });
180
- }
165
+ function check(node, elements) {
166
+ for (const element of elements) {
167
+ const descriptor = descriptors[element.tagName];
168
+ if (!descriptor?.deprecations)
169
+ continue;
170
+ const dep = descriptor.deprecations;
171
+ if (dep.attributes) {
172
+ for (const attrDep of dep.attributes) {
173
+ if (attrDep.deprecatedValues) {
174
+ const attrVal = element.attributes.get(attrDep.attribute);
175
+ if (!attrVal || attrVal.isDynamic)
176
+ continue;
177
+ const match = attrDep.deprecatedValues.find((d) => d.value === attrVal.value);
178
+ if (match) {
179
+ context.report({
180
+ node,
181
+ messageId: 'deprecatedValue',
182
+ data: { message: match.message },
183
+ });
181
184
  }
182
- else if (attrDep.message) {
183
- if (element.attributes.has(attrDep.attribute)) {
184
- context.report({
185
- node,
186
- messageId: 'deprecatedAttribute',
187
- data: { message: attrDep.message },
188
- });
189
- }
185
+ }
186
+ else if (attrDep.message) {
187
+ if (element.attributes.has(attrDep.attribute)) {
188
+ context.report({
189
+ node,
190
+ messageId: 'deprecatedAttribute',
191
+ data: { message: attrDep.message },
192
+ });
190
193
  }
191
194
  }
192
195
  }
193
- if (dep.warnOnTextContent && element.hasTextContent) {
194
- context.report({
195
- node,
196
- messageId: 'deprecatedSlotContent',
197
- data: { message: dep.warnOnTextContent.message },
198
- });
199
- }
200
196
  }
197
+ if (dep.warnOnTextContent && element.hasTextContent) {
198
+ context.report({
199
+ node,
200
+ messageId: 'deprecatedSlotContent',
201
+ data: { message: dep.warnOnTextContent.message },
202
+ });
203
+ }
204
+ }
205
+ }
206
+ return {
207
+ TaggedTemplateExpression(node) {
208
+ check(node, extractElementsFromTemplate(node));
209
+ },
210
+ JSXElement(node) {
211
+ check(node, extractElementFromJSX(node));
201
212
  },
202
213
  };
203
214
  },
@@ -220,26 +231,31 @@ export function createRequiredAttributesRule(descriptors) {
220
231
  schema: [],
221
232
  },
222
233
  create(context) {
223
- return {
224
- TaggedTemplateExpression(node) {
225
- const elements = extractElementsFromTemplate(node);
226
- for (const element of elements) {
227
- const descriptor = descriptors[element.tagName];
228
- if (!descriptor?.requiredAttributes)
229
- continue;
230
- for (const attr of descriptor.requiredAttributes) {
231
- if (!element.attributes.has(attr)) {
232
- context.report({
233
- node,
234
- messageId: 'missingRequired',
235
- data: {
236
- tagName: element.tagName,
237
- attribute: attr,
238
- },
239
- });
240
- }
234
+ function check(node, elements) {
235
+ for (const element of elements) {
236
+ const descriptor = descriptors[element.tagName];
237
+ if (!descriptor?.requiredAttributes)
238
+ continue;
239
+ for (const attr of descriptor.requiredAttributes) {
240
+ if (!element.attributes.has(attr)) {
241
+ context.report({
242
+ node,
243
+ messageId: 'missingRequired',
244
+ data: {
245
+ tagName: element.tagName,
246
+ attribute: attr,
247
+ },
248
+ });
241
249
  }
242
250
  }
251
+ }
252
+ }
253
+ return {
254
+ TaggedTemplateExpression(node) {
255
+ check(node, extractElementsFromTemplate(node));
256
+ },
257
+ JSXElement(node) {
258
+ check(node, extractElementFromJSX(node));
243
259
  },
244
260
  };
245
261
  },
@@ -262,33 +278,163 @@ export function createValidAttributeValuesRule(descriptors) {
262
278
  schema: [],
263
279
  },
264
280
  create(context) {
281
+ function check(node, elements) {
282
+ for (const element of elements) {
283
+ const descriptor = descriptors[element.tagName];
284
+ if (!descriptor?.validAttributeValues)
285
+ continue;
286
+ for (const [attr, allowedValues] of Object.entries(descriptor.validAttributeValues)) {
287
+ const attrVal = element.attributes.get(attr);
288
+ if (!attrVal || attrVal.isDynamic || attrVal.value === null)
289
+ continue;
290
+ if (!allowedValues.includes(attrVal.value)) {
291
+ context.report({
292
+ node,
293
+ messageId: 'invalidValue',
294
+ data: {
295
+ tagName: element.tagName,
296
+ attribute: attr,
297
+ value: attrVal.value,
298
+ allowed: allowedValues
299
+ .map((v) => `"${v}"`)
300
+ .join(', '),
301
+ },
302
+ });
303
+ }
304
+ }
305
+ }
306
+ }
265
307
  return {
266
308
  TaggedTemplateExpression(node) {
267
- const elements = extractElementsFromTemplate(node);
268
- for (const element of elements) {
269
- const descriptor = descriptors[element.tagName];
270
- if (!descriptor?.validAttributeValues)
309
+ check(node, extractElementsFromTemplate(node));
310
+ },
311
+ JSXElement(node) {
312
+ check(node, extractElementFromJSX(node));
313
+ },
314
+ };
315
+ },
316
+ };
317
+ }
318
+ /**
319
+ * Resolve which slot a child element targets based on its `slot` attribute.
320
+ * Returns '' (empty string) for the default slot.
321
+ */
322
+ function getChildSlotName(child) {
323
+ const slotAttr = child.attributes.get('slot');
324
+ if (!slotAttr || slotAttr.isDynamic)
325
+ return '';
326
+ return slotAttr.value ?? '';
327
+ }
328
+ /**
329
+ * Creates the `valid-slot-names` rule that checks children aren't placed
330
+ * into non-existent slots.
331
+ */
332
+ export function createValidSlotNamesRule(descriptors) {
333
+ return {
334
+ meta: {
335
+ type: 'problem',
336
+ docs: {
337
+ description: 'Disallow placing children into slots that a Spectrum Web Component does not define.',
338
+ url: 'https://github.com/Rajdeepc/web-components-doctor#valid-slot-names',
339
+ },
340
+ messages: {
341
+ invalidSlot: '<{{childTag}}> uses slot="{{slotName}}" but <{{parentTag}}> does not have a "{{slotName}}" slot. Valid slots: {{validSlots}}.',
342
+ },
343
+ schema: [],
344
+ },
345
+ create(context) {
346
+ function checkElement(node, elements) {
347
+ for (const element of elements) {
348
+ const descriptor = descriptors[element.tagName];
349
+ if (!descriptor?.slots)
350
+ continue;
351
+ const validSlotNames = new Set(descriptor.slots.map((s) => s.name));
352
+ for (const child of element.children) {
353
+ const slotName = getChildSlotName(child);
354
+ if (slotName === '' && validSlotNames.has(''))
271
355
  continue;
272
- for (const [attr, allowedValues] of Object.entries(descriptor.validAttributeValues)) {
273
- const attrVal = element.attributes.get(attr);
274
- if (!attrVal || attrVal.isDynamic || attrVal.value === null)
275
- continue;
276
- if (!allowedValues.includes(attrVal.value)) {
277
- context.report({
278
- node,
279
- messageId: 'invalidValue',
280
- data: {
281
- tagName: element.tagName,
282
- attribute: attr,
283
- value: attrVal.value,
284
- allowed: allowedValues
285
- .map((v) => `"${v}"`)
286
- .join(', '),
287
- },
288
- });
289
- }
356
+ if (validSlotNames.has(slotName))
357
+ continue;
358
+ context.report({
359
+ node,
360
+ messageId: 'invalidSlot',
361
+ data: {
362
+ childTag: child.tagName,
363
+ slotName,
364
+ parentTag: element.tagName,
365
+ validSlots: [...validSlotNames]
366
+ .map((s) => (s === '' ? '(default)' : `"${s}"`))
367
+ .join(', '),
368
+ },
369
+ });
370
+ }
371
+ }
372
+ }
373
+ return {
374
+ TaggedTemplateExpression(node) {
375
+ checkElement(node, extractElementsFromTemplate(node));
376
+ },
377
+ JSXElement(node) {
378
+ checkElement(node, extractElementFromJSX(node));
379
+ },
380
+ };
381
+ },
382
+ };
383
+ }
384
+ /**
385
+ * Creates the `valid-slot-children` rule that checks a child element's tag
386
+ * is accepted in the slot it targets.
387
+ */
388
+ export function createValidSlotChildrenRule(descriptors) {
389
+ return {
390
+ meta: {
391
+ type: 'problem',
392
+ docs: {
393
+ description: 'Disallow placing elements into slots that do not accept their tag name.',
394
+ url: 'https://github.com/Rajdeepc/web-components-doctor#valid-slot-children',
395
+ },
396
+ messages: {
397
+ invalidChild: '<{{childTag}}> is not accepted in the {{slotLabel}} of <{{parentTag}}>. Accepted children: {{accepted}}.',
398
+ },
399
+ schema: [],
400
+ },
401
+ create(context) {
402
+ function checkElement(node, elements) {
403
+ for (const element of elements) {
404
+ const descriptor = descriptors[element.tagName];
405
+ if (!descriptor?.slots)
406
+ continue;
407
+ const slotMap = new Map(descriptor.slots.map((s) => [s.name, s]));
408
+ for (const child of element.children) {
409
+ const slotName = getChildSlotName(child);
410
+ const slotDef = slotMap.get(slotName);
411
+ if (!slotDef || !slotDef.acceptedChildren)
412
+ continue;
413
+ if (!slotDef.acceptedChildren.includes(child.tagName)) {
414
+ context.report({
415
+ node,
416
+ messageId: 'invalidChild',
417
+ data: {
418
+ childTag: child.tagName,
419
+ slotLabel: slotName === ''
420
+ ? 'default slot'
421
+ : `"${slotName}" slot`,
422
+ parentTag: element.tagName,
423
+ accepted: slotDef.acceptedChildren
424
+ .map((t) => `<${t}>`)
425
+ .join(', '),
426
+ },
427
+ });
290
428
  }
291
429
  }
430
+ }
431
+ }
432
+ return {
433
+ TaggedTemplateExpression(node) {
434
+ checkElement(node, extractElementsFromTemplate(node));
435
+ },
436
+ JSXElement(node) {
437
+ checkElement(node, extractElementFromJSX(node));
292
438
  },
293
439
  };
294
440
  },
@@ -1 +1 @@
1
- {"version":3,"file":"rule-factory.js","sourceRoot":"","sources":["../../src/core/rule-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rule-factory.js","sourceRoot":"","sources":["../../src/core/rule-factory.ts"],"names":[],"mappings":"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"}
@@ -74,6 +74,17 @@ export interface DeprecatedValueDescriptor {
74
74
  message: string;
75
75
  replacement?: string;
76
76
  }
77
+ /**
78
+ * Defines an accepted slot on a component.
79
+ */
80
+ export interface SlotDescriptor {
81
+ /** Slot name. Use '' for the default (unnamed) slot. */
82
+ name: string;
83
+ /** Tag names accepted in this slot. Omit to accept any element. */
84
+ acceptedChildren?: string[];
85
+ /** If true, at least one child must fill this slot. */
86
+ required?: boolean;
87
+ }
77
88
  /**
78
89
  * Full component descriptor combining all rule metadata for one element.
79
90
  */
@@ -82,7 +93,7 @@ export interface ComponentDescriptor {
82
93
  accessibility?: AccessibilityDescriptor;
83
94
  deprecations?: DeprecationDescriptor;
84
95
  requiredAttributes?: string[];
85
- validSlots?: string[];
96
+ slots?: SlotDescriptor[];
86
97
  validAttributeValues?: Record<string, string[]>;
87
98
  }
88
99
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACxC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAC;IACnB,iFAAiF;IACjF,WAAW,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE;QACJ,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC1C,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,6BAA6B,EAAE,CAAC;IAC7C,iBAAiB,CAAC,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACxC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,cAAc,EAAE,OAAO,CAAC;IACxB,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAC;IACnB,iFAAiF;IACjF,WAAW,CAAC,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE;QACJ,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC1C,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,CAAC,EAAE,6BAA6B,EAAE,CAAC;IAC7C,iBAAiB,CAAC,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,6BAA6B;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,uBAAuB,CAAC;IACxC,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/descriptors/components.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,sBAgNlC,CAAC"}
1
+ {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../src/descriptors/components.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,EAAE,sBA+PlC,CAAC"}