/**
 * @license React
 * react-jsx-runtime.production.min.js
 *
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */

/**
 * This mode has been adapted from the source of `codemirror-solidity` as the way that library is
 * structured makes it impossible for us load as an isolated mode for our Codemirror needs. The
 * source is mostly presented as-is with the exception of a few areas adapted into to our coding
 * standards (such as using `const` instead of `let` for immutable data).
 *
 * @license MIT
 * @see {@link https://github.com/alincode/codemirror-solidity}
 */

/**
 * Vendored from `codemirror-graphql`'s `esm/mode.js`. Vendoring this mode (rather than depending
 * on the `codemirror-graphql` package) lets us pull in only the ~600 lines this mode actually
 * needs from `graphql-language-service`'s parser, instead of the full `graphql-language-service`
 * package and its `graphql` peer dependency (whose validation rules alone account for several
 * hundred KB of the published bundle).
 *
 * @license MIT
 * @see {@link https://github.com/graphql/graphiql/blob/main/packages/codemirror-graphql/src/mode.ts}
 */

/**
 * Vendored from `codemirror-graphql`'s `esm/utils/mode-indent.js`, stripped of its TypeScript
 * types.
 *
 * @license MIT
 * @see {@link https://github.com/graphql/graphiql/blob/main/packages/codemirror-graphql/src/utils/mode-indent.ts}
 */

/**
 * Vendored from `graphql-language-service`'s `esm/parser/RuleHelpers.js`, stripped of its
 * TypeScript types.
 *
 * @license MIT
 * @see {@link https://github.com/graphql/graphiql/blob/main/packages/graphql-language-service/src/parser/RuleHelpers.ts}
 */

/**
 * Vendored from `graphql-language-service`'s `esm/parser/Rules.js`, stripped of its TypeScript
 * types. The only thing this file needed from the `graphql` package was a handful of `Kind`
 * string constants (`Document`, `FragmentDefinition`, `SchemaExtension`, etc.), which we've
 * inlined below instead of pulling in all of `graphql` (and its validation rules) just for a mode.
 *
 * @license MIT
 * @see {@link https://github.com/graphql/graphiql/blob/main/packages/graphql-language-service/src/parser/Rules.ts}
 */

/**
 * Vendored from `graphql-language-service`'s `esm/parser/onlineParser.js`, stripped of its
 * TypeScript types. The only thing this file needed from the `graphql` package was the
 * `Kind.DOCUMENT` string constant (`'Document'`), which is inlined below instead of pulling in
 * all of `graphql` (and its validation rules) just for a mode.
 *
 * @license MIT
 * @see {@link https://github.com/graphql/graphiql/blob/main/packages/graphql-language-service/src/parser/onlineParser.ts}
 */
