conversation-design-system
Version:
> 💁♀️ This repository contains an Assistant to help designers adhere to the conventions in the > Conversation Design System. It defines the following rules...
1 lines • 142 kB
JavaScript
var _sketch="object"==typeof _sketch?_sketch:{};_sketch.assistants=_sketch.assistants||{},_sketch.assistants["conversation-design-system"]=function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=41)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isChildOfClass=t.isCombinedShapeChildLayer=t.createImageProcessor=t.createNamePatternRuleFunction=void 0;var n=r(1),i=r(5);t.createImageProcessor=e=>{const t=new Map,r=async(r,n,i,o)=>{const a={object:n,frame:i,type:o,imageMetadata:await e(r)};if(t.has(r)){const e=t.get(r);null==e||e.push(a)}else t.set(r,[a])},i=[];return{handleLayerImages(e){const{frame:t}=e;if("bitmap"===e._class&&e.image&&"MSJSONFileReference"===e.image._class&&i.push(r(e.image._ref,e,t,"bitmap")),"string"!==e.sharedStyleID&&e.style&&e.style.fills)for(const o of e.style.fills)o.fillType===n.FileFormat.FillType.Pattern&&o.image&&"MSJSONFileReference"===o.image._class&&i.push(r(o.image._ref,e,t,"fill"))},getResults:async()=>(await Promise.all(i),t)}};t.createNamePatternRuleFunction=(e,t)=>{function r(e){if(!Array.isArray(e))throw new Error("Option value is not an array");for(let t=0;t<e.length;t++)if("string"!=typeof e[t])throw new Error("Option array element is not a string")}return async n=>{const{utils:i}=n,o=i.getOption("allowed"),a=i.getOption("forbidden");r(o),r(a);const s=o.map(e=>new RegExp(e)),l=a.map(e=>new RegExp(e));for(const r of t)for(const t of i.objects[r]){if(!("name"in t))continue;const r=0===s.length||s.map(e=>e.test(t.name)).includes(!0);l.map(e=>e.test(t.name)).includes(!0)?i.report(e._({id:"Layer name matches one of the forbidden patterns"}),t):r||i.report(e._({id:"Layer name does not match any of the allowed patterns"}),t)}}};t.isCombinedShapeChildLayer=(e,t)=>{const r=t.getObjectParents(e),o=r[r.length-2];return(0,i.isSketchFileObject)(o)&&o._class===n.FileFormat.ClassValue.ShapeGroup};t.isChildOfClass=(e,t,r)=>[...r.getObjectParents(e).filter(i.isSketchFileObject).map(e=>e._class),e._class].includes(t)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const n=r(132);t.FileFormat=n.FileFormat3,function(e){e[e.info=1]="info",e[e.warn=2]="warn",e[e.error=3]="error"}(t.ViolationSeverity||(t.ViolationSeverity={})),function(e){e.Sketch="Sketch",e.Node="Node"}(t.AssistantRuntime||(t.AssistantRuntime={})),function(e){e.active="active",e.severity="severity",e.ruleTitle="ruleTitle"}(t.ReservedRuleOptionNames||(t.ReservedRuleOptionNames={}))},function(e,t){var r=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(e,t){var r=e.exports={version:"2.6.11"};"number"==typeof __e&&(__e=r)},function(e,t,r){e.exports=!r(9)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isObject=i,t.assertObject=function(e){if(!i(e))throw Error("AssertionError: value is not an object")},t.isArray=o,t.assertArray=function(e){if(!o(e))throw Error("AssertionError: value is not an array")},t.isSketchFileObject=s,t.assertSketchFileObject=function(e){if(!s(e))throw Error("AssertionError: value is not a Sketch file object")},t.isStringArray=a,t.assertStringArray=function(e){if(!a(e))throw Error("AssertionError: value is not an array of strings")},t.isNumber=l,t.assertNumber=function(e){if(!l(e))throw Error("AssertionError: value is not a number")};var n=r(1);function i(e){return"object"==typeof e&&null!==e}function o(e){return"object"==typeof e&&null!==e&&e.constructor===Array}function a(e){return o(e)&&"string"==typeof e[0]}function s(e){if(!i(e))return!1;const t="_class"in e&&"string"==typeof e._class?e._class:"";return Object.values(n.FileFormat.ClassValue).includes(t)}function l(e){return"number"==typeof e}},function(e,t,r){var n=r(15),i=r(32),o=r(21),a=Object.defineProperty;t.f=r(4)?Object.defineProperty:function(e,t,r){if(n(e),t=o(t,!0),n(r),i)try{return a(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e}},function(e,t){var r={}.hasOwnProperty;e.exports=function(e,t){return r.call(e,t)}},function(e,t,r){var n=r(6),i=r(16);e.exports=r(4)?function(e,t,r){return n.f(e,t,i(1,r))}:function(e,t,r){return e[t]=r,e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,r){var n=r(35),i=r(22);e.exports=function(e){return n(i(e))}},function(e,t,r){var n=r(25)("wks"),i=r(18),o=r(2).Symbol,a="function"==typeof o;(e.exports=function(e){return n[e]||(n[e]=a&&o[e]||(a?o:i)("Symbol."+e))}).store=n},function(e,t,r){var n=r(2),i=r(3),o=r(50),a=r(8),s=r(7),l=function(e,t,r){var u,d,c,m=e&l.F,h=e&l.G,f=e&l.S,y=e&l.P,p=e&l.B,b=e&l.W,g=h?i:i[t]||(i[t]={}),S=g.prototype,v=h?n:f?n[t]:(n[t]||{}).prototype;for(u in h&&(r=t),r)(d=!m&&v&&void 0!==v[u])&&s(g,u)||(c=d?v[u]:r[u],g[u]=h&&"function"!=typeof v[u]?r[u]:p&&d?o(c,n):b&&v[u]==c?function(e){var t=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,n)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(c):y&&"function"==typeof c?o(Function.call,c):c,y&&((g.virtual||(g.virtual={}))[u]=c,e&l.R&&S&&!S[u]&&a(S,u,c)))};l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,e.exports=l},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,r){var n=r(34),i=r(26);e.exports=Object.keys||function(e){return n(e,i)}},function(e,t,r){var n=r(13);e.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){e.exports=!0},function(e,t){var r=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++r+n).toString(36))}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,r){var n=r(22);e.exports=function(e){return Object(n(e))}},function(e,t,r){var n=r(13);e.exports=function(e,t){if(!n(e))return e;var r,i;if(t&&"function"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;if("function"==typeof(r=e.valueOf)&&!n(i=r.call(e)))return i;if(!t&&"function"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){var r=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:r)(e)}},function(e,t,r){var n=r(25)("keys"),i=r(18);e.exports=function(e){return n[e]||(n[e]=i(e))}},function(e,t,r){var n=r(3),i=r(2),o=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:n.version,mode:r(17)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){e.exports={}},function(e,t,r){var n=r(6).f,i=r(7),o=r(11)("toStringTag");e.exports=function(e,t,r){e&&!i(e=r?e:e.prototype,o)&&n(e,o,{configurable:!0,value:t})}},function(e,t,r){t.f=r(11)},function(e,t,r){var n=r(2),i=r(3),o=r(17),a=r(30),s=r(6).f;e.exports=function(e){var t=i.Symbol||(i.Symbol=o?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:a.f(e)})}},function(e,t,r){e.exports=!r(4)&&!r(9)((function(){return 7!=Object.defineProperty(r(33)("div"),"a",{get:function(){return 7}}).a}))},function(e,t,r){var n=r(13),i=r(2).document,o=n(i)&&n(i.createElement);e.exports=function(e){return o?i.createElement(e):{}}},function(e,t,r){var n=r(7),i=r(10),o=r(53)(!1),a=r(24)("IE_PROTO");e.exports=function(e,t){var r,s=i(e),l=0,u=[];for(r in s)r!=a&&n(s,r)&&u.push(r);for(;t.length>l;)n(s,r=t[l++])&&(~o(u,r)||u.push(r));return u}},function(e,t,r){var n=r(36);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==n(e)?e.split(""):Object(e)}},function(e,t){var r={}.toString;e.exports=function(e){return r.call(e).slice(8,-1)}},function(e,t,r){"use strict";var n=r(17),i=r(12),o=r(38),a=r(8),s=r(28),l=r(65),u=r(29),d=r(68),c=r(11)("iterator"),m=!([].keys&&"next"in[].keys()),h=function(){return this};e.exports=function(e,t,r,f,y,p,b){l(r,t,f);var g,S,v,w=function(e){if(!m&&e in O)return O[e];switch(e){case"keys":case"values":return function(){return new r(this,e)}}return function(){return new r(this,e)}},x=t+" Iterator",L="values"==y,_=!1,O=e.prototype,A=O[c]||O["@@iterator"]||y&&O[y],I=A||w(y),T=y?L?w("entries"):I:void 0,M="Array"==t&&O.entries||A;if(M&&(v=d(M.call(new e)))!==Object.prototype&&v.next&&(u(v,x,!0),n||"function"==typeof v[c]||a(v,c,h)),L&&A&&"values"!==A.name&&(_=!0,I=function(){return A.call(this)}),n&&!b||!m&&!_&&O[c]||a(O,c,I),s[t]=I,s[x]=h,y)if(g={values:L?I:w("values"),keys:p?I:w("keys"),entries:T},b)for(S in g)S in O||o(O,S,g[S]);else i(i.P+i.F*(m||_),t,g);return g}},function(e,t,r){e.exports=r(8)},function(e,t,r){var n=r(15),i=r(66),o=r(26),a=r(24)("IE_PROTO"),s=function(){},l=function(){var e,t=r(33)("iframe"),n=o.length;for(t.style.display="none",r(67).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),l=e.F;n--;)delete l.prototype[o[n]];return l()};e.exports=Object.create||function(e,t){var r;return null!==e?(s.prototype=n(e),r=new s,s.prototype=null,r[a]=e):r=l(),void 0===t?r:i(r,t)}},function(e,t,r){var n=r(34),i=r(26).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return n(e,i)}},function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))((function(i,o){function a(e){try{l(n.next(e))}catch(e){o(e)}}function s(e){try{l(n.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(a,s)}l((n=n.apply(e,t||[])).next())}))},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const o=i(r(42)),a=r(130),s=r(131),l=[o.default,()=>n(void 0,void 0,void 0,(function*(){return{name:"conversation-design-system",rules:[a.pageNaming,s.overrideNaming],config:{rules:{"conversation-design-system/pages-required":{active:!0,required:["⚛️ symbols","💁♂️ component overview"]},"@sketch-hq/sketch-core-assistant/name-pattern-pages":{active:!0,allowed:["⚛️ symbols","💁♂️ component overview","💁\\S\\S component overview","💁♀️ component overview","🏝 .+"],forbidden:[],ruleTitle:"Non-standard page name found"},"conversation-design-system/name-pattern-overrides":{active:!0,fillOverride:"🎨",iconOverride:"⚡️",imageOverride:"🖼",textOverride:"✏️"}}}}}))];t.default=l},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.createI18NObject=void 0;var n=r(43),i=q(r(89)),o=q(r(90)),a=q(r(91)),s=q(r(92)),l=q(r(93)),u=q(r(94)),d=q(r(95)),c=q(r(96)),m=q(r(97)),h=q(r(98)),f=q(r(99)),y=q(r(100)),p=q(r(101)),b=q(r(102)),g=q(r(103)),S=q(r(104)),v=q(r(105)),w=q(r(106)),x=q(r(107)),L=q(r(108)),_=q(r(109)),O=q(r(110)),A=q(r(111)),I=q(r(112)),T=q(r(113)),M=q(r(114)),F=q(r(115)),R=q(r(116)),j=q(r(117)),P=q(r(118)),C=q(r(119)),z=q(r(120)),N=q(r(121)),D=q(r(122)),k=q(r(123)),E=q(r(124)),G=q(r(125)),B=q(r(126)),H=q(r(127)),V=U(r(128)),W=U(r(129));function U(e){return e&&e.__esModule?e:{default:e}}function J(){if("function"!=typeof WeakMap)return null;var e=new WeakMap;return J=function(){return e},e}function q(e){if(e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var t=J();if(t&&t.has(e))return t.get(e);var r={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)){var o=n?Object.getOwnPropertyDescriptor(e,i):null;o&&(o.get||o.set)?Object.defineProperty(r,i,o):r[i]=e[i]}return r.default=e,t&&t.set(e,r),r}function $(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?$(Object(r),!0).forEach((function(t){K(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function K(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}const Y=e=>(0,n.setupI18n)({language:["en","zh-Hans"].includes(e.locale)?e.locale:"en",catalogs:{en:V.default,"zh-Hans":W.default}});t.createI18NObject=Y;var Q=async e=>{const t=Y(e),r="@sketch-hq/sketch-core-assistant";return{name:r,rules:[i,o,a,s,l,u,d,c,m,h,f,y,p,b,g,S,v,w,x,L,_,O,A,I,T,M,F,R,j,P,C,z,N,D,k,E,G,B,H].map(e=>{const n=e.createRule(t);return Z(Z({},n),{},{name:`${r}/${n.name}`})}),config:{rules:{}}}};t.default=Q},function(e,t,r){e.exports=r(44)},function(e,t,r){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(t,"__esModule",{value:!0});var i=n(r(45)),o=n(r(46)),a=n(r(56)),s=n(r(60)),l=n(r(84)),u=n(r(85));function d(e){return"function"==typeof e}function c(e){var t=new Intl.DateTimeFormat(e,1<arguments.length&&void 0!==arguments[1]?arguments[1]:{});return function(e){return"string"==typeof e&&(e=new Date(e)),t.format(e)}}function m(e){var t=new Intl.NumberFormat(e,1<arguments.length&&void 0!==arguments[1]?arguments[1]:{});return function(e){return t.format(e)}}function h(e){var t=e.values,r=function(e,t){function r(e,r){return function(n){n=d(r)?r(n):r,n=Array.isArray(n)?n:[n];var i=new Intl.NumberFormat(t).format(e);return n.map((function(e){return"string"==typeof e?e.replace("#",i):e}))}}function n(e){return"string"==typeof e?a[e]||{style:e}:e}var o=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},a=3<arguments.length&&void 0!==arguments[3]?arguments[3]:{};t=t||e;var s=o.plurals;return{plural:function(e,t){var n=t.offset;return r(e-(n=void 0===n?0:n),t=(t=i(t,["offset"]))[e]||t[s(e-n)])},selectordinal:function(e,t){var n=t.offset;return r(e-(n=void 0===n?0:n),t=(t=i(t,["offset"]))[e]||t[s(e-n,!0)])},select:function(e,t){return t[e]||t.other},number:function(e,r){return m(t,n(r))(e)},date:function(e,r){return c(t,n(r))(e)},undefined:function(e){return e}}}(e.language,e.locales,e.languageData,e.formats);return function e(n,i,o){return n=d(n=r[i](t[n],o))?n(e):n,Array.isArray(n)?n.join(""):n}}function f(e,t,r,n){return function(i){var o=e(h({language:t,locales:r,languageData:n,formats:1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},values:i}));return Array.isArray(o)?o.join("").trim():o}}var y=function(){function e(){l(this,e),this._activeMessages={},this._catalogs={}}return u(e,[{key:"_cacheActiveLanguage",value:function(){var e=this._catalogs[this.language],t=(e||{}).languageData||{};this._activeMessages=(e||{}).messages||{},this._activeLanguageData=t}},{key:"load",value:function(e){var t=this;"object"===(void 0===e?"undefined":s(e))&&(a(o({},this._catalogs,e)).forEach((function(r){t._catalogs[r]={messages:o({},(t._catalogs[r]||{}).messages||{},(e[r]||{}).messages||{}),languageData:o({},(t._catalogs[r]||{}).languageData||{},(e[r]||{}).languageData||{})}})),this._cacheActiveLanguage())}},{key:"activate",value:function(e,t){e&&(this._language=e,this._locales=t,this._cacheActiveLanguage())}},{key:"use",value:function(e,t){return p({language:e,locales:t,catalogs:this._catalogs,development:this._dev})}},{key:"_",value:function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{},n=r.defaults;r=void 0===(r=r.formats)?{}:r,e&&"object"===(void 0===e?"undefined":s(e))&&(t=e.values,n=e.defaults,r=e.formats,e=e.id),n=this.messages[e]||n||e;var i=this._missing;return i&&!this.messages[e]&&(n=d(i)?i(this.language,e):i),d(n)?f(n,this.language,this.locales,this.languageData)(t,r):n}},{key:"pluralForm",value:function(e){return this.languageData.plurals?this.languageData.plurals(e,"ordinal"===(1<arguments.length&&void 0!==arguments[1]?arguments[1]:"cardinal")):"other"}},{key:"date",value:function(e,t){return c(this.locales||this.language,t)(e)}},{key:"number",value:function(e,t){return m(this.locales||this.language,t)(e)}},{key:"availableLanguages",get:function(){return a(this._catalogs)}},{key:"language",get:function(){return this._language}},{key:"locales",get:function(){return this._locales}},{key:"messages",get:function(){return this._activeMessages}},{key:"languageData",get:function(){return this._activeLanguageData}}]),e}();function p(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=new y;return e.catalogs&&t.load(e.catalogs),e.language&&t.activate(e.language,e.locales),e.missing&&(t._missing=e.missing),t}var b=p();t.i18nMark=function(e){return e},t.i18n=b,t.setupI18n=p,t.date=c,t.number=m},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e,t){var r={};for(var n in e)t.indexOf(n)>=0||Object.prototype.hasOwnProperty.call(e,n)&&(r[n]=e[n]);return r}},function(e,t,r){"use strict";t.__esModule=!0;var n,i=r(47),o=(n=i)&&n.__esModule?n:{default:n};t.default=o.default||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}},function(e,t,r){e.exports={default:r(48),__esModule:!0}},function(e,t,r){r(49),e.exports=r(3).Object.assign},function(e,t,r){var n=r(12);n(n.S+n.F,"Object",{assign:r(52)})},function(e,t,r){var n=r(51);e.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,i){return e.call(t,r,n,i)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,r){"use strict";var n=r(4),i=r(14),o=r(27),a=r(19),s=r(20),l=r(35),u=Object.assign;e.exports=!u||r(9)((function(){var e={},t={},r=Symbol(),n="abcdefghijklmnopqrst";return e[r]=7,n.split("").forEach((function(e){t[e]=e})),7!=u({},e)[r]||Object.keys(u({},t)).join("")!=n}))?function(e,t){for(var r=s(e),u=arguments.length,d=1,c=o.f,m=a.f;u>d;)for(var h,f=l(arguments[d++]),y=c?i(f).concat(c(f)):i(f),p=y.length,b=0;p>b;)h=y[b++],n&&!m.call(f,h)||(r[h]=f[h]);return r}:u},function(e,t,r){var n=r(10),i=r(54),o=r(55);e.exports=function(e){return function(t,r,a){var s,l=n(t),u=i(l.length),d=o(a,u);if(e&&r!=r){for(;u>d;)if((s=l[d++])!=s)return!0}else for(;u>d;d++)if((e||d in l)&&l[d]===r)return e||d||0;return!e&&-1}}},function(e,t,r){var n=r(23),i=Math.min;e.exports=function(e){return e>0?i(n(e),9007199254740991):0}},function(e,t,r){var n=r(23),i=Math.max,o=Math.min;e.exports=function(e,t){return(e=n(e))<0?i(e+t,0):o(e,t)}},function(e,t,r){e.exports={default:r(57),__esModule:!0}},function(e,t,r){r(58),e.exports=r(3).Object.keys},function(e,t,r){var n=r(20),i=r(14);r(59)("keys",(function(){return function(e){return i(n(e))}}))},function(e,t,r){var n=r(12),i=r(3),o=r(9);e.exports=function(e,t){var r=(i.Object||{})[e]||Object[e],a={};a[e]=t(r),n(n.S+n.F*o((function(){r(1)})),"Object",a)}},function(e,t,r){"use strict";t.__esModule=!0;var n=a(r(61)),i=a(r(73)),o="function"==typeof i.default&&"symbol"==typeof n.default?function(e){return typeof e}:function(e){return e&&"function"==typeof i.default&&e.constructor===i.default&&e!==i.default.prototype?"symbol":typeof e};function a(e){return e&&e.__esModule?e:{default:e}}t.default="function"==typeof i.default&&"symbol"===o(n.default)?function(e){return void 0===e?"undefined":o(e)}:function(e){return e&&"function"==typeof i.default&&e.constructor===i.default&&e!==i.default.prototype?"symbol":void 0===e?"undefined":o(e)}},function(e,t,r){e.exports={default:r(62),__esModule:!0}},function(e,t,r){r(63),r(69),e.exports=r(30).f("iterator")},function(e,t,r){"use strict";var n=r(64)(!0);r(37)(String,"String",(function(e){this._t=String(e),this._i=0}),(function(){var e,t=this._t,r=this._i;return r>=t.length?{value:void 0,done:!0}:(e=n(t,r),this._i+=e.length,{value:e,done:!1})}))},function(e,t,r){var n=r(23),i=r(22);e.exports=function(e){return function(t,r){var o,a,s=String(i(t)),l=n(r),u=s.length;return l<0||l>=u?e?"":void 0:(o=s.charCodeAt(l))<55296||o>56319||l+1===u||(a=s.charCodeAt(l+1))<56320||a>57343?e?s.charAt(l):o:e?s.slice(l,l+2):a-56320+(o-55296<<10)+65536}}},function(e,t,r){"use strict";var n=r(39),i=r(16),o=r(29),a={};r(8)(a,r(11)("iterator"),(function(){return this})),e.exports=function(e,t,r){e.prototype=n(a,{next:i(1,r)}),o(e,t+" Iterator")}},function(e,t,r){var n=r(6),i=r(15),o=r(14);e.exports=r(4)?Object.defineProperties:function(e,t){i(e);for(var r,a=o(t),s=a.length,l=0;s>l;)n.f(e,r=a[l++],t[r]);return e}},function(e,t,r){var n=r(2).document;e.exports=n&&n.documentElement},function(e,t,r){var n=r(7),i=r(20),o=r(24)("IE_PROTO"),a=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),n(e,o)?e[o]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,r){r(70);for(var n=r(2),i=r(8),o=r(28),a=r(11)("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),l=0;l<s.length;l++){var u=s[l],d=n[u],c=d&&d.prototype;c&&!c[a]&&i(c,a,u),o[u]=o.Array}},function(e,t,r){"use strict";var n=r(71),i=r(72),o=r(28),a=r(10);e.exports=r(37)(Array,"Array",(function(e,t){this._t=a(e),this._i=0,this._k=t}),(function(){var e=this._t,t=this._k,r=this._i++;return!e||r>=e.length?(this._t=void 0,i(1)):i(0,"keys"==t?r:"values"==t?e[r]:[r,e[r]])}),"values"),o.Arguments=o.Array,n("keys"),n("values"),n("entries")},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,r){e.exports={default:r(74),__esModule:!0}},function(e,t,r){r(75),r(81),r(82),r(83),e.exports=r(3).Symbol},function(e,t,r){"use strict";var n=r(2),i=r(7),o=r(4),a=r(12),s=r(38),l=r(76).KEY,u=r(9),d=r(25),c=r(29),m=r(18),h=r(11),f=r(30),y=r(31),p=r(77),b=r(78),g=r(15),S=r(13),v=r(20),w=r(10),x=r(21),L=r(16),_=r(39),O=r(79),A=r(80),I=r(27),T=r(6),M=r(14),F=A.f,R=T.f,j=O.f,P=n.Symbol,C=n.JSON,z=C&&C.stringify,N=h("_hidden"),D=h("toPrimitive"),k={}.propertyIsEnumerable,E=d("symbol-registry"),G=d("symbols"),B=d("op-symbols"),H=Object.prototype,V="function"==typeof P&&!!I.f,W=n.QObject,U=!W||!W.prototype||!W.prototype.findChild,J=o&&u((function(){return 7!=_(R({},"a",{get:function(){return R(this,"a",{value:7}).a}})).a}))?function(e,t,r){var n=F(H,t);n&&delete H[t],R(e,t,r),n&&e!==H&&R(H,t,n)}:R,q=function(e){var t=G[e]=_(P.prototype);return t._k=e,t},$=V&&"symbol"==typeof P.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof P},Z=function(e,t,r){return e===H&&Z(B,t,r),g(e),t=x(t,!0),g(r),i(G,t)?(r.enumerable?(i(e,N)&&e[N][t]&&(e[N][t]=!1),r=_(r,{enumerable:L(0,!1)})):(i(e,N)||R(e,N,L(1,{})),e[N][t]=!0),J(e,t,r)):R(e,t,r)},K=function(e,t){g(e);for(var r,n=p(t=w(t)),i=0,o=n.length;o>i;)Z(e,r=n[i++],t[r]);return e},Y=function(e){var t=k.call(this,e=x(e,!0));return!(this===H&&i(G,e)&&!i(B,e))&&(!(t||!i(this,e)||!i(G,e)||i(this,N)&&this[N][e])||t)},Q=function(e,t){if(e=w(e),t=x(t,!0),e!==H||!i(G,t)||i(B,t)){var r=F(e,t);return!r||!i(G,t)||i(e,N)&&e[N][t]||(r.enumerable=!0),r}},X=function(e){for(var t,r=j(w(e)),n=[],o=0;r.length>o;)i(G,t=r[o++])||t==N||t==l||n.push(t);return n},ee=function(e){for(var t,r=e===H,n=j(r?B:w(e)),o=[],a=0;n.length>a;)!i(G,t=n[a++])||r&&!i(H,t)||o.push(G[t]);return o};V||(s((P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!");var e=m(arguments.length>0?arguments[0]:void 0),t=function(r){this===H&&t.call(B,r),i(this,N)&&i(this[N],e)&&(this[N][e]=!1),J(this,e,L(1,r))};return o&&U&&J(H,e,{configurable:!0,set:t}),q(e)}).prototype,"toString",(function(){return this._k})),A.f=Q,T.f=Z,r(40).f=O.f=X,r(19).f=Y,I.f=ee,o&&!r(17)&&s(H,"propertyIsEnumerable",Y,!0),f.f=function(e){return q(h(e))}),a(a.G+a.W+a.F*!V,{Symbol:P});for(var te="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),re=0;te.length>re;)h(te[re++]);for(var ne=M(h.store),ie=0;ne.length>ie;)y(ne[ie++]);a(a.S+a.F*!V,"Symbol",{for:function(e){return i(E,e+="")?E[e]:E[e]=P(e)},keyFor:function(e){if(!$(e))throw TypeError(e+" is not a symbol!");for(var t in E)if(E[t]===e)return t},useSetter:function(){U=!0},useSimple:function(){U=!1}}),a(a.S+a.F*!V,"Object",{create:function(e,t){return void 0===t?_(e):K(_(e),t)},defineProperty:Z,defineProperties:K,getOwnPropertyDescriptor:Q,getOwnPropertyNames:X,getOwnPropertySymbols:ee});var oe=u((function(){I.f(1)}));a(a.S+a.F*oe,"Object",{getOwnPropertySymbols:function(e){return I.f(v(e))}}),C&&a(a.S+a.F*(!V||u((function(){var e=P();return"[null]"!=z([e])||"{}"!=z({a:e})||"{}"!=z(Object(e))}))),"JSON",{stringify:function(e){for(var t,r,n=[e],i=1;arguments.length>i;)n.push(arguments[i++]);if(r=t=n[1],(S(t)||void 0!==e)&&!$(e))return b(t)||(t=function(e,t){if("function"==typeof r&&(t=r.call(this,e,t)),!$(t))return t}),n[1]=t,z.apply(C,n)}}),P.prototype[D]||r(8)(P.prototype,D,P.prototype.valueOf),c(P,"Symbol"),c(Math,"Math",!0),c(n.JSON,"JSON",!0)},function(e,t,r){var n=r(18)("meta"),i=r(13),o=r(7),a=r(6).f,s=0,l=Object.isExtensible||function(){return!0},u=!r(9)((function(){return l(Object.preventExtensions({}))})),d=function(e){a(e,n,{value:{i:"O"+ ++s,w:{}}})},c=e.exports={KEY:n,NEED:!1,fastKey:function(e,t){if(!i(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!o(e,n)){if(!l(e))return"F";if(!t)return"E";d(e)}return e[n].i},getWeak:function(e,t){if(!o(e,n)){if(!l(e))return!0;if(!t)return!1;d(e)}return e[n].w},onFreeze:function(e){return u&&c.NEED&&l(e)&&!o(e,n)&&d(e),e}}},function(e,t,r){var n=r(14),i=r(27),o=r(19);e.exports=function(e){var t=n(e),r=i.f;if(r)for(var a,s=r(e),l=o.f,u=0;s.length>u;)l.call(e,a=s[u++])&&t.push(a);return t}},function(e,t,r){var n=r(36);e.exports=Array.isArray||function(e){return"Array"==n(e)}},function(e,t,r){var n=r(10),i=r(40).f,o={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&"[object Window]"==o.call(e)?function(e){try{return i(e)}catch(e){return a.slice()}}(e):i(n(e))}},function(e,t,r){var n=r(19),i=r(16),o=r(10),a=r(21),s=r(7),l=r(32),u=Object.getOwnPropertyDescriptor;t.f=r(4)?u:function(e,t){if(e=o(e),t=a(t,!0),l)try{return u(e,t)}catch(e){}if(s(e,t))return i(!n.f.call(e,t),e[t])}},function(e,t){},function(e,t,r){r(31)("asyncIterator")},function(e,t,r){r(31)("observable")},function(e,t,r){"use strict";t.__esModule=!0,t.default=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,r){"use strict";t.__esModule=!0;var n,i=r(86),o=(n=i)&&n.__esModule?n:{default:n};t.default=function(){function e(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),(0,o.default)(e,n.key,n)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}()},function(e,t,r){e.exports={default:r(87),__esModule:!0}},function(e,t,r){r(88);var n=r(3).Object;e.exports=function(e,t,r){return n.defineProperty(e,t,r)}},function(e,t,r){var n=r(12);n(n.S+n.F*!r(4),"Object",{defineProperty:r(6).f})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;t.createRule=e=>({rule:async t=>{const{utils:r}=t,n=[],i=r.getOption("grids");if(!Array.isArray(i)||0===i.length)return;const o=[];for(let e=0;e<i.length;e++){const t=i[e];if("object"!=typeof t)continue;const{gridBlockSize:r,thickLinesEvery:n}=t;"number"==typeof r&&"number"==typeof n&&o.push({gridBlockSize:r,thickLinesEvery:n})}for(const e of r.objects.artboard){const{grid:t}=e;if(!t){n.push(e);continue}o.map(e=>t.gridSize===e.gridBlockSize&&t.thickGridTimes===e.thickLinesEvery).includes(!0)||n.push(e)}n.forEach(t=>{r.report(e._({id:"Unexpected Artboard grid settings"}),t)})},name:"artboards-grid",title:e._({id:"Artboard grid settings should match the conventions"}),description:e._({id:"Keep your specific grid settings consistent across a document, team or project."}),getOptions:t=>[t.objectArrayOption({name:"grids",title:e._({id:"Grids"}),description:e._({id:"List of valid grids"}),props:[t.integerOption({name:"gridBlockSize",title:e._({id:"Grid Block Size"}),description:e._({id:"Grid block size in pixels"})}),t.integerOption({name:"thickLinesEvery",title:e._({id:"Thick Lines Every"}),description:e._({id:"Number of blocks between thick grid lines"})})]})]})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;t.createRule=e=>({rule:async t=>{const{utils:r}=t,n=[],i=r.getOption("layouts");if(!Array.isArray(i)||0===i.length)return;const o=[];for(let e=0;e<i.length;e++){const t=i[e];if("object"!=typeof t)continue;const r={drawVertical:!!t.drawVertical,drawHorizontal:!!t.drawHorizontal},{gutterWidth:n,columnWidth:a,guttersOutside:s,horizontalOffset:l,numberOfColumns:u,totalWidth:d}=t;r.drawVertical&&"number"==typeof n&&"number"==typeof a&&"boolean"==typeof s&&"number"==typeof l&&"number"==typeof u&&"number"==typeof d&&(r.columns={gutterWidth:n,columnWidth:a,guttersOutside:s,horizontalOffset:l,numberOfColumns:u,totalWidth:d});const{gutterHeight:c,rowHeightMultiplication:m,drawHorizontalLines:h}=t;r.drawHorizontal&&"number"==typeof c&&"number"==typeof m&&"boolean"==typeof h&&(r.rows={gutterHeight:c,rowHeightMultiplication:m,drawHorizontalLines:h}),o.push(r)}for(const e of r.objects.artboard){const{layout:t}=e;if(!t||!t.isEnabled){n.push(e);continue}const r=o.map(e=>!1===e.drawVertical||"object"==typeof e.columns&&e.columns.gutterWidth===t.gutterWidth&&e.columns.columnWidth===t.columnWidth&&e.columns.guttersOutside===t.guttersOutside&&e.columns.horizontalOffset===t.horizontalOffset&&e.columns.numberOfColumns===t.numberOfColumns&&e.columns.totalWidth===t.totalWidth).includes(!0);o.map(e=>!1===e.drawHorizontal||"object"==typeof e.rows&&e.rows.gutterHeight===t.gutterHeight&&e.rows.rowHeightMultiplication===t.rowHeightMultiplication&&e.rows.drawHorizontalLines===t.drawHorizontalLines).includes(!0)&&r||n.push(e)}n.forEach(t=>{r.report(e._({id:"Unexpected Artboard layout settings"}),t)})},name:"artboards-layout",title:e._({id:"Artboard layout settings should match the conventions"}),description:e._({id:"Keep your specific layout settings consistent across a document, team or project."}),getOptions:t=>[t.objectArrayOption({name:"layouts",title:e._({id:"Layouts"}),description:e._({id:"A list of valid layouts. Each object will use Sketch's Layout Settings options"}),props:[t.booleanOption({name:"drawVertical",title:e._({id:"Draw Vertical"}),description:e._({id:"Enables drawing columns"})}),t.numberOption({name:"totalWidth",title:e._({id:"Total Width"}),description:e._({id:"Total width of layout"})}),t.numberOption({name:"horizontalOffset",title:e._({id:"Horizontal Offset"}),description:e._({id:"Horizontal offset of layout"})}),t.numberOption({name:"numberOfColumns",title:e._({id:"Number of Columns"}),description:e._({id:"Number of columns in the layout"})}),t.booleanOption({name:"guttersOutside",title:e._({id:"Gutters Outside"}),description:e._({id:"Draw gutters on the outside"})}),t.numberOption({name:"gutterWidth",title:e._({id:"Gutter Width"}),description:e._({id:"Gutter width in layout"})}),t.numberOption({name:"columnWidth",title:e._({id:"Column Width"}),description:e._({id:"Layout column widths"})}),t.booleanOption({name:"drawHorizontal",title:e._({id:"Draw Horizontal"}),description:e._({id:"Enables drawing rows"})}),t.numberOption({name:"gutterHeight",title:e._({id:"Gutter Height"}),description:e._({id:"Layout gutter height"})}),t.numberOption({name:"rowHeightMultiplication",title:e._({id:"Row Height Multiplication"}),description:"Row height multiplication"}),t.booleanOption({name:"drawHorizontalLines",title:e._({id:"Draw Horizontal Lines"}),description:e._({id:"Draw all horizontal lines"})})]})]})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;t.createRule=e=>({rule:async t=>{const{utils:r}=t,n=r.getOption("maxUngroupedLayers");!function(e){if("number"!=typeof e)throw Error()}(n);for(const t of r.objects.artboard){const i=t.layers.filter(e=>"group"!==e._class).length;i>n&&r.report(e._({id:"{nonGroupLayers, plural, one {There is one ungrouped layer within this Artboard} other {There are # ungrouped layers within this Artboard}}",values:{nonGroupLayers:i}}),t)}},name:"artboards-max-ungrouped-layers",title:t=>{const{maxUngroupedLayers:r}=t;return"number"!=typeof r?"":e._({id:"{maxUngroupedLayers, plural, one {Artboards should only have one ungrouped layers} other {Artboards should have less than # ungrouped layers}}",values:{maxUngroupedLayers:r}})},description:e._({id:"Grouping layers within your Artboards will help you stay organized."}),getOptions:t=>[t.numberOption({name:"maxUngroupedLayers",title:e._({id:"Maximum Ungrouped Layers"}),defaultValue:5,description:e._({id:"The maximum number of ungrouped layers"}),minimum:1})]})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;var n=r(0);const i=e=>!!Array.isArray(e.borders)&&(0!==e.borders.length&&e.borders.map(e=>e.isEnabled).includes(!1));t.createRule=e=>({rule:async t=>{const{utils:r}=t;for(const t of r.objects.anyLayer)"style"in t&&t.style&&"string"!=typeof t.sharedStyleID&&((0,n.isCombinedShapeChildLayer)(t,r)||i(t.style)&&r.report(e._({id:"There's a disabled border in this Style"}),t));for(const t of r.objects.sharedStyle)i(t.value)&&r.report(e._({id:"There's a disabled border in this Style"}),t)},name:"borders-no-disabled",title:e._({id:"Styles should not have disabled borders"}),description:e._({id:"Depending on what you're creating, disabled properties may cause uncertainty within your team. Removing them can help."})})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;t.createRule=e=>({rule:async()=>{},name:"debug-all-options",title:e._({id:"Debug all options"}),description:e._({id:"Internal debug rule that defines examples of all available option schema types"}),getOptions:t=>[t.numberOption({name:"numberOption",title:e._({id:"Number Option"}),defaultValue:1.5,description:e._({id:"A number option"}),minimum:0,maximum:100}),t.integerOption({name:"integerOption",title:e._({id:"Integer Option"}),defaultValue:1,description:e._({id:"An integer option"}),minimum:0,maximum:100}),t.stringOption({name:"stringOption",title:e._({id:"String Option"}),description:e._({id:"A string option"}),pattern:"^[A-Za-z\\s]*$",defaultValue:e._({id:"Default value"}),minLength:5,maxLength:20}),t.booleanOption({name:"booleanOption",title:e._({id:"Boolean Option"}),description:e._({id:"A boolean option"}),defaultValue:!0}),t.stringEnumOption({name:"stringEnumOption",title:e._({id:"String Enum Option"}),description:e._({id:"A string enum option"}),defaultValue:"foo",values:["foo","bar","baz"],valueTitles:["Foo","Bar","Baz"]}),t.stringArrayOption({name:"stringArrayOption",title:e._({id:"String Array Option"}),description:e._({id:"A string array option"}),defaultValue:["foo"],pattern:"^[A-Za-z\\s]*$",minLength:5,maxLength:20}),t.objectArrayOption({name:"objectArrayOption",title:e._({id:"Object Array Option"}),description:e._({id:"An object array option"}),props:[t.numberOption({name:"objectArrayNumberOption",title:e._({id:"Object Array Number Option"}),description:e._({id:"An object array number option"})})]})],debug:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;t.createRule=e=>({rule:async t=>{t.utils.report(e._({id:"Hello world"}))},name:"debug-i18n",title:e._({id:"Debug internationalization"}),description:e._({id:"Internal debug rule that generates a violation with a translated message"}),debug:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;t.createRule=e=>({rule:async()=>{throw new Error("Test error message")},name:"debug-throws-error",title:e._({id:"Debug throws error"}),description:e._({id:"Internal debug rule that always throws a rule error"}),debug:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;t.createRule=e=>({rule:async t=>{t.utils.report(e._({id:"This rule waits 5 seconds after reporting this violation"})),await new Promise(e=>setTimeout(e,5e3))},name:"debug-timeout",title:e._({id:"Debug timeout"}),description:e._({id:"Internal debug rule that times-out"}),debug:!0})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;var n=r(1);const i=(e=[])=>!!e.find(e=>e.contextSettings.blendMode!==n.FileFormat.BlendMode.Normal),o=[n.FileFormat.ExportFileFormat.EPS,n.FileFormat.ExportFileFormat.PDF,n.FileFormat.ExportFileFormat.SVG];t.createRule=e=>({rule:async t=>{const{utils:r}=t;for(const t of r.objects.anyLayer){var a,s,l,u,d,c;if("artboard"===t._class||"page"===t._class)continue;const{exportFormats:m}=t.exportOptions;if(0===m.length)continue;0!==m.reduce((e,t)=>[...e,t.fileFormat],[]).filter(e=>o.includes(e)).length&&((null===(a=t.style)||void 0===a||null===(s=a.contextSettings)||void 0===s?void 0:s.blendMode)===n.FileFormat.BlendMode.Normal?(i(null===(l=t.style)||void 0===l?void 0:l.fills)||i(null===(u=t.style)||void 0===u?void 0:u.borders)||i(null===(d=t.style)||void 0===d?void 0:d.shadows)||i(null===(c=t.style)||void 0===c?void 0:c.innerShadows))&&r.report(e._({id:"This exportable layer has blend modes. Try flattening them for more consistent results."}),t):r.report(e._({id:"This exportable layer has a blend mode. Try flattening it for more consistent results."}),t))}},name:"exported-layers-normal-blend-mode",title:e._({id:"Avoid blend modes on exportable layers"}),description:e._({id:"Blend mode effects depend on what's behind the layer, so exporting layers might not give you the results you want. Some teams might want to flag this to avoid mistakes."})})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;var n=r(0);const i=e=>Array.isArray(e.fills)&&e.fills.some(e=>!e.isEnabled);t.createRule=e=>({rule:async t=>{const{utils:r}=t;for(const t of r.objects.anyLayer)(0,n.isCombinedShapeChildLayer)(t,r)||"style"in t&&t.style&&"string"!=typeof t.sharedStyleID&&i(t.style)&&r.report(e._({id:"There's a disabled fill in this Style"}),t);for(const t of r.objects.sharedStyle)i(t.value)&&r.report(e._({id:"There's a disabled fill in this Style"}),t)},name:"fills-no-disabled",title:e._({id:"Styles should not have disabled fills"}),description:e._({id:"Depending on what you're creating, disabled properties may cause uncertainty within your team. Removing them can help."})})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;var n=r(5);t.createRule=e=>({rule:async t=>{const{utils:r}=t,i=r.getOption("maxLayers"),o=r.getOption("skipClasses");(0,n.assertNumber)(i),(0,n.assertArray)(o);for(const t of r.objects.anyGroup){if("shapeGroup"===t._class)continue;const n=t.layers.filter(e=>!o.includes(e._class)).length;n>i&&r.report(e._({id:"{numLayers, plural, one {There is one layer in this group} other {There are # layers in this group}}",values:{numLayers:n}}),t)}},name:"groups-max-layers",title:t=>{const{maxLayers:r}=t;return"number"!=typeof r?"":e._({id:"{maxLayers, plural, one {Groups should only have one layer} other {Groups should have no more than # layers}}",values:{maxLayers:r}})},description:e._({id:"Groups with large layer counts could be considered a document hygiene or usability concern by some teams who may wish to limit the count."}),getOptions:t=>[t.numberOption({name:"maxLayers",title:e._({id:"Maximum Layers"}),defaultValue:50,description:e._({id:"Maximum layers in a group"}),minimum:1}),t.stringArrayOption({name:"skipClasses",title:e._({id:"Skip Classes"}),description:e._({id:"An array of Sketch file class values for layers that should be skipped and not counted when calculating the number of child layers in a group"})})]})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;t.createRule=e=>({rule:async t=>{const{utils:r}=t;for(const t of r.objects.group)0===t.layers.length&&r.report(e._({id:"This group is empty"}),t)},name:"groups-no-empty",title:e._({id:"Groups should not be empty"}),description:e._({id:"Remove empty groups to avoid document organization or usability issues."})})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;t.createRule=e=>({rule:async t=>{const{utils:r}=t;for(const t of r.objects.group){const n="string"==typeof t.sharedStyleID,i=t.style&&t.style.shadows&&t.style.shadows.length>0,o=1===t.layers.length,a=o&&"group"===t.layers[0]._class;!n&&!i&&o&&a&&r.report(e._({id:"This group is redundant"}),t)}},name:"groups-no-redundant",title:e._({id:"Groups should not be redundant"}),description:e._({id:"Remove redundant groups to avoid document organization or usability issues. These are groups that aren't styled and only contain one layer."})})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;t.createRule=e=>({rule:async t=>{const{utils:r}=t,n=r.getOption("maxIdentical");!function(e){if("number"!=typeof e)throw new Error}(n);const i=new Map;for(const e of r.objects.group){const t=e.layers.length,r=e.layers.map(e=>null==e?void 0:e._class),n=e.layers.map(e=>null==e?void 0:e.name),o=JSON.stringify({numberOfLayers:t,layerTypes:r,layerNames:n}),a=i.get(o)||[];a.push(e),i.set(o,a)}for(let t of i.values())t.length>n&&t.forEach(n=>{const i=t.filter(e=>e!==n).map(e=>e.name).join();r.report(e._({id:"Group is similar to other groups: {identicalGroupNames}",values:{identicalGroupNames:i}}),n)})},name:"groups-no-similar",title:t=>{const{maxIdentical:r}=t;return"number"!=typeof r?"":e._({id:"{maxIdentical, plural, one {Similar groups should be a symbol} other {More than # similar groups should be a symbol}}",values:{maxIdentical:r}})},description:e._({id:"Don't allow groups that are too similar. Consider using a Symbol instead."}),getOptions:t=>[t.integerOption({name:"maxIdentical",title:e._({id:"Max Identical"}),description:e._({id:"The maximum number of identical groups allowed in the document"}),minimum:1,defaultValue:1})]})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;var n=r(0);const i=(e,t)=>{const{frame:r,imageMetadata:n}=e,{width:i,height:o}=n,a=r.width*t<i,s=r.height*t<o;return!a&&!s};t.createRule=e=>({rule:async t=>{const{utils:r}=t,o=r.getOption("maxRatio");!function(e){if("number"!=typeof e)throw new Error}(o);const a=(0,n.createImageProcessor)(r.getImageMetadata);for(const e of r.objects.anyLayer)a.handleLayerImages(e);const s=await a.getResults();for(const t of s.values()){if(!t.map(e=>i(e,o)).includes(!0))for(const n of t){let t;switch(n.type){case"bitmap":t=e._({id:"There's an oversized image in this layer. Images can't be more than {maxRatio}x bigger than the layer frame's width or height.",values:{maxRatio:o}});break;case"fill":t=e._({id:"There's an oversized image in this layer style image fill. Images can't be more than {maxRatio}x bigger than the layer frame's width or height.",values:{maxRatio:o}})}r.report(t,n.object)}}},name:"images-no-outsized",title:t=>{const{maxRatio:r}=t;return e._({id:"Images shouldn't be more than {maxRatio}x bigger than their frame",values:{maxRatio:r}})},description:e._({id:"Images that are bigger than they need to be swell the document size and could slow things down, so some teams might want to limit this."}),getOptions:t=>[t.numberOption({name:"maxRatio",title:e._({id:"Maximum Ratio"}),defaultValue:1,description:e._({id:"How much larger an image can be than its frame and still be considered valid"}),minimum:1})]})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;var n=r(0);const i=(e,t)=>{const{frame:r,imageMetadata:n}=e,{width:i,height:o}=n,a=i<r.width*t,s=o<r.height*t;return!a&&!s};t.createRule=e=>({rule:async t=>{const{utils:r}=t,o=r.getOption("minRatio");!function(e){if("number"!=typeof e)throw new Error}(o);const a=(0,n.createImageProcessor)(r.getImageMetadata);for(const e of r.objects.anyLayer)a.handleLayerImages(e);const s=await a.getResults();for(const t of s.values())for(const n of t)if(!i(n,o)){let t;switch(n.type){case"bitmap":t=e._({id:"There's an undersized image in this layer. Images must fill at least {0}% of the layer frame's width or height.",values:{0:100*o}});break;case"fill":t=e._({id:"There's an undersized image in this Layer Style image fill. Images must fill at least {0}% of the layer frame's width or height.",values:{0:100*o}})}r.report(t,n.object)}},name:"images-no-undersized",title:t=>{const{minRatio:r}=t;return e._({id:"Images shouldn't be less than {minRatio}x bigger than their frame",values:{minRatio:r}})},description:e._({id:"Images that are smaller than their layer might result in low-quality exported assets, so some teams might want to limit this."}),getOptions:t=>[t.numberOption({name:"minRatio",title:e._({id:"Minium Allowed Ratio"}),defaultValue:1,description:e._({id:"How much smaller an image can be in relation to its frame and still be considered valid"}),minimum:0,maximum:1})]})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;var n=r(0);const i=e=>e.innerShadows.some(e=>!e.isEnabled);t.createRule=e=>({rule:async t=>{const{utils:r}=t;for(const t of r.objects.anyLayer)(0,n.isCombinedShapeChildLayer)(t,r)||"style"in t&&t.style&&"string"!=typeof t.sharedStyleID&&i(t.style)&&r.report(e._({id:"There's a disabled inner shadow in this Style"}),t);for(const t of r.objects.sharedStyle)i(t.value)&&r.report(e._({id:"There's a disabled inner shadow in this Style"}),t)},name:"inner-shadows-no-disabled",title:e._({id:"Styles should not have disabled inner shadows"}),description:e._({id:"Depending on what you're creating, disabled properties may cause uncertainty within your team. Removing them can help."})})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;t.createRule=e=>({rule:async t=>{const{utils:r}=t;for(const t of r.objects.anyLayer)!1===t.isVisible&&r.report(e._({id:"This layer is hidden"}),t)},name:"layers-no-hidden",title:e._({id:"There should be no hidden layers"}),description:e._({id:"Hidden layers may cause uncertainty. Some teams may want to remove them."})})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;const n=e=>"artboard"!==e._class&&"symbolMaster"!==e._class;t.createRule=e=>({rule:async t=>{const{utils:r}=t;for(const t of r.objects.page)for(const i of t.layers)n(i)&&!r.isObjectIgnored(i)&&r.report(e._({id:"This layer is not inside an Artboard"}),i)},name:"layers-no-loose",title:e._({id:"Layers should not be outside artboards"}),description:e._({id:"Layers outside of Artboards aren't visible on Cloud, so some teams may want to keep all layers inside Artboards."})})},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.createRule=void 0;var n=r(5);const i={"@1x":["0.00"],"@2x":["0.00","0.50"],"@3x":["0.00","0.33","0.67"]},o=e=>{if(!e||!Array.isArray(e))return[];let t=[];for(let r=0;r<e.length;r++){const n=e[r];if("string"==typeof n){const e=i[n];Array.isArray(e)&&(t=[...t,...e])}}return[...new Set(t)]};t.createRule=e=>({rule:async t=>{const{utils:r}=t,i=o(r.getOption("scaleFactors"));for(const t of r.objects.anyLayer){if(!("frame"in t))continue;if([...r.getObjectParents(t),t].filter(n.isSketchFileObject).filter(e=>"rotation"in e&&0!==e.rotation).length>0)continue;let{x:o,y:a}=t.frame;o=Math.round(100*o)/100,a=Math.round(100*a)/100;const s=i.includes(Math.abs(o%1).toFixed(2)),l=i.includes(Math.abs(a%1).toFixed(2));s&&l||r.report(e._({id:"Unexpected sub-pixel positioning ({x}, {y})",values:{x:o,y:a}}),t)}},name:"layers-subpixel-positioning",title:t=>{const r=o(t.scaleFactors).join(", ");return e._({id:"Layers must be placed on {increments} sub-pixel increments",values:{increments:r}})