import e from"./typescript.DC8MraHL.js";const n=Object.freeze({displayName:"Imba",fileTypes:["imba","imba2"],name:"imba",patterns:[{include:"#root"},{captures:{1:{name:"punctuation.definition.comment.imba"}},match:"\\A(#!).*(?=$)",name:"comment.line.shebang.imba"}],repository:{"array-literal":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.imba"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.imba"}},name:"meta.array.literal.imba",patterns:[{include:"#expr"},{include:"#punctuation-comma"}]},block:{patterns:[{include:"#style-declaration"},{include:"#mixin-declaration"},{include:"#object-keys"},{include:"#generics-literal"},{include:"#tag-literal"},{include:"#regex"},{include:"#keywords"},{include:"#comment"},{include:"#literal"},{include:"#plain-identifiers"},{include:"#plain-accessors"},{include:"#pairs"},{include:"#invalid-indentation"}]},"boolean-literal":{patterns:[{match:"(?>>|>>|>|\\+|~",name:"punctuation.separator.combinator.css"},{match:"&",name:"keyword.other.parent-selector.css"}]},"css-commas":{match:",",name:"punctuation.separator.list.comma.css"},"css-comment":{patterns:[{match:"\\#(\\s.+)?(\\n|$)",name:"comment.line.imba"},{match:"(^\\t+)(\\#(\\s.+)?(\\n|$))",name:"comment.line.imba"}]},"css-escapes":{patterns:[{match:"\\\\[0-9a-fA-F]{1,6}",name:"constant.character.escape.codepoint.css"},{begin:"\\\\$\\s*",end:"^(?[\\w-]|[^\\\\x00-\\\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+) \\s* (?=[~|^\\]$*=]|/\\*)`}]},{include:"#css-pseudo-classes"},{include:"#css-pseudo-elements"},{include:"#css-mixin"}]},"css-size-keywords":{patterns:[{match:"(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\w-])",name:"support.constant.size.property-value.css"}]},"curly-braces":{begin:"\\s*(\\{)",beginCaptures:{1:{name:"meta.brace.curly.imba"}},end:"\\}",endCaptures:{0:{name:"meta.brace.curly.imba"}},patterns:[{include:"#expr"},{include:"#punctuation-comma"}]},decorator:{begin:"(?\\s*$)",beginCaptures:{1:{name:"punctuation.definition.comment.imba"}},end:"(?=$)",name:"comment.line.triple-slash.directive.imba",patterns:[{begin:"(<)(reference|amd-dependency|amd-module)",beginCaptures:{1:{name:"punctuation.definition.tag.directive.imba"},2:{name:"entity.name.tag.directive.imba"}},end:"/>",endCaptures:{0:{name:"punctuation.definition.tag.directive.imba"}},name:"meta.tag.imba",patterns:[{match:"path|types|no-default-lib|lib|name",name:"entity.other.attribute-name.directive.imba"},{match:"=",name:"keyword.operator.assignment.imba"},{include:"#string"}]}]},docblock:{patterns:[{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.access-type.jsdoc"}},match:`(?x) ((@)(?:access|api)) \\s+ (private|protected|public) \\b`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},5:{name:"constant.other.email.link.underline.jsdoc"},6:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},match:`(?x) ((@)author) \\s+ ( [^@\\s<>*/] (?:[^@<>*/]|\\*[^/])* ) (?: \\s* (<) ([^>\\s]+) (>) )?`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"},4:{name:"keyword.operator.control.jsdoc"},5:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) ((@)borrows) \\s+ ((?:[^@\\s*/]|\\*[^/])+) \\s+ (as) \\s+ ((?:[^@\\s*/]|\\*[^/])+)`},{begin:"((@)example)\\s+",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=@|\\*/)",name:"meta.example.jsdoc",patterns:[{match:"^\\s\\*\\s+"},{begin:"\\G(<)caption(>)",beginCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}},contentName:"constant.other.description.jsdoc",end:"()|(?=\\*/)",endCaptures:{0:{name:"entity.name.tag.inline.jsdoc"},1:{name:"punctuation.definition.bracket.angle.begin.jsdoc"},2:{name:"punctuation.definition.bracket.angle.end.jsdoc"}}},{captures:{0:{name:"source.embedded.imba"}},match:"[^\\s@*](?:[^*]|\\*[^/])*"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"constant.language.symbol-type.jsdoc"}},match:"(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.link.underline.jsdoc"},4:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) ((@)see) \\s+ (?: ( (?=https?://) (?:[^\\s*]|\\*[^/])+ ) | ( (?! https?:// | (?:\\[[^\\[\\]]*\\])? {@(?:link|linkcode|linkplain|tutorial)\\b ) (?:[^@\\s*/]|\\*[^/])+ ) )`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:`(?x) ((@)template) \\s+ # One or more valid identifiers ( [A-Za-z_$] [\\w$.\\[\\]]* (?: \\s* , \\s* [A-Za-z_$] [\\w$.\\[\\]]* )* )`},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:`(?x) ( (@) (?:arg|argument|const|constant|member|namespace|param|var) ) \\s+ ( [A-Za-z_$] [\\w$.\\[\\]]* )`},{begin:"((@)typedef)\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"(?:[^@\\s*/]|\\*[^/])+",name:"entity.name.type.instance.jsdoc"}]},{begin:"((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)",beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"},{match:"([A-Za-z_$][\\w$.\\[\\]]*)",name:"variable.other.jsdoc"},{captures:{1:{name:"punctuation.definition.optional-value.begin.bracket.square.jsdoc"},2:{name:"keyword.operator.assignment.jsdoc"},3:{name:"source.embedded.imba"},4:{name:"punctuation.definition.optional-value.end.bracket.square.jsdoc"},5:{name:"invalid.illegal.syntax.jsdoc"}},match:`(?x) (\\[)\\s* [\\w$]+ (?: (?:\\[\\])? \\. [\\w$]+ )* (?: \\s* (=) \\s* ( (?> "(?:(?:\\*(?!/))|(?:\\\\(?!"))|[^*\\\\])*?" | '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | \\[ (?:(?:\\*(?!/))|[^*])*? \\] | (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* )* ) )? \\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))`,name:"variable.other.jsdoc"}]},{begin:`(?x) ( (@) (?:define|enum|exception|export|extends|lends|implements|modifies |namespace|private|protected|returns?|suppress|this|throws|type |yields?) ) \\s+(?={)`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},end:"(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])",patterns:[{include:"#jsdoctype"}]},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"entity.name.type.instance.jsdoc"}},match:`(?x) ( (@) (?:alias|augments|callback|constructs|emits|event|fires|exports? |extends|external|function|func|host|lends|listens|interface|memberof!? |method|module|mixes|mixin|name|requires|see|this|typedef|uses) ) \\s+ ( (?: [^{}@\\s*] | \\*[^/] )+ )`},{begin:`((@)(?:default(?:value)?|license|version))\\s+(([''"]))`,beginCaptures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"},4:{name:"punctuation.definition.string.begin.jsdoc"}},contentName:"variable.other.jsdoc",end:"(\\3)|(?=$|\\*/)",endCaptures:{0:{name:"variable.other.jsdoc"},1:{name:"punctuation.definition.string.end.jsdoc"}}},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"},3:{name:"variable.other.jsdoc"}},match:"((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)"},{captures:{1:{name:"punctuation.definition.block.tag.jsdoc"}},match:"(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b",name:"storage.type.class.jsdoc"},{include:"#inline-tags"},{captures:{1:{name:"storage.type.class.jsdoc"},2:{name:"punctuation.definition.block.tag.jsdoc"}},match:"((@)(?:[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?))(?=\\s+)"}]},expr:{patterns:[{include:"#style-declaration"},{include:"#object-keys"},{include:"#generics-literal"},{include:"#tag-literal"},{include:"#regex"},{include:"#keywords"},{include:"#comment"},{include:"#literal"},{include:"#plain-identifiers"},{include:"#plain-accessors"},{include:"#pairs"}]},expression:{patterns:[{begin:"\\(",beginCaptures:{0:{name:"meta.brace.round.imba"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.imba"}},patterns:[{include:"#expr"}]},{include:"#tag-literal"},{include:"#expressionWithoutIdentifiers"},{include:"#identifiers"},{include:"#expressionPunctuations"}]},expressionPunctuations:{patterns:[{include:"#punctuation-comma"},{include:"#punctuation-accessor"}]},expressionWithoutIdentifiers:{patterns:[{include:"#string"},{include:"#regex"},{include:"#comment"},{include:"#function-expression"},{include:"#class-expression"},{include:"#ternary-expression"},{include:"#new-expr"},{include:"#instanceof-expr"},{include:"#object-literal"},{include:"#expression-operators"},{include:"#literal"},{include:"#support-objects"}]},"generics-literal":{begin:"(?<=[\\w\\]\\)])\\<",beginCaptures:{1:{name:"meta.generics.annotation.open.imba"}},end:"\\>",endCaptures:{0:{name:"meta.generics.annotation.close.imba"}},name:"meta.generics.annotation.imba",patterns:[{include:"#type-brackets"}]},"global-literal":{match:"(?\\=?|\\<\\=?)",name:"keyword.operator.imba"},{match:"(of|delete|\\!?isa|typeof|\\!?in|new|\\!?is|isnt)(?![\\?_\\-$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.))",name:"keyword.operator.imba"}]},literal:{patterns:[{include:"#number-with-unit-literal"},{include:"#numeric-literal"},{include:"#boolean-literal"},{include:"#null-literal"},{include:"#undefined-literal"},{include:"#numericConstant-literal"},{include:"#this-literal"},{include:"#global-literal"},{include:"#super-literal"},{include:"#type-literal"},{include:"#generics-literal"},{include:"#string"}]},"mixin-css-selector":{begin:"(\\%[\\w\\-]+)",beginCaptures:{1:{name:"entity.other.attribute-name.mixin.css"}},end:"(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])|\\s*$|(?=\\s+\\#\\s))",endCaptures:{0:{name:"punctuation.separator.sel-properties.css"}},name:"meta.selector.css",patterns:[{include:"#css-selector-innards"}]},"mixin-css-selector-after":{begin:"(?<=%[\\w\\-]+)(?!(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])",end:"(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])|\\s*$|(?=\\s+\\#\\s))",endCaptures:{0:{name:"punctuation.separator.sel-properties.css"}},name:"meta.selector.css",patterns:[{include:"#css-selector-innards"}]},"mixin-declaration":{begin:"^(\\t*)(\\%[\\w\\-]+)",beginCaptures:{2:{name:"entity.other.attribute-name.mixin.css"}},end:"^(?!(\\1\\t|\\s*$))",name:"meta.style.imba",patterns:[{include:"#mixin-css-selector-after"},{include:"#css-comment"},{include:"#nested-css-selector"},{include:"#inline-styles"}]},"nested-css-selector":{begin:"(^\\t+)(?!(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])",end:"(\\s*(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=])[^\\:])|\\s*$|(?=\\s+\\#\\s))",endCaptures:{0:{name:"punctuation.separator.sel-properties.css"}},name:"meta.selector.css",patterns:[{include:"#css-selector-innards"}]},"nested-style-declaration":{begin:"^(\\t+)(?=[\\n^]*\\&)",end:"^(?!(\\1\\t|\\s*$))",name:"meta.style.imba",patterns:[{include:"#nested-css-selector"},{include:"#inline-styles"}]},"null-literal":{match:"(?>=|>>>=|\\|=",name:"keyword.operator.assignment.compound.bitwise.imba"},{match:"<<|>>>|>>",name:"keyword.operator.bitwise.shift.imba"},{match:"===|!==|==|!=|~=",name:"keyword.operator.comparison.imba"},{match:"<=|>=|<>|<|>",name:"keyword.operator.relational.imba"},{captures:{1:{name:"keyword.operator.logical.imba"},2:{name:"keyword.operator.arithmetic.imba"}},match:"(\\!)\\s*(/)(?![/*])"},{match:"\\!|&&|\\|\\||\\?\\?|or\\b(?=\\s|$)|and\\b(?=\\s|$)|\\@\\b(?=\\s|$)",name:"keyword.operator.logical.imba"},{match:"\\?(?=\\s|$)",name:"keyword.operator.bitwise.imba"},{match:"\\&|~|\\^|\\|",name:"keyword.operator.ternary.imba"},{match:"\\=",name:"keyword.operator.assignment.imba"},{match:"--",name:"keyword.operator.decrement.imba"},{match:"\\+\\+",name:"keyword.operator.increment.imba"},{match:"%|\\*|/|-|\\+",name:"keyword.operator.arithmetic.imba"}]},pairs:{patterns:[{include:"#curly-braces"},{include:"#square-braces"},{include:"#round-braces"}]},"plain-accessors":{patterns:[{captures:{1:{name:"punctuation.accessor.imba"},2:{name:"variable.other.property.imba"}},match:"(\\.\\.?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)"}]},"plain-identifiers":{patterns:[{match:"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])",name:"variable.other.constant.imba"},{match:"[[:upper:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\!]?",name:"variable.other.class.imba"},{match:"\\$\\d+",name:"variable.special.imba"},{match:"\\$[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"variable.other.internal.imba"},{match:"\\@\\@+[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"variable.other.symbol.imba"},{match:"[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"variable.other.readwrite.imba"},{match:"\\@[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"variable.other.instance.imba"},{match:"\\#+[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"variable.other.private.imba"},{match:"\\:[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"string.symbol.imba"}]},"punctuation-accessor":{captures:{1:{name:"punctuation.accessor.imba"},2:{name:"punctuation.accessor.optional.imba"}},match:"(?:(\\.)|(\\.\\.(?!\\s*[[:digit:]]|\\s+)))"},"punctuation-comma":{match:",",name:"punctuation.separator.comma.imba"},"punctuation-semicolon":{match:";",name:"punctuation.terminator.statement.imba"},"qstring-double":{begin:'"',beginCaptures:{0:{name:"punctuation.definition.string.begin.imba"}},end:'"',endCaptures:{0:{name:"punctuation.definition.string.end.imba"}},name:"string.quoted.double.imba",patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]},"qstring-single":{begin:"'",beginCaptures:{0:{name:"punctuation.definition.string.begin.imba"}},end:"(\\')|((?:[^\\\\\\n])$)",endCaptures:{1:{name:"punctuation.definition.string.end.imba"},2:{name:"invalid.illegal.newline.imba"}},name:"string.quoted.single.imba",patterns:[{include:"#string-character-escape"}]},"qstring-single-multi":{begin:"'''",beginCaptures:{0:{name:"punctuation.definition.string.begin.imba"}},end:"'''",endCaptures:{0:{name:"punctuation.definition.string.end.imba"}},name:"string.quoted.single.imba",patterns:[{include:"#string-character-escape"}]},regex:{patterns:[{begin:"(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))",beginCaptures:{1:{name:"punctuation.definition.string.begin.imba"}},end:"(/)([gimsuy]*)",endCaptures:{1:{name:"punctuation.definition.string.end.imba"},2:{name:"keyword.other.imba"}},name:"string.regexp.imba",patterns:[{include:"#regexp"}]},{begin:"((?"},{match:"[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??",name:"keyword.operator.quantifier.regexp"},{match:"\\|",name:"keyword.operator.or.regexp"},{begin:"(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?",beginCaptures:{0:{name:"punctuation.definition.group.regexp"},1:{name:"punctuation.definition.group.no-capture.regexp"},2:{name:"variable.other.regexp"}},end:"\\)",endCaptures:{0:{name:"punctuation.definition.group.regexp"}},name:"meta.group.regexp",patterns:[{include:"#regexp"}]},{begin:"(\\[)(\\^)?",beginCaptures:{1:{name:"punctuation.definition.character-class.regexp"},2:{name:"keyword.operator.negation.regexp"}},end:"(\\])",endCaptures:{1:{name:"punctuation.definition.character-class.regexp"}},name:"constant.other.character-class.set.regexp",patterns:[{captures:{1:{name:"constant.character.numeric.regexp"},2:{name:"constant.character.control.regexp"},3:{name:"constant.character.escape.backslash.regexp"},4:{name:"constant.character.numeric.regexp"},5:{name:"constant.character.control.regexp"},6:{name:"constant.character.escape.backslash.regexp"}},match:"(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))",name:"constant.other.character-class.range.regexp"},{include:"#regex-character-class"}]},{include:"#regex-character-class"}]},root:{patterns:[{include:"#block"}]},"round-braces":{begin:"\\s*(\\()",beginCaptures:{1:{name:"meta.brace.round.imba"}},end:"\\)",endCaptures:{0:{name:"meta.brace.round.imba"}},patterns:[{include:"#expr"},{include:"#punctuation-comma"}]},"single-line-comment-consuming-line-ending":{begin:"(^[ \\t]+)?((//|\\#\\s)(?:\\s*((@)internal)(?=\\s|$))?)",beginCaptures:{1:{name:"punctuation.whitespace.comment.leading.imba"},2:{name:"comment.line.double-slash.imba"},3:{name:"punctuation.definition.comment.imba"},4:{name:"storage.type.internaldeclaration.imba"},5:{name:"punctuation.decorator.internaldeclaration.imba"}},contentName:"comment.line.double-slash.imba",end:"(?=^)"},"square-braces":{begin:"\\s*(\\[)",beginCaptures:{1:{name:"meta.brace.square.imba"}},end:"\\]",endCaptures:{0:{name:"meta.brace.square.imba"}},patterns:[{include:"#expr"},{include:"#punctuation-comma"}]},string:{patterns:[{include:"#qstring-single-multi"},{include:"#qstring-double-multi"},{include:"#qstring-single"},{include:"#qstring-double"},{include:"#template"}]},"string-character-escape":{match:"\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)",name:"constant.character.escape.imba"},"style-declaration":{begin:"^(\\t*)(?:(global|local|export)\\s+)?(?:(scoped)\\s+)?(css)\\s",beginCaptures:{2:{name:"keyword.control.export.imba"},3:{name:"storage.modifier.imba"},4:{name:"storage.type.style.imba"}},end:"^(?!(\\1\\t|\\s*$))",name:"meta.style.imba",patterns:[{include:"#css-selector"},{include:"#css-comment"},{include:"#nested-css-selector"},{include:"#inline-styles"}]},"style-expr":{patterns:[{captures:{1:{name:"constant.numeric.integer.decimal.css"},2:{name:"keyword.other.unit.css"}},match:"(\\b[0-9][0-9_]*)(\\w+|%)?"},{match:"--[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"support.constant.property-value.var.css"},{match:"(x+s|sm-|md-|lg-|sm|md|lg|x+l|hg|x+h)(?![\\w-])",name:"support.constant.property-value.size.css"},{match:"[_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?",name:"support.constant.property-value.css"},{begin:"(\\()",beginCaptures:{1:{name:"punctuation.section.function.begin.bracket.round.css"}},end:"\\)",name:"meta.function.css",patterns:[{include:"#style-expr"}]}]},"style-property":{patterns:[{begin:"(?=(?:[\\^\\@\\.\\%\\w\\$\\!\\-]+)(?:\\s*[\\:\\=]))",beginCaptures:{1:{name:"support.function.calc.css"},2:{name:"punctuation.section.function.begin.bracket.round.css"}},end:"\\s*[\\:\\=]",endCaptures:{0:{name:"punctuation.separator.key-value.css"}},name:"meta.property-name.css",patterns:[{match:"(?:--|\\$)[\\w\\-\\$]+",name:"support.type.property-name.variable.css"},{match:"\\@[\\!\\<\\>]?[0-9]+",name:"support.type.property-name.modifier.breakpoint.css"},{match:"\\^?\\@+[\\w\\-\\$]+",name:"support.type.property-name.modifier.css"},{match:"\\^?\\.+[\\w\\-\\$]+",name:"support.type.property-name.modifier.flag.css"},{match:"\\^?\\%+[\\w\\-\\$]+",name:"support.type.property-name.modifier.state.css"},{match:"\\.\\.[\\w\\-\\$]+|\\^+[\\.\\@\\%][\\w\\-\\$]+",name:"support.type.property-name.modifier.up.css"},{match:"\\.[\\w\\-\\$]+",name:"support.type.property-name.modifier.is.css"},{match:"[\\w\\-\\$]+",name:"support.type.property-name.css"}]}]},"super-literal":{match:"(?\\=])"},"tag-attr-value":{begin:"(\\=)",beginCaptures:{0:{name:"keyword.operator.tag.assignment"}},contentName:"meta.tag.attribute-value.imba",end:"(?=>|\\s)",patterns:[{include:"#expr"}]},"tag-classname":{begin:"\\.",contentName:"entity.other.attribute-name.class.css",end:"(?=[\\.\\[\\>\\s\\(\\=])",patterns:[{include:"#tag-interpolated-content"}]},"tag-content":{patterns:[{include:"#tag-name"},{include:"#tag-expr-name"},{include:"#tag-interpolated-content"},{include:"#tag-interpolated-parens"},{include:"#tag-interpolated-brackets"},{include:"#tag-event-handler"},{include:"#tag-mixin-name"},{include:"#tag-classname"},{include:"#tag-ref"},{include:"#tag-attr-value"},{include:"#tag-attr-name"},{include:"#comment"}]},"tag-event-handler":{begin:"(\\@[\\w$_]+(?:\\-[\\w$_]+)*)",beginCaptures:{0:{name:"entity.other.event-name.imba"}},contentName:"entity.other.tag.event",end:"(?=[\\[\\>\\s\\=])",patterns:[{include:"#tag-interpolated-content"},{include:"#tag-interpolated-parens"},{begin:"\\.",beginCaptures:{0:{name:"punctuation.section.tag"}},end:"(?=[\\.\\[\\>\\s\\=]|$)",name:"entity.other.event-modifier.imba",patterns:[{include:"#tag-interpolated-parens"},{include:"#tag-interpolated-content"}]}]},"tag-expr-name":{begin:"(?<=<)(?=[\\w\\{])",contentName:"entity.name.tag.imba",end:"(?=[\\%\\$\\#\\.\\[\\>\\s\\(])",patterns:[{include:"#tag-interpolated-content"}]},"tag-interpolated-brackets":{begin:"\\[",beginCaptures:{0:{name:"punctuation.section.tag.imba"}},contentName:"meta.embedded.line.imba",end:"\\]",endCaptures:{0:{name:"punctuation.section.tag.imba"}},name:"meta.tag.expression.imba",patterns:[{include:"#inline-css-selector"},{include:"#inline-styles"}]},"tag-interpolated-content":{begin:"\\{",beginCaptures:{0:{name:"punctuation.section.tag.imba"}},contentName:"meta.embedded.line.imba",end:"\\}",endCaptures:{0:{name:"punctuation.section.tag.imba"}},name:"meta.tag.expression.imba",patterns:[{include:"#expression"}]},"tag-interpolated-parens":{begin:"\\(",beginCaptures:{0:{name:"punctuation.section.tag.imba"}},contentName:"meta.embedded.line.imba",end:"\\)",endCaptures:{0:{name:"punctuation.section.tag.imba"}},name:"meta.tag.expression.imba",patterns:[{include:"#expression"}]},"tag-literal":{patterns:[{begin:"(<)(?=[\\%\\~\\w\\{\\[\\.\\#\\$\\@\\(])",beginCaptures:{1:{name:"punctuation.section.tag.open.imba"}},contentName:"meta.tag.attributes.imba",end:"(>)",endCaptures:{1:{name:"punctuation.section.tag.close.imba"}},name:"meta.tag.imba",patterns:[{include:"#tag-content"}]}]},"tag-mixin-name":{match:"(\\%[\\w\\-]+)",name:"entity.other.tag-mixin.imba"},"tag-name":{patterns:[{match:"(?<=<)(self|global|slot)(?=[\\.\\[\\>\\s\\(])",name:"entity.name.tag.special.imba"}]},"tag-ref":{match:"(\\$[\\w\\-]+)",name:"entity.other.tag-ref.imba"},template:{patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)({{typeArguments}}\\s*)?`)",end:"(?=`)",name:"string.template.imba",patterns:[{begin:"(?=(([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?))",end:"(?=({{typeArguments}}\\s*)?`)",patterns:[{match:"([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)",name:"entity.name.function.tagged-template.imba"}]}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)\\s*(?=({{typeArguments}}\\s*)`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.imba"}},end:"(?=`)",name:"string.template.imba",patterns:[{include:"#type-arguments"}]},{begin:"([_$[:alpha:]][_$[:alnum:]]*(?:\\-[_$[:alnum:]]+)*[\\?\\!]?)?(`)",beginCaptures:{1:{name:"entity.name.function.tagged-template.imba"},2:{name:"punctuation.definition.string.template.begin.imba"}},end:"`",endCaptures:{0:{name:"punctuation.definition.string.template.end.imba"}},name:"string.template.imba",patterns:[{include:"#template-substitution-element"},{include:"#string-character-escape"}]}]},"template-substitution-element":{begin:"(?",patterns:[{include:"#type-brackets"}]},{begin:"\\(",end:"\\)",patterns:[{include:"#type-brackets"}]}]},"type-literal":{begin:"(\\\\)",beginCaptures:{1:{name:"meta.type.annotation.open.imba"}},end:"(?=[\\s\\]\\)\\,\\.\\=\\}]|$)",name:"meta.type.annotation.imba",patterns:[{include:"#type-brackets"}]},"undefined-literal":{match:"(?