import {
  a as g
} from "./chunk-NDNECGXU.js";
import {
  a as o,
  c
} from "./chunk-IO47FP3U.js";

// ../node_modules/refractor/lang/soy.js
var f = c((k, u) => {
  var m = g();
  u.exports = r;
  r.displayName = "soy";
  r.aliases = [];
  function r(n) {
    n.register(m), function(e) {
      var l = /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, i = /\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-F]+\b/;
      e.languages.soy = {
        comment: [
          /\/\*[\s\S]*?\*\//,
          {
            pattern: /(\s)\/\/.*/,
            lookbehind: !0,
            greedy: !0
          }
        ],
        "command-arg": {
          pattern: /(\{+\/?\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\s+)\.?[\w.]+/,
          lookbehind: !0,
          alias: "string",
          inside: {
            punctuation: /\./
          }
        },
        parameter: {
          pattern: /(\{+\/?\s*@?param\??\s+)\.?[\w.]+/,
          lookbehind: !0,
          alias: "variable"
        },
        keyword: [
          {
            pattern: /(\{+\/?[^\S\r\n]*)(?:\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\??|rb|sp|switch|template|xid)/,
            lookbehind: !0
          },
          /\b(?:any|as|attributes|bool|css|float|html|in|int|js|list|map|null|number|string|uri)\b/
        ],
        delimiter: {
          pattern: /^\{+\/?|\/?\}+$/,
          alias: "punctuation"
        },
        property: /\w+(?==)/,
        variable: {
          pattern: /\$[^\W\d]\w*(?:\??(?:\.\w+|\[[^\]]+\]))*/,
          inside: {
            string: {
              pattern: l,
              greedy: !0
            },
            number: i,
            punctuation: /[\[\].?]/
          }
        },
        string: {
          pattern: l,
          greedy: !0
        },
        function: [
          /\w+(?=\()/,
          {
            pattern: /(\|[^\S\r\n]*)\w+/,
            lookbehind: !0
          }
        ],
        boolean: /\b(?:false|true)\b/,
        number: i,
        operator: /\?:?|<=?|>=?|==?|!=|[+*/%-]|\b(?:and|not|or)\b/,
        punctuation: /[{}()\[\]|.,:]/
      }, e.hooks.add("before-tokenize", function(a) {
        var p = /\{\{.+?\}\}|\{.+?\}|\s\/\/.*|\/\*[\s\S]*?\*\//g, d = "{literal}", b = "{/literal}", t = !1;
        e.languages["markup-templating"].buildPlaceholders(
          a,
          "soy",
          p,
          function(s) {
            return s === b && (t = !1), t ? !1 : (s === d && (t = !0), !0);
          }
        );
      }), e.hooks.add("after-tokenize", function(a) {
        e.languages["markup-templating"].tokenizePlaceholders(a, "soy");
      });
    }(n);
  }
  o(r, "soy");
});

export {
  f as a
};
