import e from"../../utils/createMapWithSet.mjs";import t from"../../utils/isStandardSyntaxAtRule.mjs";import{isString as r}from"../../utils/validateTypes.mjs";import s from"../../utils/report.mjs";import o from"../../utils/ruleMessages.mjs";import i from"../../utils/validateObjectWithArrayProps.mjs";import a from"../../utils/validateOptions.mjs";const l="at-rule-property-required-list",m=o(l,{expected:(e,t)=>`Expected property (or descriptor) "${t}" for at-rule "${e}"`}),u=o=>(u,p)=>{if(!a(p,l,{actual:o,possible:[i(r)]}))return;const n=e(o),f=new Set;u.walkAtRules(e=>{if(!t(e))return;const{name:r,nodes:o}=e;if(!o)return;const i=r.toLowerCase(),a=n.get(i);if(a){f.clear();for(const e of o){if(!e||"decl"!==e.type)continue;const t=e.prop.toLowerCase();a.has(t)&&f.add(t)}if(f.size!==a.size)for(const t of a){if(f.has(t))continue;const r=`@${e.name}`;s({message:m.expected,messageArgs:[r,t],node:e,word:r,result:p,ruleName:l})}}})};u.ruleName=l,u.messages=m,u.meta={url:"https://stylelint.io/user-guide/rules/at-rule-property-required-list"};export{u as default};