import {
  a as c
} from "./chunk-3R3KB5WX.js";
import {
  a as p
} from "./chunk-PK4C6KGI.js";
import {
  a as o,
  c as u
} from "./chunk-IO47FP3U.js";

// ../node_modules/refractor/lang/jsdoc.js
var g = u((k, i) => {
  var d = p(), l = c();
  i.exports = n;
  n.displayName = "jsdoc";
  n.aliases = [];
  function n(t) {
    t.register(d), t.register(l), function(e) {
      var a = e.languages.javascript, r = /\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source, s = "(@(?:arg|argument|param|property)\\s+(?:" + r + "\\s+)?)";
      e.languages.jsdoc = e.languages.extend("javadoclike", {
        parameter: {
          // @param {string} foo - foo bar
          pattern: RegExp(
            s + /(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source
          ),
          lookbehind: !0,
          inside: {
            punctuation: /\./
          }
        }
      }), e.languages.insertBefore("jsdoc", "keyword", {
        "optional-parameter": {
          // @param {string} [baz.foo="bar"] foo bar
          pattern: RegExp(
            s + /\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source
          ),
          lookbehind: !0,
          inside: {
            parameter: {
              pattern: /(^\[)[$\w\xA0-\uFFFF\.]+/,
              lookbehind: !0,
              inside: {
                punctuation: /\./
              }
            },
            code: {
              pattern: /(=)[\s\S]*(?=\]$)/,
              lookbehind: !0,
              inside: a,
              alias: "language-javascript"
            },
            punctuation: /[=[\]]/
          }
        },
        "class-name": [
          {
            pattern: RegExp(
              /(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(
                /<TYPE>/g,
                function() {
                  return r;
                }
              )
            ),
            lookbehind: !0,
            inside: {
              punctuation: /\./
            }
          },
          {
            pattern: RegExp("(@[a-z]+\\s+)" + r),
            lookbehind: !0,
            inside: {
              string: a.string,
              number: a.number,
              boolean: a.boolean,
              keyword: e.languages.typescript.keyword,
              operator: /=>|\.\.\.|[&|?:*]/,
              punctuation: /[.,;=<>{}()[\]]/
            }
          }
        ],
        example: {
          pattern: /(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,
          lookbehind: !0,
          inside: {
            code: {
              pattern: /^([\t ]*(?:\*\s*)?)\S.*$/m,
              lookbehind: !0,
              inside: a,
              alias: "language-javascript"
            }
          }
        }
      }), e.languages.javadoclike.addSupport("javascript", e.languages.jsdoc);
    }(t);
  }
  o(n, "jsdoc");
});

export {
  g as a
};
