chrome-devtools-frontend 1.0.1014346 → 1.0.1015658

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 (119) hide show
  1. package/.eslintignore +1 -0
  2. package/config/gni/devtools_grd_files.gni +4 -2
  3. package/front_end/core/common/JavaScriptMetaData.ts +20 -0
  4. package/front_end/core/i18n/locales/af.json +195 -93
  5. package/front_end/core/i18n/locales/am.json +191 -89
  6. package/front_end/core/i18n/locales/ar.json +193 -91
  7. package/front_end/core/i18n/locales/as.json +192 -90
  8. package/front_end/core/i18n/locales/az.json +191 -89
  9. package/front_end/core/i18n/locales/be.json +191 -89
  10. package/front_end/core/i18n/locales/bg.json +190 -88
  11. package/front_end/core/i18n/locales/bn.json +191 -89
  12. package/front_end/core/i18n/locales/bs.json +193 -91
  13. package/front_end/core/i18n/locales/ca.json +189 -87
  14. package/front_end/core/i18n/locales/cs.json +191 -89
  15. package/front_end/core/i18n/locales/cy.json +191 -89
  16. package/front_end/core/i18n/locales/da.json +191 -89
  17. package/front_end/core/i18n/locales/de.json +193 -91
  18. package/front_end/core/i18n/locales/el.json +174 -72
  19. package/front_end/core/i18n/locales/en-GB.json +132 -30
  20. package/front_end/core/i18n/locales/en-US.json +3 -3
  21. package/front_end/core/i18n/locales/en-XL.json +3 -3
  22. package/front_end/core/i18n/locales/es-419.json +192 -90
  23. package/front_end/core/i18n/locales/es.json +200 -98
  24. package/front_end/core/i18n/locales/et.json +190 -88
  25. package/front_end/core/i18n/locales/eu.json +197 -95
  26. package/front_end/core/i18n/locales/fa.json +192 -90
  27. package/front_end/core/i18n/locales/fi.json +192 -90
  28. package/front_end/core/i18n/locales/fil.json +190 -88
  29. package/front_end/core/i18n/locales/fr-CA.json +191 -89
  30. package/front_end/core/i18n/locales/fr.json +192 -90
  31. package/front_end/core/i18n/locales/gl.json +173 -71
  32. package/front_end/core/i18n/locales/gu.json +192 -90
  33. package/front_end/core/i18n/locales/he.json +191 -89
  34. package/front_end/core/i18n/locales/hi.json +172 -70
  35. package/front_end/core/i18n/locales/hr.json +180 -78
  36. package/front_end/core/i18n/locales/hu.json +191 -89
  37. package/front_end/core/i18n/locales/hy.json +192 -90
  38. package/front_end/core/i18n/locales/id.json +192 -90
  39. package/front_end/core/i18n/locales/is.json +176 -74
  40. package/front_end/core/i18n/locales/it.json +192 -90
  41. package/front_end/core/i18n/locales/ja.json +190 -88
  42. package/front_end/core/i18n/locales/ka.json +190 -88
  43. package/front_end/core/i18n/locales/kk.json +198 -96
  44. package/front_end/core/i18n/locales/km.json +195 -93
  45. package/front_end/core/i18n/locales/kn.json +193 -91
  46. package/front_end/core/i18n/locales/ko.json +190 -88
  47. package/front_end/core/i18n/locales/ky.json +193 -91
  48. package/front_end/core/i18n/locales/lo.json +192 -90
  49. package/front_end/core/i18n/locales/lt.json +193 -91
  50. package/front_end/core/i18n/locales/lv.json +175 -73
  51. package/front_end/core/i18n/locales/mk.json +193 -91
  52. package/front_end/core/i18n/locales/ml.json +193 -91
  53. package/front_end/core/i18n/locales/mn.json +190 -88
  54. package/front_end/core/i18n/locales/mr.json +191 -89
  55. package/front_end/core/i18n/locales/ms.json +190 -88
  56. package/front_end/core/i18n/locales/my.json +191 -89
  57. package/front_end/core/i18n/locales/ne.json +172 -70
  58. package/front_end/core/i18n/locales/nl.json +191 -89
  59. package/front_end/core/i18n/locales/no.json +191 -89
  60. package/front_end/core/i18n/locales/or.json +196 -94
  61. package/front_end/core/i18n/locales/pa.json +191 -89
  62. package/front_end/core/i18n/locales/pl.json +191 -89
  63. package/front_end/core/i18n/locales/pt-PT.json +199 -97
  64. package/front_end/core/i18n/locales/pt.json +191 -89
  65. package/front_end/core/i18n/locales/ro.json +193 -91
  66. package/front_end/core/i18n/locales/ru.json +193 -91
  67. package/front_end/core/i18n/locales/si.json +191 -89
  68. package/front_end/core/i18n/locales/sk.json +192 -90
  69. package/front_end/core/i18n/locales/sl.json +191 -89
  70. package/front_end/core/i18n/locales/sq.json +193 -91
  71. package/front_end/core/i18n/locales/sr-Latn.json +190 -88
  72. package/front_end/core/i18n/locales/sr.json +190 -88
  73. package/front_end/core/i18n/locales/sv.json +191 -89
  74. package/front_end/core/i18n/locales/sw.json +192 -90
  75. package/front_end/core/i18n/locales/ta.json +193 -91
  76. package/front_end/core/i18n/locales/te.json +134 -32
  77. package/front_end/core/i18n/locales/th.json +190 -88
  78. package/front_end/core/i18n/locales/tr.json +193 -91
  79. package/front_end/core/i18n/locales/uk.json +193 -91
  80. package/front_end/core/i18n/locales/ur.json +191 -89
  81. package/front_end/core/i18n/locales/uz.json +190 -88
  82. package/front_end/core/i18n/locales/vi.json +190 -88
  83. package/front_end/core/i18n/locales/zh-HK.json +192 -90
  84. package/front_end/core/i18n/locales/zh-TW.json +195 -93
  85. package/front_end/core/i18n/locales/zh.json +191 -89
  86. package/front_end/core/i18n/locales/zu.json +192 -90
  87. package/front_end/core/sdk/DOMModel.ts +9 -0
  88. package/front_end/core/sdk/DebuggerModel.ts +0 -28
  89. package/front_end/core/sdk/Script.ts +5 -14
  90. package/front_end/core/sdk/SourceMap.ts +88 -27
  91. package/front_end/generated/InspectorBackendCommands.js +7 -3
  92. package/front_end/generated/protocol-mapping.d.ts +16 -0
  93. package/front_end/generated/protocol-proxy-api.d.ts +18 -0
  94. package/front_end/generated/protocol.ts +31 -5
  95. package/front_end/models/bindings/ResourceScriptMapping.ts +1 -2
  96. package/front_end/models/emulation/EmulatedDevices.ts +0 -13
  97. package/front_end/models/javascript_metadata/DOMPinnedProperties.ts +247 -225
  98. package/front_end/models/javascript_metadata/JavaScriptMetadata.ts +3 -0
  99. package/front_end/models/javascript_metadata/NativeFunctions.js +4 -4
  100. package/front_end/models/javascript_metadata/javascript_metadata.ts +3 -0
  101. package/front_end/models/source_map_scopes/NamesResolver.ts +99 -23
  102. package/front_end/panels/elements/ElementsTreeElement.ts +7 -3
  103. package/front_end/panels/elements/components/ElementsBreadcrumbs.ts +3 -4
  104. package/front_end/panels/elements/components/LayoutPane.ts +3 -4
  105. package/front_end/panels/elements/components/QueryContainer.ts +3 -4
  106. package/front_end/panels/elements/components/components.ts +0 -2
  107. package/front_end/panels/lighthouse/lighthouseStartView.css +3 -1
  108. package/front_end/panels/sources/ScopeChainSidebarPane.ts +4 -42
  109. package/front_end/ui/components/linear_memory_inspector/LinearMemoryInspectorController.ts +64 -8
  110. package/front_end/{panels/elements/components → ui/components/node_text}/NodeText.ts +2 -1
  111. package/front_end/{panels/elements/components → ui/components/node_text}/nodeText.css +0 -0
  112. package/front_end/ui/components/node_text/node_text.ts +9 -0
  113. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +8 -5
  114. package/front_end/ui/legacy/components/object_ui/objectValue.css +1 -4
  115. package/package.json +1 -1
  116. package/scripts/webidl-properties/config.js +305 -239
  117. package/scripts/webidl-properties/get-props.js +23 -12
  118. package/scripts/webidl-properties/index.js +14 -9
  119. package/scripts/webidl-properties/tests.js +58 -14
@@ -35,245 +35,311 @@ export const GLOBAL_ATTRIBUTES = new Set([
35
35
  * The "applicable" members for certain "states" that WebIDL types can be in.
36
36
  * In other words, some members are "valid" only valid in certain situations:
37
37
  * for example, with the HTML input element, the set of valid members are
38
- * determined by the "type" attribute.
38
+ * determined by the "type" property.
39
39
  */
40
- export const VALID_MEMBERS = {
40
+ export const APPLICABLE_MEMBERS = {
41
41
  // https://html.spec.whatwg.org/multipage/input.html#input-type-attr-summary
42
- HTMLInputElement: {
43
- '[type=hidden]': new Set([
44
- 'autocomplete',
45
- 'value',
46
- ]),
47
- '[type=text]': new Set([
48
- 'autocomplete',
49
- 'dirname',
50
- 'list',
51
- 'maxlength',
52
- 'minlength',
53
- 'pattern',
54
- 'placeholder',
55
- 'readonly',
56
- 'required',
57
- 'size',
58
- 'value',
59
- 'list',
60
- 'selectionstart',
61
- 'selectionend',
62
- 'selectiondirection',
63
- ]),
64
- '[type=search]': new Set([
65
- 'autocomplete',
66
- 'dirname',
67
- 'list',
68
- 'maxlength',
69
- 'minlength',
70
- 'pattern',
71
- 'placeholder',
72
- 'readonly',
73
- 'required',
74
- 'size',
75
- 'value',
76
- 'list',
77
- 'selectionstart',
78
- 'selectionend',
79
- 'selectiondirection',
80
- ]),
81
- '[type=url]': new Set([
82
- 'autocomplete',
83
- 'list',
84
- 'maxlength',
85
- 'minlength',
86
- 'pattern',
87
- 'placeholder',
88
- 'readonly',
89
- 'required',
90
- 'size',
91
- 'value',
92
- 'list',
93
- 'selectionstart',
94
- 'selectionend',
95
- 'selectiondirection',
96
- ]),
97
- '[type=tel]': new Set([
98
- 'autocomplete',
99
- 'list',
100
- 'maxlength',
101
- 'minlength',
102
- 'pattern',
103
- 'placeholder',
104
- 'readonly',
105
- 'required',
106
- 'size',
107
- 'value',
108
- 'list',
109
- 'selectionstart',
110
- 'selectionend',
111
- 'selectiondirection',
112
- ]),
113
- '[type=email]': new Set([
114
- 'autocomplete',
115
- 'list',
116
- 'maxlength',
117
- 'minlength',
118
- 'multiple',
119
- 'pattern',
120
- 'placeholder',
121
- 'readonly',
122
- 'required',
123
- 'size',
124
- 'value',
125
- 'list',
126
- ]),
127
- '[type=password]': new Set([
128
- 'autocomplete',
129
- 'maxlength',
130
- 'minlength',
131
- 'pattern',
132
- 'placeholder',
133
- 'readonly',
134
- 'required',
135
- 'size',
136
- 'value',
137
- 'selectionstart',
138
- 'selectionend',
139
- 'selectiondirection',
140
- ]),
141
- '[type=date]': new Set([
142
- 'autocomplete',
143
- 'list',
144
- 'max',
145
- 'min',
146
- 'readonly',
147
- 'required',
148
- 'step',
149
- 'value',
150
- 'valueasdate',
151
- 'valueasnumber',
152
- 'list',
153
- ]),
154
- '[type=month]': new Set([
155
- 'autocomplete',
156
- 'list',
157
- 'max',
158
- 'min',
159
- 'readonly',
160
- 'required',
161
- 'step',
162
- 'value',
163
- 'valueasdate',
164
- 'valueasnumber',
165
- 'list',
166
- ]),
167
- '[type=week]': new Set([
168
- 'autocomplete',
169
- 'list',
170
- 'max',
171
- 'min',
172
- 'readonly',
173
- 'required',
174
- 'step',
175
- 'value',
176
- 'valueasdate',
177
- 'valueasnumber',
178
- 'list',
179
- ]),
180
- '[type=time]': new Set([
181
- 'autocomplete',
182
- 'list',
183
- 'max',
184
- 'min',
185
- 'readonly',
186
- 'required',
187
- 'step',
188
- 'value',
189
- 'valueasdate',
190
- 'valueasnumber',
191
- 'list',
192
- ]),
193
- '[type=datetime-local]': new Set([
194
- 'autocomplete',
195
- 'list',
196
- 'max',
197
- 'min',
198
- 'readonly',
199
- 'required',
200
- 'step',
201
- 'value',
202
- 'valueasnumber',
203
- 'list',
204
- ]),
205
- '[type=number]': new Set([
206
- 'autocomplete',
207
- 'list',
208
- 'max',
209
- 'min',
210
- 'placeholder',
211
- 'readonly',
212
- 'required',
213
- 'step',
214
- 'value',
215
- 'valueasnumber',
216
- 'list',
217
- ]),
218
- '[type=range]': new Set([
219
- 'autocomplete',
220
- 'list',
221
- 'max',
222
- 'min',
223
- 'step',
224
- 'value',
225
- 'valueasnumber',
226
- 'list',
227
- ]),
228
- '[type=color]': new Set([
229
- 'autocomplete',
230
- 'list',
231
- 'value',
232
- ]),
233
- '[type=checkbox]': new Set([
234
- 'checked',
235
- 'required',
236
- 'checked',
237
- 'value',
238
- ]),
239
- '[type=radio]': new Set([
240
- 'checked',
241
- 'required',
242
- 'checked',
243
- 'value',
244
- ]),
245
- '[type=file]': new Set([
246
- 'accept',
247
- 'multiple',
248
- 'required',
249
- 'files',
250
- 'value',
251
- ]),
252
- '[type=submit]': new Set([
253
- 'formaction',
254
- 'formenctype',
255
- 'formmethod',
256
- 'formnovalidate',
257
- 'formtarget',
258
- 'value',
259
- ]),
260
- '[type=image]': new Set([
261
- 'alt',
262
- 'formaction',
263
- 'formenctype',
264
- 'formmethod',
265
- 'formnovalidate',
266
- 'formtarget',
267
- 'height',
268
- 'src',
269
- 'width',
270
- 'value',
271
- ]),
272
- '[type=reset]': new Set([
273
- 'value',
274
- ]),
275
- '[type=button]': new Set([
276
- 'value',
277
- ]),
278
- },
42
+ HTMLInputElement: [
43
+ {
44
+ rule: {when: 'type', is: 'hidden'},
45
+ members: new Set([
46
+ 'autocomplete',
47
+ 'value',
48
+ ])
49
+ },
50
+ {
51
+ rule: {when: 'type', is: 'text'},
52
+ members: new Set([
53
+ 'autocomplete',
54
+ 'dirname',
55
+ 'list',
56
+ 'maxlength',
57
+ 'minlength',
58
+ 'pattern',
59
+ 'placeholder',
60
+ 'readonly',
61
+ 'required',
62
+ 'size',
63
+ 'value',
64
+ 'list',
65
+ 'selectionstart',
66
+ 'selectionend',
67
+ 'selectiondirection',
68
+ ])
69
+ },
70
+ {
71
+ rule: {when: 'type', is: 'search'},
72
+ members: new Set([
73
+ 'autocomplete',
74
+ 'dirname',
75
+ 'list',
76
+ 'maxlength',
77
+ 'minlength',
78
+ 'pattern',
79
+ 'placeholder',
80
+ 'readonly',
81
+ 'required',
82
+ 'size',
83
+ 'value',
84
+ 'list',
85
+ 'selectionstart',
86
+ 'selectionend',
87
+ 'selectiondirection',
88
+ ])
89
+ },
90
+ {
91
+ rule: {when: 'type', is: 'url'},
92
+ members: new Set([
93
+ 'autocomplete',
94
+ 'list',
95
+ 'maxlength',
96
+ 'minlength',
97
+ 'pattern',
98
+ 'placeholder',
99
+ 'readonly',
100
+ 'required',
101
+ 'size',
102
+ 'value',
103
+ 'list',
104
+ 'selectionstart',
105
+ 'selectionend',
106
+ 'selectiondirection',
107
+ ])
108
+ },
109
+ {
110
+ rule: {when: 'type', is: 'tel'},
111
+ members: new Set([
112
+ 'autocomplete',
113
+ 'list',
114
+ 'maxlength',
115
+ 'minlength',
116
+ 'pattern',
117
+ 'placeholder',
118
+ 'readonly',
119
+ 'required',
120
+ 'size',
121
+ 'value',
122
+ 'list',
123
+ 'selectionstart',
124
+ 'selectionend',
125
+ 'selectiondirection',
126
+ ])
127
+ },
128
+ {
129
+ rule: {when: 'type', is: 'email'},
130
+ members: new Set([
131
+ 'autocomplete',
132
+ 'list',
133
+ 'maxlength',
134
+ 'minlength',
135
+ 'multiple',
136
+ 'pattern',
137
+ 'placeholder',
138
+ 'readonly',
139
+ 'required',
140
+ 'size',
141
+ 'value',
142
+ 'list',
143
+ ])
144
+ },
145
+ {
146
+ rule: {when: 'type', is: 'password'},
147
+ members: new Set([
148
+ 'autocomplete',
149
+ 'maxlength',
150
+ 'minlength',
151
+ 'pattern',
152
+ 'placeholder',
153
+ 'readonly',
154
+ 'required',
155
+ 'size',
156
+ 'value',
157
+ 'selectionstart',
158
+ 'selectionend',
159
+ 'selectiondirection',
160
+ ])
161
+ },
162
+ {
163
+ rule: {when: 'type', is: 'date'},
164
+ members: new Set([
165
+ 'autocomplete',
166
+ 'list',
167
+ 'max',
168
+ 'min',
169
+ 'readonly',
170
+ 'required',
171
+ 'step',
172
+ 'value',
173
+ 'valueasdate',
174
+ 'valueasnumber',
175
+ 'list',
176
+ ])
177
+ },
178
+ {
179
+ rule: {when: 'type', is: 'month'},
180
+ members: new Set([
181
+ 'autocomplete',
182
+ 'list',
183
+ 'max',
184
+ 'min',
185
+ 'readonly',
186
+ 'required',
187
+ 'step',
188
+ 'value',
189
+ 'valueasdate',
190
+ 'valueasnumber',
191
+ 'list',
192
+ ])
193
+ },
194
+ {
195
+ rule: {when: 'type', is: 'week'},
196
+ members: new Set([
197
+ 'autocomplete',
198
+ 'list',
199
+ 'max',
200
+ 'min',
201
+ 'readonly',
202
+ 'required',
203
+ 'step',
204
+ 'value',
205
+ 'valueasdate',
206
+ 'valueasnumber',
207
+ 'list',
208
+ ])
209
+ },
210
+ {
211
+ rule: {when: 'type', is: 'time'},
212
+ members: new Set([
213
+ 'autocomplete',
214
+ 'list',
215
+ 'max',
216
+ 'min',
217
+ 'readonly',
218
+ 'required',
219
+ 'step',
220
+ 'value',
221
+ 'valueasdate',
222
+ 'valueasnumber',
223
+ 'list',
224
+ ])
225
+ },
226
+ {
227
+ rule: {when: 'type', is: 'datetime-local'},
228
+ members: new Set([
229
+ 'autocomplete',
230
+ 'list',
231
+ 'max',
232
+ 'min',
233
+ 'readonly',
234
+ 'required',
235
+ 'step',
236
+ 'value',
237
+ 'valueasnumber',
238
+ 'list',
239
+ ])
240
+ },
241
+ {
242
+ rule: {when: 'type', is: 'number'},
243
+ members: new Set([
244
+ 'autocomplete',
245
+ 'list',
246
+ 'max',
247
+ 'min',
248
+ 'placeholder',
249
+ 'readonly',
250
+ 'required',
251
+ 'step',
252
+ 'value',
253
+ 'valueasnumber',
254
+ 'list',
255
+ ])
256
+ },
257
+ {
258
+ rule: {when: 'type', is: 'range'},
259
+ members: new Set([
260
+ 'autocomplete',
261
+ 'list',
262
+ 'max',
263
+ 'min',
264
+ 'step',
265
+ 'value',
266
+ 'valueasnumber',
267
+ 'list',
268
+ ])
269
+ },
270
+ {
271
+ rule: {when: 'type', is: 'color'},
272
+ members: new Set([
273
+ 'autocomplete',
274
+ 'list',
275
+ 'value',
276
+ ])
277
+ },
278
+ {
279
+ rule: {when: 'type', is: 'checkbox'},
280
+ members: new Set([
281
+ 'checked',
282
+ 'required',
283
+ 'checked',
284
+ 'value',
285
+ ])
286
+ },
287
+ {
288
+ rule: {when: 'type', is: 'radio'},
289
+ members: new Set([
290
+ 'checked',
291
+ 'required',
292
+ 'checked',
293
+ 'value',
294
+ ])
295
+ },
296
+ {
297
+ rule: {when: 'type', is: 'file'},
298
+ members: new Set([
299
+ 'accept',
300
+ 'multiple',
301
+ 'required',
302
+ 'files',
303
+ 'value',
304
+ ])
305
+ },
306
+ {
307
+ rule: {when: 'type', is: 'submit'},
308
+ members: new Set([
309
+ 'formaction',
310
+ 'formenctype',
311
+ 'formmethod',
312
+ 'formnovalidate',
313
+ 'formtarget',
314
+ 'value',
315
+ ])
316
+ },
317
+ {
318
+ rule: {when: 'type', is: 'image'},
319
+ members: new Set([
320
+ 'alt',
321
+ 'formaction',
322
+ 'formenctype',
323
+ 'formmethod',
324
+ 'formnovalidate',
325
+ 'formtarget',
326
+ 'height',
327
+ 'src',
328
+ 'width',
329
+ 'value',
330
+ ])
331
+ },
332
+ {
333
+ rule: {when: 'type', is: 'reset'},
334
+ members: new Set([
335
+ 'value',
336
+ ])
337
+ },
338
+ {
339
+ rule: {when: 'type', is: 'button'},
340
+ members: new Set([
341
+ 'value',
342
+ ])
343
+ },
344
+ ],
279
345
  };
@@ -2,7 +2,7 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- import {GLOBAL_ATTRIBUTES, SPECS, VALID_MEMBERS} from './config.js';
5
+ import {APPLICABLE_MEMBERS, GLOBAL_ATTRIBUTES, SPECS} from './config.js';
6
6
  import {merge} from './util.js';
7
7
 
8
8
  /**
@@ -40,7 +40,7 @@ function transform({name, idls}, output = {}) {
40
40
  case 'dictionary': {
41
41
  output[idl.name] = output[idl.name] ?? makeEntry();
42
42
  let props = idl.members?.filter(member => ACCEPTED_MEMBER_TYPES.has(member.type));
43
- props = props?.map(member => [member.name, {global: GLOBAL_ATTRIBUTES.has(member.name), specs: [name]}, ]);
43
+ props = props?.map(member => [member.name, {specs: [name]}]);
44
44
  merge(output[idl.name], {
45
45
  inheritance: idl.inheritance,
46
46
  props: Object.fromEntries(props),
@@ -71,22 +71,33 @@ function transform({name, idls}, output = {}) {
71
71
  /**
72
72
  * Adds additional metadata to the DOM pinned properties dataset.
73
73
  *
74
- * Currently only adds information about which properties are valid based on
75
- * some state, such as for the HTMLInputElement. See `VALID_MEMBERS`.
74
+ * Currently:
75
+ * - Adds a field specifying whether a member is a global attribute or not.
76
+ * - Adds information about which properties are "applicable" members for
77
+ * certain "states" their parent WebIDL type can be in, such as for the
78
+ * HTMLInputElement where the set of valid members are determined by the "type"
79
+ * property. See `APPLICABLE_MEMBERS`.
76
80
  *
77
81
  * @param {*} output
78
82
  */
79
83
  export function addMetadata(output) {
80
84
  for (const [key, value] of Object.entries(output)) {
81
- const rule = VALID_MEMBERS[key];
82
- if (!rule) {
83
- continue;
85
+ for (const [name, prop] of Object.entries(value.props)) {
86
+ prop.global = GLOBAL_ATTRIBUTES.has(name);
87
+
88
+ const rules = APPLICABLE_MEMBERS[key];
89
+ if (!rules) {
90
+ continue;
91
+ }
92
+
93
+ for (const {rule, members} of rules) {
94
+ if (members.has(name.toLowerCase())) {
95
+ merge(prop, {rules: [rule]});
96
+ }
97
+ }
98
+
99
+ value.rules = rules.map(({rule}) => rule);
84
100
  }
85
- const states = Object.entries(rule).map(([selector, allowlist]) => {
86
- const valid = Object.entries(value.props).filter(([prop]) => allowlist.has(prop.toLowerCase()));
87
- return [selector, Object.fromEntries(valid)];
88
- });
89
- value.states = Object.fromEntries(states);
90
101
  }
91
102
  return output;
92
103
  }