{"version":3,"file":"index.mjs","sources":["../src/utility/context.ts","../src/storage.tsx","../src/icons/argument.svg?react","../src/icons/chevron-down.svg?react","../src/icons/chevron-left.svg?react","../src/icons/chevron-up.svg?react","../src/icons/close.svg?react","../src/icons/copy.svg?react","../src/icons/deprecated-argument.svg?react","../src/icons/deprecated-enum-value.svg?react","../src/icons/deprecated-field.svg?react","../src/icons/directive.svg?react","../src/icons/docs-filled.svg?react","../src/icons/docs.svg?react","../src/icons/enum-value.svg?react","../src/icons/field.svg?react","../src/icons/history.svg?react","../src/icons/implements.svg?react","../src/icons/keyboard-shortcut.svg?react","../src/icons/magnifying-glass.svg?react","../src/icons/merge.svg?react","../src/icons/pen.svg?react","../src/icons/play.svg?react","../src/icons/plus.svg?react","../src/icons/prettify.svg?react","../src/icons/reload.svg?react","../src/icons/root-type.svg?react","../src/icons/settings.svg?react","../src/icons/star-filled.svg?react","../src/icons/star.svg?react","../src/icons/stop.svg?react","../src/icons/trash.svg?react","../src/icons/type.svg?react","../src/icons/index.tsx","../src/ui/button.tsx","../src/ui/button-group.tsx","../src/utility/component-group.ts","../src/ui/dialog.tsx","../src/ui/dropdown.tsx","../src/markdown.ts","../src/ui/markdown.tsx","../src/ui/spinner.tsx","../src/ui/tooltip.tsx","../src/ui/tabs.tsx","../src/history/context.tsx","../src/history/components.tsx","../src/execution.tsx","../src/utility/is-macos.ts","../src/editor/common.ts","../src/explorer/components/default-value.tsx","../src/schema.tsx","../src/explorer/context.tsx","../src/explorer/components/utils.tsx","../src/explorer/components/type-link.tsx","../src/explorer/components/argument.tsx","../src/explorer/components/deprecation-reason.tsx","../src/explorer/components/directive.tsx","../src/explorer/components/section.tsx","../src/explorer/components/field-documentation.tsx","../src/explorer/components/schema-documentation.tsx","../src/utility/debounce.ts","../src/explorer/components/search.tsx","../src/explorer/components/field-link.tsx","../src/explorer/components/type-documentation.tsx","../src/explorer/components/doc-explorer.tsx","../src/plugin.tsx","../src/editor/completion.ts","../src/editor/hooks.ts","../src/editor/header-editor.ts","../src/editor/whitespace.ts","../src/editor/query-editor.ts","../src/editor/tabs.ts","../src/editor/variable-editor.ts","../src/editor/context.tsx","../src/editor/components/header-editor.tsx","../src/editor/components/image-preview.tsx","../src/editor/components/query-editor.tsx","../src/editor/response-editor.tsx","../src/editor/components/response-editor.tsx","../src/editor/components/variable-editor.tsx","../src/provider.tsx","../src/theme.ts","../src/utility/resize.ts","../src/toolbar/button.tsx","../src/toolbar/execute.tsx","../src/toolbar/menu.tsx"],"sourcesContent":["'use no memo';\n\nimport { Context, createContext, useContext } from 'react';\n\nexport function createNullableContext<T>(name: string): Context<T | null> {\n  const context = createContext<T | null>(null);\n  context.displayName = name;\n  return context;\n}\n\nexport function createContextHook<T>(context: Context<T | null>) {\n  function useGivenContext(options: { nonNull: true; caller?: Function }): T;\n  function useGivenContext(options: {\n    nonNull?: boolean;\n    caller?: Function;\n  }): T | null;\n  function useGivenContext(): T | null;\n  function useGivenContext(options?: {\n    nonNull?: boolean;\n    caller?: Function;\n  }): T | null {\n    const value = useContext(context);\n    if (value === null && options?.nonNull) {\n      throw new Error(\n        `Tried to use \\`${\n          options.caller?.name || 'a component'\n        }\\` without the necessary context. Make sure to render the \\`${\n          context.displayName\n        }Provider\\` component higher up the tree.`,\n      );\n    }\n    return value;\n  }\n  Object.defineProperty(useGivenContext, 'name', {\n    value: `use${context.displayName}`,\n  });\n  return useGivenContext;\n}\n","import { Storage, StorageAPI } from '@graphiql/toolkit';\nimport { ReactNode, useEffect, useRef, useState } from 'react';\n\nimport { createContextHook, createNullableContext } from './utility/context';\n\nexport type StorageContextType = StorageAPI;\n\nexport const StorageContext =\n  createNullableContext<StorageContextType>('StorageContext');\n\nexport type StorageContextProviderProps = {\n  children: ReactNode;\n  /**\n   * Provide a custom storage API.\n   * @default `localStorage`\n   * @see {@link https://graphiql-test.netlify.app/typedoc/modules/graphiql_toolkit.html#storage-2|API docs}\n   * for details on the required interface.\n   */\n  storage?: Storage;\n};\n\nexport function StorageContextProvider(props: StorageContextProviderProps) {\n  const isInitialRender = useRef(true);\n  const [storage, setStorage] = useState(() => new StorageAPI(props.storage));\n\n  useEffect(() => {\n    if (isInitialRender.current) {\n      isInitialRender.current = false;\n    } else {\n      setStorage(new StorageAPI(props.storage));\n    }\n  }, [props.storage]);\n\n  return (\n    <StorageContext.Provider value={storage}>\n      {props.children}\n    </StorageContext.Provider>\n  );\n}\n\nexport const useStorageContext = createContextHook(StorageContext);\n","import * as React from \"react\";\nconst SvgArgument = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 14 14\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.0484 1.40838C6.12624 0.33054 7.87376 0.330541 8.9516 1.40838L12.5916 5.0484C13.6695 6.12624 13.6695 7.87376 12.5916 8.9516L8.9516 12.5916C7.87376 13.6695 6.12624 13.6695 5.0484 12.5916L1.40838 8.9516C0.33054 7.87376 0.330541 6.12624 1.40838 5.0484L5.0484 1.40838Z\", stroke: \"currentColor\", strokeWidth: 1.2 }), /* @__PURE__ */ React.createElement(\"rect\", { x: 6, y: 6, width: 2, height: 2, rx: 1, fill: \"currentColor\" }));\nexport default SvgArgument;\n","import * as React from \"react\";\nconst SvgChevronDown = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 14 9\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M1 1L7 7L13 1\", stroke: \"currentColor\", strokeWidth: 1.5 }));\nexport default SvgChevronDown;\n","import * as React from \"react\";\nconst SvgChevronLeft = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 7 10\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M6 1.04819L2 5.04819L6 9.04819\", stroke: \"currentColor\", strokeWidth: 1.75 }));\nexport default SvgChevronLeft;\n","import * as React from \"react\";\nconst SvgChevronUp = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 14 9\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M13 8L7 2L1 8\", stroke: \"currentColor\", strokeWidth: 1.5 }));\nexport default SvgChevronUp;\n","import * as React from \"react\";\nconst SvgClose = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 14 14\", stroke: \"currentColor\", strokeWidth: 3, xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M1 1L12.9998 12.9997\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M13 1L1.00079 13.0003\" }));\nexport default SvgClose;\n","import * as React from \"react\";\nconst SvgCopy = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"-2 -2 22 22\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.25 14.2105V15.235C11.25 16.3479 10.3479 17.25 9.23501 17.25H2.76499C1.65214 17.25 0.75 16.3479 0.75 15.235L0.75 8.76499C0.75 7.65214 1.65214 6.75 2.76499 6.75L3.78947 6.75\", stroke: \"currentColor\", strokeWidth: 1.5 }), /* @__PURE__ */ React.createElement(\"rect\", { x: 6.75, y: 0.75, width: 10.5, height: 10.5, rx: 2.2069, stroke: \"currentColor\", strokeWidth: 1.5 }));\nexport default SvgCopy;\n","import * as React from \"react\";\nconst SvgDeprecatedArgument = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 14 14\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.0484 1.40838C6.12624 0.33054 7.87376 0.330541 8.9516 1.40838L12.5916 5.0484C13.6695 6.12624 13.6695 7.87376 12.5916 8.9516L8.9516 12.5916C7.87376 13.6695 6.12624 13.6695 5.0484 12.5916L1.40838 8.9516C0.33054 7.87376 0.330541 6.12624 1.40838 5.0484L5.0484 1.40838Z\", stroke: \"currentColor\", strokeWidth: 1.2 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5 9L9 5\", stroke: \"currentColor\", strokeWidth: 1.2 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5 5L9 9\", stroke: \"currentColor\", strokeWidth: 1.2 }));\nexport default SvgDeprecatedArgument;\n","import * as React from \"react\";\nconst SvgDeprecatedEnumValue = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 12 12\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M4 8L8 4\", stroke: \"currentColor\", strokeWidth: 1.2 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M4 4L8 8\", stroke: \"currentColor\", strokeWidth: 1.2 }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M8.5 1.2H9C9.99411 1.2 10.8 2.00589 10.8 3V9C10.8 9.99411 9.99411 10.8 9 10.8H8.5V12H9C10.6569 12 12 10.6569 12 9V3C12 1.34315 10.6569 0 9 0H8.5V1.2ZM3.5 1.2V0H3C1.34315 0 0 1.34315 0 3V9C0 10.6569 1.34315 12 3 12H3.5V10.8H3C2.00589 10.8 1.2 9.99411 1.2 9V3C1.2 2.00589 2.00589 1.2 3 1.2H3.5Z\", fill: \"currentColor\" }));\nexport default SvgDeprecatedEnumValue;\n","import * as React from \"react\";\nconst SvgDeprecatedField = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 12 12\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"rect\", { x: 0.6, y: 0.6, width: 10.8, height: 10.8, rx: 3.4, stroke: \"currentColor\", strokeWidth: 1.2 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M4 8L8 4\", stroke: \"currentColor\", strokeWidth: 1.2 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M4 4L8 8\", stroke: \"currentColor\", strokeWidth: 1.2 }));\nexport default SvgDeprecatedField;\n","import * as React from \"react\";\nconst SvgDirective = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0.5 12 12\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"rect\", { x: 7, y: 5.5, width: 2, height: 2, rx: 1, transform: \"rotate(90 7 5.5)\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M10.8 9L10.8 9.5C10.8 10.4941 9.99411 11.3 9 11.3L3 11.3C2.00589 11.3 1.2 10.4941 1.2 9.5L1.2 9L-3.71547e-07 9L-3.93402e-07 9.5C-4.65826e-07 11.1569 1.34314 12.5 3 12.5L9 12.5C10.6569 12.5 12 11.1569 12 9.5L12 9L10.8 9ZM10.8 4L12 4L12 3.5C12 1.84315 10.6569 0.5 9 0.5L3 0.5C1.34315 0.5 -5.87117e-08 1.84315 -1.31135e-07 3.5L-1.5299e-07 4L1.2 4L1.2 3.5C1.2 2.50589 2.00589 1.7 3 1.7L9 1.7C9.99411 1.7 10.8 2.50589 10.8 3.5L10.8 4Z\", fill: \"currentColor\" }));\nexport default SvgDirective;\n","import * as React from \"react\";\nconst SvgDocsFilled = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 20 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M0.75 3C0.75 1.75736 1.75736 0.75 3 0.75H17.25C17.8023 0.75 18.25 1.19772 18.25 1.75V5.25\", stroke: \"currentColor\", strokeWidth: 1.5 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M0.75 3C0.75 4.24264 1.75736 5.25 3 5.25H18.25C18.8023 5.25 19.25 5.69771 19.25 6.25V22.25C19.25 22.8023 18.8023 23.25 18.25 23.25H3C1.75736 23.25 0.75 22.2426 0.75 21V3Z\", stroke: \"currentColor\", strokeWidth: 1.5 }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M3 5.25C1.75736 5.25 0.75 4.24264 0.75 3V21C0.75 22.2426 1.75736 23.25 3 23.25H18.25C18.8023 23.25 19.25 22.8023 19.25 22.25V6.25C19.25 5.69771 18.8023 5.25 18.25 5.25H3ZM13 11L6 11V12.5L13 12.5V11Z\", fill: \"currentColor\" }));\nexport default SvgDocsFilled;\n","import * as React from \"react\";\nconst SvgDocs = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 20 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M0.75 3C0.75 4.24264 1.75736 5.25 3 5.25H17.25M0.75 3C0.75 1.75736 1.75736 0.75 3 0.75H16.25C16.8023 0.75 17.25 1.19772 17.25 1.75V5.25M0.75 3V21C0.75 22.2426 1.75736 23.25 3 23.25H18.25C18.8023 23.25 19.25 22.8023 19.25 22.25V6.25C19.25 5.69771 18.8023 5.25 18.25 5.25H17.25\", stroke: \"currentColor\", strokeWidth: 1.5 }), /* @__PURE__ */ React.createElement(\"line\", { x1: 13, y1: 11.75, x2: 6, y2: 11.75, stroke: \"currentColor\", strokeWidth: 1.5 }));\nexport default SvgDocs;\n","import * as React from \"react\";\nconst SvgEnumValue = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 12 12\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"rect\", { x: 5, y: 5, width: 2, height: 2, rx: 1, fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M8.5 1.2H9C9.99411 1.2 10.8 2.00589 10.8 3V9C10.8 9.99411 9.99411 10.8 9 10.8H8.5V12H9C10.6569 12 12 10.6569 12 9V3C12 1.34315 10.6569 0 9 0H8.5V1.2ZM3.5 1.2V0H3C1.34315 0 0 1.34315 0 3V9C0 10.6569 1.34315 12 3 12H3.5V10.8H3C2.00589 10.8 1.2 9.99411 1.2 9V3C1.2 2.00589 2.00589 1.2 3 1.2H3.5Z\", fill: \"currentColor\" }));\nexport default SvgEnumValue;\n","import * as React from \"react\";\nconst SvgField = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 12 13\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"rect\", { x: 0.6, y: 1.1, width: 10.8, height: 10.8, rx: 2.4, stroke: \"currentColor\", strokeWidth: 1.2 }), /* @__PURE__ */ React.createElement(\"rect\", { x: 5, y: 5.5, width: 2, height: 2, rx: 1, fill: \"currentColor\" }));\nexport default SvgField;\n","import * as React from \"react\";\nconst SvgHistory = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 24 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M1.59375 9.52344L4.87259 12.9944L8.07872 9.41249\", stroke: \"currentColor\", strokeWidth: 1.5, strokeLinecap: \"square\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M13.75 5.25V10.75H18.75\", stroke: \"currentColor\", strokeWidth: 1.5, strokeLinecap: \"square\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M4.95427 11.9332C4.55457 10.0629 4.74441 8.11477 5.49765 6.35686C6.25089 4.59894 7.5305 3.11772 9.16034 2.11709C10.7902 1.11647 12.6901 0.645626 14.5986 0.769388C16.5071 0.893151 18.3303 1.60543 19.8172 2.80818C21.3042 4.01093 22.3818 5.64501 22.9017 7.48548C23.4216 9.32595 23.3582 11.2823 22.7203 13.0853C22.0824 14.8883 20.9013 16.4492 19.3396 17.5532C17.778 18.6572 15.9125 19.25 14 19.25\", stroke: \"currentColor\", strokeWidth: 1.5 }));\nexport default SvgHistory;\n","import * as React from \"react\";\nconst SvgImplements = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 12 12\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"circle\", { cx: 6, cy: 6, r: 5.4, stroke: \"currentColor\", strokeWidth: 1.2, strokeDasharray: \"4.241025 4.241025\", transform: \"rotate(22.5)\", \"transform-origin\": \"center\" }), /* @__PURE__ */ React.createElement(\"circle\", { cx: 6, cy: 6, r: 1, fill: \"currentColor\" }));\nexport default SvgImplements;\n","import * as React from \"react\";\nconst SvgKeyboardShortcut = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 19 18\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M1.5 14.5653C1.5 15.211 1.75652 15.8303 2.21314 16.2869C2.66975 16.7435 3.28905 17 3.9348 17C4.58054 17 5.19984 16.7435 5.65646 16.2869C6.11307 15.8303 6.36959 15.211 6.36959 14.5653V12.1305H3.9348C3.28905 12.1305 2.66975 12.387 2.21314 12.8437C1.75652 13.3003 1.5 13.9195 1.5 14.5653Z\", stroke: \"currentColor\", strokeWidth: 1.125, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M3.9348 1.00063C3.28905 1.00063 2.66975 1.25715 2.21314 1.71375C1.75652 2.17035 1.5 2.78964 1.5 3.43537C1.5 4.0811 1.75652 4.70038 2.21314 5.15698C2.66975 5.61358 3.28905 5.8701 3.9348 5.8701H6.36959V3.43537C6.36959 2.78964 6.11307 2.17035 5.65646 1.71375C5.19984 1.25715 4.58054 1.00063 3.9348 1.00063Z\", stroke: \"currentColor\", strokeWidth: 1.125, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M15.0652 12.1305H12.6304V14.5653C12.6304 15.0468 12.7732 15.5175 13.0407 15.9179C13.3083 16.3183 13.6885 16.6304 14.1334 16.8147C14.5783 16.9989 15.0679 17.0472 15.5402 16.9532C16.0125 16.8593 16.4464 16.6274 16.7869 16.2869C17.1274 15.9464 17.3593 15.5126 17.4532 15.0403C17.5472 14.568 17.4989 14.0784 17.3147 13.6335C17.1304 13.1886 16.8183 12.8084 16.4179 12.5409C16.0175 12.2733 15.5468 12.1305 15.0652 12.1305Z\", stroke: \"currentColor\", strokeWidth: 1.125, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M12.6318 5.86775H6.36955V12.1285H12.6318V5.86775Z\", stroke: \"currentColor\", strokeWidth: 1.125, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M17.5 3.43473C17.5 2.789 17.2435 2.16972 16.7869 1.71312C16.3303 1.25652 15.711 1 15.0652 1C14.4195 1 13.8002 1.25652 13.3435 1.71312C12.8869 2.16972 12.6304 2.789 12.6304 3.43473V5.86946H15.0652C15.711 5.86946 16.3303 5.61295 16.7869 5.15635C17.2435 4.69975 17.5 4.08046 17.5 3.43473Z\", stroke: \"currentColor\", strokeWidth: 1.125, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgKeyboardShortcut;\n","import * as React from \"react\";\nconst SvgMagnifyingGlass = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 13 13\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"circle\", { cx: 5, cy: 5, r: 4.35, stroke: \"currentColor\", strokeWidth: 1.3 }), /* @__PURE__ */ React.createElement(\"line\", { x1: 8.45962, y1: 8.54038, x2: 11.7525, y2: 11.8333, stroke: \"currentColor\", strokeWidth: 1.3 }));\nexport default SvgMagnifyingGlass;\n","import * as React from \"react\";\nconst SvgMerge = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"-2 -2 22 22\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M17.2492 6V2.9569C17.2492 1.73806 16.2611 0.75 15.0423 0.75L2.9569 0.75C1.73806 0.75 0.75 1.73806 0.75 2.9569L0.75 6\", stroke: \"currentColor\", strokeWidth: 1.5 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M0.749873 12V15.0431C0.749873 16.2619 1.73794 17.25 2.95677 17.25H15.0421C16.261 17.25 17.249 16.2619 17.249 15.0431V12\", stroke: \"currentColor\", strokeWidth: 1.5 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M6 4.5L9 7.5L12 4.5\", stroke: \"currentColor\", strokeWidth: 1.5 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M12 13.5L9 10.5L6 13.5\", stroke: \"currentColor\", strokeWidth: 1.5 }));\nexport default SvgMerge;\n","import * as React from \"react\";\nconst SvgPen = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 14 14\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M0.75 13.25L0.0554307 12.967C-0.0593528 13.2488 0.00743073 13.5719 0.224488 13.7851C0.441545 13.9983 0.765869 14.0592 1.04549 13.9393L0.75 13.25ZM12.8214 1.83253L12.2911 2.36286L12.2911 2.36286L12.8214 1.83253ZM12.8214 3.90194L13.3517 4.43227L12.8214 3.90194ZM10.0981 1.17859L9.56773 0.648259L10.0981 1.17859ZM12.1675 1.17859L12.6978 0.648258L12.6978 0.648257L12.1675 1.17859ZM2.58049 8.75697L3.27506 9.03994L2.58049 8.75697ZM2.70066 8.57599L3.23099 9.10632L2.70066 8.57599ZM5.2479 11.4195L4.95355 10.7297L5.2479 11.4195ZM5.42036 11.303L4.89003 10.7727L5.42036 11.303ZM4.95355 10.7297C4.08882 11.0987 3.41842 11.362 2.73535 11.6308C2.05146 11.9 1.35588 12.1743 0.454511 12.5607L1.04549 13.9393C1.92476 13.5624 2.60256 13.2951 3.28469 13.0266C3.96762 12.7578 4.65585 12.4876 5.54225 12.1093L4.95355 10.7297ZM1.44457 13.533L3.27506 9.03994L1.88592 8.474L0.0554307 12.967L1.44457 13.533ZM3.23099 9.10632L10.6284 1.70892L9.56773 0.648259L2.17033 8.04566L3.23099 9.10632ZM11.6371 1.70892L12.2911 2.36286L13.3517 1.3022L12.6978 0.648258L11.6371 1.70892ZM12.2911 3.37161L4.89003 10.7727L5.95069 11.8333L13.3517 4.43227L12.2911 3.37161ZM12.2911 2.36286C12.5696 2.64142 12.5696 3.09305 12.2911 3.37161L13.3517 4.43227C14.2161 3.56792 14.2161 2.16654 13.3517 1.3022L12.2911 2.36286ZM10.6284 1.70892C10.9069 1.43036 11.3586 1.43036 11.6371 1.70892L12.6978 0.648257C11.8335 -0.216088 10.4321 -0.216084 9.56773 0.648259L10.6284 1.70892ZM3.27506 9.03994C3.26494 9.06479 3.24996 9.08735 3.23099 9.10632L2.17033 8.04566C2.04793 8.16806 1.95123 8.31369 1.88592 8.474L3.27506 9.03994ZM5.54225 12.1093C5.69431 12.0444 5.83339 11.9506 5.95069 11.8333L4.89003 10.7727C4.90863 10.7541 4.92988 10.7398 4.95355 10.7297L5.54225 12.1093Z\", fill: \"currentColor\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.5 4.5L9.5 2.5\", stroke: \"currentColor\", strokeWidth: 1.4026, strokeLinecap: \"round\", strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M5.5 10.5L3.5 8.5\", stroke: \"currentColor\", strokeWidth: 1.4026, strokeLinecap: \"round\", strokeLinejoin: \"round\" }));\nexport default SvgPen;\n","import * as React from \"react\";\nconst SvgPlay = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 16 18\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M1.32226e-07 1.6609C7.22332e-08 0.907329 0.801887 0.424528 1.46789 0.777117L15.3306 8.11621C16.0401 8.49182 16.0401 9.50818 15.3306 9.88379L1.46789 17.2229C0.801886 17.5755 1.36076e-06 17.0927 1.30077e-06 16.3391L1.32226e-07 1.6609Z\", fill: \"currentColor\" }));\nexport default SvgPlay;\n","import * as React from \"react\";\nconst SvgPlus = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 10 16\", fill: \"currentColor\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M4.25 9.25V13.5H5.75V9.25L10 9.25V7.75L5.75 7.75V3.5H4.25V7.75L0 7.75V9.25L4.25 9.25Z\" }));\nexport default SvgPlus;\n","import * as React from \"react\";\nconst SvgPrettify = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { width: 25, height: 25, viewBox: \"0 0 25 25\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M10.2852 24.0745L13.7139 18.0742\", stroke: \"currentColor\", strokeWidth: 1.5625 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.5742 24.0749L17.1457 19.7891\", stroke: \"currentColor\", strokeWidth: 1.5625 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M19.4868 24.0735L20.7229 21.7523C21.3259 20.6143 21.5457 19.3122 21.3496 18.0394C21.1535 16.7666 20.5519 15.591 19.6342 14.6874L23.7984 6.87853C24.0123 6.47728 24.0581 6.00748 23.9256 5.57249C23.7932 5.1375 23.4933 4.77294 23.0921 4.55901C22.6908 4.34509 22.221 4.29932 21.7861 4.43178C21.3511 4.56424 20.9865 4.86408 20.7726 5.26533L16.6084 13.0742C15.3474 12.8142 14.0362 12.9683 12.8699 13.5135C11.7035 14.0586 10.7443 14.9658 10.135 16.1L6 24.0735\", stroke: \"currentColor\", strokeWidth: 1.5625 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M4 15L5 13L7 12L5 11L4 9L3 11L1 12L3 13L4 15Z\", stroke: \"currentColor\", strokeWidth: 1.5625, strokeLinejoin: \"round\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.5 8L12.6662 5.6662L15 4.5L12.6662 3.3338L11.5 1L10.3338 3.3338L8 4.5L10.3338 5.6662L11.5 8Z\", stroke: \"currentColor\", strokeWidth: 1.5625, strokeLinejoin: \"round\" }));\nexport default SvgPrettify;\n","import * as React from \"react\";\nconst SvgReload = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M4.75 9.25H1.25V12.75\", stroke: \"currentColor\", strokeWidth: 1, strokeLinecap: \"square\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.25 6.75H14.75V3.25\", stroke: \"currentColor\", strokeWidth: 1, strokeLinecap: \"square\" }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M14.1036 6.65539C13.8 5.27698 13.0387 4.04193 11.9437 3.15131C10.8487 2.26069 9.48447 1.76694 8.0731 1.75043C6.66173 1.73392 5.28633 2.19563 4.17079 3.0604C3.05526 3.92516 2.26529 5.14206 1.92947 6.513\", stroke: \"currentColor\", strokeWidth: 1 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M1.89635 9.34461C2.20001 10.723 2.96131 11.9581 4.05631 12.8487C5.15131 13.7393 6.51553 14.2331 7.9269 14.2496C9.33827 14.2661 10.7137 13.8044 11.8292 12.9396C12.9447 12.0748 13.7347 10.8579 14.0705 9.487\", stroke: \"currentColor\", strokeWidth: 1 }));\nexport default SvgReload;\n","import * as React from \"react\";\nconst SvgRootType = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 13 13\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"rect\", { x: 0.6, y: 0.6, width: 11.8, height: 11.8, rx: 5.9, stroke: \"currentColor\", strokeWidth: 1.2 }), /* @__PURE__ */ React.createElement(\"path\", { d: \"M4.25 7.5C4.25 6 5.75 5 6.5 6.5C7.25 8 8.75 7 8.75 5.5\", stroke: \"currentColor\", strokeWidth: 1.2 }));\nexport default SvgRootType;\n","import * as React from \"react\";\nconst SvgSettings = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 21 20\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { fillRule: \"evenodd\", clipRule: \"evenodd\", d: \"M9.29186 1.92702C9.06924 1.82745 8.87014 1.68202 8.70757 1.50024L7.86631 0.574931C7.62496 0.309957 7.30773 0.12592 6.95791 0.0479385C6.60809 -0.0300431 6.24274 0.00182978 5.91171 0.139208C5.58068 0.276585 5.3001 0.512774 5.10828 0.815537C4.91645 1.1183 4.82272 1.47288 4.83989 1.83089L4.90388 3.08019C4.91612 3.32348 4.87721 3.56662 4.78968 3.79394C4.70215 4.02126 4.56794 4.2277 4.39571 4.39994C4.22347 4.57219 4.01704 4.7064 3.78974 4.79394C3.56243 4.88147 3.3193 4.92038 3.07603 4.90814L1.8308 4.84414C1.47162 4.82563 1.11553 4.91881 0.811445 5.11086C0.507359 5.30292 0.270203 5.58443 0.132561 5.91671C-0.00508149 6.249 -0.0364554 6.61576 0.0427496 6.9666C0.121955 7.31744 0.307852 7.63514 0.5749 7.87606L1.50016 8.71204C1.68193 8.87461 1.82735 9.07373 1.92692 9.29636C2.02648 9.51898 2.07794 9.76012 2.07794 10.004C2.07794 10.2479 2.02648 10.489 1.92692 10.7116C1.82735 10.9343 1.68193 11.1334 1.50016 11.296L0.5749 12.1319C0.309856 12.3729 0.125575 12.6898 0.0471809 13.0393C-0.0312128 13.3888 9.64098e-05 13.754 0.13684 14.0851C0.273583 14.4162 0.509106 14.6971 0.811296 14.8894C1.11349 15.0817 1.46764 15.1762 1.82546 15.1599L3.0707 15.0959C3.31397 15.0836 3.5571 15.1225 3.7844 15.2101C4.01171 15.2976 4.21814 15.4318 4.39037 15.6041C4.56261 15.7763 4.69682 15.9827 4.78435 16.2101C4.87188 16.4374 4.91078 16.6805 4.89855 16.9238L4.83455 18.1691C4.81605 18.5283 4.90921 18.8844 5.10126 19.1885C5.2933 19.4926 5.5748 19.7298 5.90707 19.8674C6.23934 20.0051 6.60608 20.0365 6.9569 19.9572C7.30772 19.878 7.6254 19.6921 7.86631 19.4251L8.7129 18.4998C8.87547 18.318 9.07458 18.1725 9.29719 18.073C9.51981 17.9734 9.76093 17.9219 10.0048 17.9219C10.2487 17.9219 10.4898 17.9734 10.7124 18.073C10.935 18.1725 11.1341 18.318 11.2967 18.4998L12.1326 19.4251C12.3735 19.6921 12.6912 19.878 13.042 19.9572C13.3929 20.0365 13.7596 20.0051 14.0919 19.8674C14.4241 19.7298 14.7056 19.4926 14.8977 19.1885C15.0897 18.8844 15.1829 18.5283 15.1644 18.1691L15.1004 16.9238C15.0882 16.6805 15.1271 16.4374 15.2146 16.2101C15.3021 15.9827 15.4363 15.7763 15.6086 15.6041C15.7808 15.4318 15.9872 15.2976 16.2145 15.2101C16.4418 15.1225 16.685 15.0836 16.9282 15.0959L18.1735 15.1599C18.5326 15.1784 18.8887 15.0852 19.1928 14.8931C19.4969 14.7011 19.7341 14.4196 19.8717 14.0873C20.0093 13.755 20.0407 13.3882 19.9615 13.0374C19.8823 12.6866 19.6964 12.3689 19.4294 12.1279L18.5041 11.292C18.3223 11.1294 18.1769 10.9303 18.0774 10.7076C17.9778 10.485 17.9263 10.2439 17.9263 10C17.9263 9.75612 17.9778 9.51499 18.0774 9.29236C18.1769 9.06973 18.3223 8.87062 18.5041 8.70804L19.4294 7.87206C19.6964 7.63114 19.8823 7.31344 19.9615 6.9626C20.0407 6.61176 20.0093 6.245 19.8717 5.91271C19.7341 5.58043 19.4969 5.29892 19.1928 5.10686C18.8887 4.91481 18.5326 4.82163 18.1735 4.84014L16.9282 4.90414C16.685 4.91638 16.4418 4.87747 16.2145 4.78994C15.9872 4.7024 15.7808 4.56818 15.6086 4.39594C15.4363 4.2237 15.3021 4.01726 15.2146 3.78994C15.1271 3.56262 15.0882 3.31948 15.1004 3.07619L15.1644 1.83089C15.1829 1.4717 15.0897 1.11559 14.8977 0.811487C14.7056 0.507385 14.4241 0.270217 14.0919 0.132568C13.7596 -0.00508182 13.3929 -0.0364573 13.042 0.0427519C12.6912 0.121961 12.3735 0.307869 12.1326 0.574931L11.2914 1.50024C11.1288 1.68202 10.9297 1.82745 10.7071 1.92702C10.4845 2.02659 10.2433 2.07805 9.99947 2.07805C9.7556 2.07805 9.51448 2.02659 9.29186 1.92702ZM14.3745 10C14.3745 12.4162 12.4159 14.375 9.99977 14.375C7.58365 14.375 5.625 12.4162 5.625 10C5.625 7.58375 7.58365 5.625 9.99977 5.625C12.4159 5.625 14.3745 7.58375 14.3745 10Z\", fill: \"currentColor\" }));\nexport default SvgSettings;\n","import * as React from \"react\";\nconst SvgStarFilled = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 14 14\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M6.5782 1.07092C6.71096 0.643026 7.28904 0.643027 7.4218 1.07092L8.59318 4.84622C8.65255 5.03758 8.82284 5.16714 9.01498 5.16714L12.8056 5.16714C13.2353 5.16714 13.4139 5.74287 13.0663 6.00732L9.99962 8.34058C9.84418 8.45885 9.77913 8.66848 9.83851 8.85984L11.0099 12.6351C11.1426 13.063 10.675 13.4189 10.3274 13.1544L7.26069 10.8211C7.10524 10.7029 6.89476 10.7029 6.73931 10.8211L3.6726 13.1544C3.32502 13.4189 2.85735 13.063 2.99012 12.6351L4.16149 8.85984C4.22087 8.66848 4.15582 8.45885 4.00038 8.34058L0.933671 6.00732C0.586087 5.74287 0.764722 5.16714 1.19436 5.16714L4.98502 5.16714C5.17716 5.16714 5.34745 5.03758 5.40682 4.84622L6.5782 1.07092Z\", fill: \"currentColor\", stroke: \"currentColor\" }));\nexport default SvgStarFilled;\n","import * as React from \"react\";\nconst SvgStar = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 14 14\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M6.5782 1.07092C6.71096 0.643026 7.28904 0.643027 7.4218 1.07092L8.59318 4.84622C8.65255 5.03758 8.82284 5.16714 9.01498 5.16714L12.8056 5.16714C13.2353 5.16714 13.4139 5.74287 13.0663 6.00732L9.99962 8.34058C9.84418 8.45885 9.77913 8.66848 9.83851 8.85984L11.0099 12.6351C11.1426 13.063 10.675 13.4189 10.3274 13.1544L7.26069 10.8211C7.10524 10.7029 6.89476 10.7029 6.73931 10.8211L3.6726 13.1544C3.32502 13.4189 2.85735 13.063 2.99012 12.6351L4.16149 8.85984C4.22087 8.66848 4.15582 8.45885 4.00038 8.34058L0.933671 6.00732C0.586087 5.74287 0.764722 5.16714 1.19436 5.16714L4.98502 5.16714C5.17716 5.16714 5.34745 5.03758 5.40682 4.84622L6.5782 1.07092Z\", stroke: \"currentColor\", strokeWidth: 1.5 }));\nexport default SvgStar;\n","import * as React from \"react\";\nconst SvgStop = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 16 16\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"rect\", { width: 16, height: 16, rx: 2, fill: \"currentColor\" }));\nexport default SvgStop;\n","import * as React from \"react\";\nconst SvgTrash = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { width: \"1em\", height: \"5em\", xmlns: \"http://www.w3.org/2000/svg\", fillRule: \"evenodd\", \"aria-hidden\": \"true\", viewBox: \"0 0 23 23\", style: {\n  height: \"1.5em\"\n}, clipRule: \"evenodd\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"path\", { d: \"M19 24h-14c-1.104 0-2-.896-2-2v-17h-1v-2h6v-1.5c0-.827.673-1.5 1.5-1.5h5c.825 0 1.5.671 1.5 1.5v1.5h6v2h-1v17c0 1.104-.896 2-2 2zm0-19h-14v16.5c0 .276.224.5.5.5h13c.276 0 .5-.224.5-.5v-16.5zm-7 7.586l3.293-3.293 1.414 1.414-3.293 3.293 3.293 3.293-1.414 1.414-3.293-3.293-3.293 3.293-1.414-1.414 3.293-3.293-3.293-3.293 1.414-1.414 3.293 3.293zm2-10.586h-4v1h4v-1z\", fill: \"currentColor\", strokeWidth: 0.25, stroke: \"currentColor\" }));\nexport default SvgTrash;\n","import * as React from \"react\";\nconst SvgType = ({\n  title,\n  titleId,\n  ...props\n}) => /* @__PURE__ */ React.createElement(\"svg\", { height: \"1em\", viewBox: \"0 0 13 13\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\", \"aria-labelledby\": titleId, ...props }, title ? /* @__PURE__ */ React.createElement(\"title\", { id: titleId }, title) : null, /* @__PURE__ */ React.createElement(\"rect\", { x: 0.6, y: 0.6, width: 11.8, height: 11.8, rx: 5.9, stroke: \"currentColor\", strokeWidth: 1.2 }), /* @__PURE__ */ React.createElement(\"rect\", { x: 5.5, y: 5.5, width: 2, height: 2, rx: 1, fill: \"currentColor\" }));\nexport default SvgType;\n","import { ComponentProps, FC, SVGProps } from 'react';\n\nimport _ArgumentIcon from './argument.svg?react';\nimport _ChevronDownIcon from './chevron-down.svg?react';\nimport _ChevronLeftIcon from './chevron-left.svg?react';\nimport _ChevronUpIcon from './chevron-up.svg?react';\nimport _CloseIcon from './close.svg?react';\nimport _CopyIcon from './copy.svg?react';\nimport _DeprecatedArgumentIcon from './deprecated-argument.svg?react';\nimport _DeprecatedEnumValueIcon from './deprecated-enum-value.svg?react';\nimport _DeprecatedFieldIcon from './deprecated-field.svg?react';\nimport _DirectiveIcon from './directive.svg?react';\nimport _DocsFilledIcon from './docs-filled.svg?react';\nimport _DocsIcon from './docs.svg?react';\nimport _EnumValueIcon from './enum-value.svg?react';\nimport _FieldIcon from './field.svg?react';\nimport _HistoryIcon from './history.svg?react';\nimport _ImplementsIcon from './implements.svg?react';\nimport _KeyboardShortcutIcon from './keyboard-shortcut.svg?react';\nimport _MagnifyingGlassIcon from './magnifying-glass.svg?react';\nimport _MergeIcon from './merge.svg?react';\nimport _PenIcon from './pen.svg?react';\nimport _PlayIcon from './play.svg?react';\nimport _PlusIcon from './plus.svg?react';\nimport _PrettifyIcon from './prettify.svg?react';\nimport _ReloadIcon from './reload.svg?react';\nimport _RootTypeIcon from './root-type.svg?react';\nimport _SettingsIcon from './settings.svg?react';\nimport _StarFilledIcon from './star-filled.svg?react';\nimport _StarIcon from './star.svg?react';\nimport _StopIcon from './stop.svg?react';\nimport _TrashIcon from './trash.svg?react';\nimport _TypeIcon from './type.svg?react';\n\nexport const ArgumentIcon = generateIcon(_ArgumentIcon);\nexport const ChevronDownIcon = generateIcon(_ChevronDownIcon);\nexport const ChevronLeftIcon = generateIcon(_ChevronLeftIcon);\nexport const ChevronUpIcon = generateIcon(_ChevronUpIcon);\nexport const CloseIcon = generateIcon(_CloseIcon);\nexport const CopyIcon = generateIcon(_CopyIcon);\nexport const DeprecatedArgumentIcon = generateIcon(_DeprecatedArgumentIcon);\nexport const DeprecatedEnumValueIcon = generateIcon(_DeprecatedEnumValueIcon);\nexport const DeprecatedFieldIcon = generateIcon(_DeprecatedFieldIcon);\nexport const DirectiveIcon = generateIcon(_DirectiveIcon);\nexport const DocsFilledIcon = generateIcon(_DocsFilledIcon);\nexport const DocsIcon = generateIcon(_DocsIcon);\nexport const EnumValueIcon = generateIcon(_EnumValueIcon);\nexport const FieldIcon = generateIcon(_FieldIcon);\nexport const HistoryIcon = generateIcon(_HistoryIcon);\nexport const ImplementsIcon = generateIcon(_ImplementsIcon);\nexport const KeyboardShortcutIcon = generateIcon(_KeyboardShortcutIcon);\nexport const MagnifyingGlassIcon = generateIcon(_MagnifyingGlassIcon);\nexport const MergeIcon = generateIcon(_MergeIcon);\nexport const PenIcon = generateIcon(_PenIcon);\nexport const PlayIcon = generateIcon(_PlayIcon);\nexport const PlusIcon = generateIcon(_PlusIcon);\nexport const PrettifyIcon = generateIcon(_PrettifyIcon);\nexport const ReloadIcon = generateIcon(_ReloadIcon);\nexport const RootTypeIcon = generateIcon(_RootTypeIcon);\nexport const SettingsIcon = generateIcon(_SettingsIcon);\nexport const StarFilledIcon = generateIcon(_StarFilledIcon);\nexport const StarIcon = generateIcon(_StarIcon);\nexport const StopIcon = generateIcon(_StopIcon);\nexport const TrashIcon = generateIcon(_TrashIcon);\nexport const TypeIcon = generateIcon(_TypeIcon);\n\nfunction generateIcon(\n  RawComponent: FC<SVGProps<SVGSVGElement> & { title?: string }>,\n): FC<ComponentProps<'svg'>> {\n  const title =\n    RawComponent.name\n      // Icon component name starts with `Svg${CamelCaseFilename without .svg}`\n      .replace('Svg', '')\n      // Insert a space before all caps\n      .replaceAll(/([A-Z])/g, ' $1')\n      .trimStart()\n      .toLowerCase() + ' icon';\n\n  function IconComponent(props: ComponentProps<'svg'>) {\n    return <RawComponent title={title} {...props} />;\n  }\n\n  IconComponent.displayName = RawComponent.name;\n  return IconComponent;\n}\n","import { forwardRef } from 'react';\nimport { clsx } from 'clsx';\n\nimport './button.css';\n\nexport const UnStyledButton = forwardRef<\n  HTMLButtonElement,\n  JSX.IntrinsicElements['button']\n>((props, ref) => (\n  <button\n    {...props}\n    ref={ref}\n    className={clsx('graphiql-un-styled', props.className)}\n  />\n));\nUnStyledButton.displayName = 'UnStyledButton';\n\ntype ButtonProps = { state?: 'success' | 'error' };\n\nexport const Button = forwardRef<\n  HTMLButtonElement,\n  ButtonProps & JSX.IntrinsicElements['button']\n>((props, ref) => (\n  <button\n    {...props}\n    ref={ref}\n    className={clsx(\n      'graphiql-button',\n      {\n        success: 'graphiql-button-success',\n        error: 'graphiql-button-error',\n      }[props.state!],\n      props.className,\n    )}\n  />\n));\nButton.displayName = 'Button';\n","import { forwardRef } from 'react';\nimport { clsx } from 'clsx';\n\nimport './button-group.css';\n\nexport const ButtonGroup = forwardRef<\n  HTMLDivElement,\n  JSX.IntrinsicElements['div']\n>((props, ref) => (\n  <div\n    {...props}\n    ref={ref}\n    className={clsx('graphiql-button-group', props.className)}\n  />\n));\nButtonGroup.displayName = 'ButtonGroup';\n","'use no memo';\n\nimport { JSXElementConstructor } from 'react';\n\nexport const createComponentGroup = <\n  Root extends JSXElementConstructor<any>,\n  Children extends { [key: string]: JSXElementConstructor<any> },\n>(\n  root: Root,\n  children: Children,\n): Root & Children =>\n  Object.entries(children).reduce<any>((r, [key, value]) => {\n    r[key] = value;\n    return r;\n  }, root);\n","import { clsx } from 'clsx';\nimport { forwardRef, ReactElement } from 'react';\nimport { CloseIcon } from '../icons';\nimport { createComponentGroup } from '../utility/component-group';\nimport { UnStyledButton } from './button';\nimport * as D from '@radix-ui/react-dialog';\nimport { Root as VisuallyHidden } from '@radix-ui/react-visually-hidden';\n\nimport './dialog.css';\n\nconst DialogClose = forwardRef<\n  HTMLButtonElement,\n  JSX.IntrinsicElements['button']\n>((props, ref) => (\n  <D.Close asChild>\n    <UnStyledButton\n      {...props}\n      ref={ref}\n      type=\"button\"\n      className={clsx('graphiql-dialog-close', props.className)}\n    >\n      <VisuallyHidden>Close dialog</VisuallyHidden>\n      <CloseIcon />\n    </UnStyledButton>\n  </D.Close>\n));\nDialogClose.displayName = 'Dialog.Close';\n\nexport function DialogRoot({\n  children,\n  ...props\n}: D.DialogProps): ReactElement {\n  return (\n    <D.Root {...props}>\n      <D.Portal>\n        <D.Overlay className=\"graphiql-dialog-overlay\" />\n        <D.Content className=\"graphiql-dialog\">{children}</D.Content>\n      </D.Portal>\n    </D.Root>\n  );\n}\n\nexport const Dialog = createComponentGroup(DialogRoot, {\n  Close: DialogClose,\n  Title: D.Title,\n  Trigger: D.Trigger,\n  Description: D.Description,\n});\n","import { ComponentProps, forwardRef, ReactElement } from 'react';\nimport { clsx } from 'clsx';\nimport { createComponentGroup } from '../utility/component-group';\nimport {\n  Trigger,\n  Portal,\n  Content as RadixContent,\n  Item as RadixItem,\n  DropdownMenuContentProps,\n  DropdownMenuItemProps,\n  Root,\n} from '@radix-ui/react-dropdown-menu';\n\nimport './dropdown.css';\n\nconst Button = forwardRef<HTMLButtonElement, ComponentProps<'button'>>(\n  (props, ref) => (\n    <Trigger asChild>\n      <button\n        {...props}\n        ref={ref}\n        className={clsx('graphiql-un-styled', props.className)}\n      />\n    </Trigger>\n  ),\n);\nButton.displayName = 'DropdownMenuButton';\n\nfunction Content({\n  children,\n  align = 'start',\n  sideOffset = 5,\n  className,\n  ...props\n}: DropdownMenuContentProps): ReactElement {\n  return (\n    <Portal>\n      <RadixContent\n        align={align}\n        sideOffset={sideOffset}\n        className={clsx('graphiql-dropdown-content', className)}\n        {...props}\n      >\n        {children}\n      </RadixContent>\n    </Portal>\n  );\n}\n\nconst Item = ({ className, children, ...props }: DropdownMenuItemProps) => (\n  <RadixItem className={clsx('graphiql-dropdown-item', className)} {...props}>\n    {children}\n  </RadixItem>\n);\n\nexport const DropdownMenu = createComponentGroup(Root, {\n  Button,\n  Item,\n  Content,\n});\n","'use no memo';\n\nimport MarkdownIt from 'markdown-it';\n\nexport const markdown = new MarkdownIt({\n  breaks: true,\n  linkify: true,\n});\n","import { forwardRef } from 'react';\nimport { clsx } from 'clsx';\nimport { markdown } from '../markdown';\n\nimport './markdown.css';\n\ntype MarkdownContentProps = {\n  children: string;\n  onlyShowFirstChild?: boolean;\n  type: 'description' | 'deprecation';\n};\n\nexport const MarkdownContent = forwardRef<\n  HTMLDivElement,\n  MarkdownContentProps & Omit<JSX.IntrinsicElements['div'], 'children'>\n>(({ children, onlyShowFirstChild, type, ...props }, ref) => (\n  <div\n    {...props}\n    ref={ref}\n    className={clsx(\n      `graphiql-markdown-${type}`,\n      onlyShowFirstChild && 'graphiql-markdown-preview',\n      props.className,\n    )}\n    dangerouslySetInnerHTML={{ __html: markdown.render(children) }}\n  />\n));\nMarkdownContent.displayName = 'MarkdownContent';\n","import { forwardRef } from 'react';\nimport { clsx } from 'clsx';\n\nimport './spinner.css';\n\nexport const Spinner = forwardRef<HTMLDivElement, JSX.IntrinsicElements['div']>(\n  (props, ref) => (\n    <div\n      {...props}\n      ref={ref}\n      className={clsx('graphiql-spinner', props.className)}\n    />\n  ),\n);\nSpinner.displayName = 'Spinner';\n","import { ReactElement, ReactNode } from 'react';\nimport * as T from '@radix-ui/react-tooltip';\nimport { createComponentGroup } from '../utility/component-group';\nimport './tooltip.css';\n\nexport function TooltipRoot({\n  children,\n  align = 'start',\n  side = 'bottom',\n  sideOffset = 5,\n  label,\n}: T.TooltipContentProps & { label: ReactNode }): ReactElement {\n  return (\n    <T.Root>\n      <T.Trigger asChild>{children}</T.Trigger>\n      <T.Portal>\n        <T.Content\n          className=\"graphiql-tooltip\"\n          align={align}\n          side={side}\n          sideOffset={sideOffset}\n        >\n          {label}\n        </T.Content>\n      </T.Portal>\n    </T.Root>\n  );\n}\n\nexport const Tooltip = createComponentGroup(TooltipRoot, {\n  Provider: T.Provider,\n});\n","import { forwardRef, ReactNode } from 'react';\nimport { clsx } from 'clsx';\nimport { Reorder } from 'framer-motion';\nimport { CloseIcon } from '../icons';\nimport { createComponentGroup } from '../utility/component-group';\nimport { UnStyledButton } from './button';\nimport { Tooltip } from './tooltip';\n\nimport './tabs.css';\n\ntype TabProps = {\n  isActive?: boolean;\n  value: object;\n  className?: string;\n  children: ReactNode;\n};\n\nconst TabRoot = forwardRef<HTMLLIElement, TabProps>(\n  ({ isActive, value, children, className, ...props }, ref) => (\n    <Reorder.Item\n      {...props}\n      ref={ref}\n      value={value}\n      aria-selected={isActive ? 'true' : undefined}\n      role=\"tab\"\n      className={clsx(\n        'graphiql-tab',\n        isActive && 'graphiql-tab-active',\n        className,\n      )}\n    >\n      {children}\n    </Reorder.Item>\n  ),\n);\nTabRoot.displayName = 'Tab';\n\nconst TabButton = forwardRef<\n  HTMLButtonElement,\n  JSX.IntrinsicElements['button']\n>((props, ref) => (\n  <UnStyledButton\n    {...props}\n    ref={ref}\n    type=\"button\"\n    className={clsx('graphiql-tab-button', props.className)}\n  >\n    {props.children}\n  </UnStyledButton>\n));\nTabButton.displayName = 'Tab.Button';\n\nconst TabClose = forwardRef<HTMLButtonElement, JSX.IntrinsicElements['button']>(\n  (props, ref) => (\n    <Tooltip label=\"Close Tab\">\n      <UnStyledButton\n        aria-label=\"Close Tab\"\n        {...props}\n        ref={ref}\n        type=\"button\"\n        className={clsx('graphiql-tab-close', props.className)}\n      >\n        <CloseIcon />\n      </UnStyledButton>\n    </Tooltip>\n  ),\n);\nTabClose.displayName = 'Tab.Close';\n\nexport const Tab = createComponentGroup(TabRoot, {\n  Button: TabButton,\n  Close: TabClose,\n});\n\ntype TabsProps = {\n  values: object[];\n  onReorder: (newOrder: any[]) => void;\n  className?: string;\n  children: ReactNode;\n};\n\nexport const Tabs = forwardRef<HTMLUListElement, TabsProps>(\n  ({ values, onReorder, children, className, ...props }, ref) => (\n    <Reorder.Group\n      {...props}\n      ref={ref}\n      values={values}\n      onReorder={onReorder}\n      axis=\"x\"\n      role=\"tablist\"\n      className={clsx('graphiql-tabs', className)}\n    >\n      {children}\n    </Reorder.Group>\n  ),\n);\nTabs.displayName = 'Tabs';\n","import { HistoryStore, QueryStoreItem, StorageAPI } from '@graphiql/toolkit';\nimport { ReactNode, useState } from 'react';\n\nimport { useStorageContext } from '../storage';\nimport { createContextHook, createNullableContext } from '../utility/context';\n\nexport type HistoryContextType = {\n  /**\n   * Add an operation to the history.\n   * @param operation The operation that was executed, consisting of the query,\n   * variables, headers, and operation name.\n   */\n  addToHistory(operation: {\n    query?: string;\n    variables?: string;\n    headers?: string;\n    operationName?: string;\n  }): void;\n  /**\n   * Change the custom label of an item from the history.\n   * @param args An object containing the label (`undefined` if it should be\n   * unset) and properties that identify the history item that the label should\n   * be applied to. (This can result in the label being applied to multiple\n   * history items.)\n   * @param index Index to edit. Without it, will look for the first index matching the\n   * operation, which may lead to misleading results if multiple items have the same label\n   */\n  editLabel(\n    args: {\n      query?: string;\n      variables?: string;\n      headers?: string;\n      operationName?: string;\n      label?: string;\n      favorite?: boolean;\n    },\n    index?: number,\n  ): void;\n  /**\n   * The list of history items.\n   */\n  items: readonly QueryStoreItem[];\n  /**\n   * Toggle the favorite state of an item from the history.\n   * @param args An object containing the favorite state (`undefined` if it\n   * should be unset) and properties that identify the history item that the\n   * label should be applied to. (This can result in the label being applied\n   * to multiple history items.)\n   */\n  toggleFavorite(args: {\n    query?: string;\n    variables?: string;\n    headers?: string;\n    operationName?: string;\n    label?: string;\n    favorite?: boolean;\n  }): void;\n  /**\n   * Delete an operation from the history.\n   * @param args The operation that was executed, consisting of the query,\n   * variables, headers, and operation name.\n   * @param clearFavorites This is only if you press the 'clear' button\n   */\n  deleteFromHistory(args: QueryStoreItem, clearFavorites?: boolean): void;\n  /**\n   * If you need to know when an item in history is set as active to customize\n   * your application.\n   */\n  setActive(args: QueryStoreItem): void;\n};\n\nexport const HistoryContext =\n  createNullableContext<HistoryContextType>('HistoryContext');\n\nexport type HistoryContextProviderProps = {\n  children: ReactNode;\n  /**\n   * The maximum number of executed operations to store.\n   * @default 20\n   */\n  maxHistoryLength?: number;\n};\n\n/**\n * The functions send the entire operation so users can customize their own application with\n * <HistoryContext.Provider value={customizedFunctions} /> and get access to the operation plus\n * any additional props they added for their needs (i.e., build their own functions that may save\n * to a backend instead of localStorage and might need an id property added to the QueryStoreItem)\n */\nexport function HistoryContextProvider({\n  maxHistoryLength = DEFAULT_HISTORY_LENGTH,\n  children,\n}: HistoryContextProviderProps) {\n  const storage = useStorageContext();\n  const [historyStore] = useState(\n    () =>\n      // Fall back to a noop storage when the StorageContext is empty\n      new HistoryStore(storage || new StorageAPI(null), maxHistoryLength),\n  );\n  const [items, setItems] = useState(() => historyStore.queries || []);\n\n  const value: HistoryContextType = {\n    addToHistory(operation) {\n      historyStore.updateHistory(operation);\n      setItems(historyStore.queries);\n    },\n    editLabel(operation, index) {\n      historyStore.editLabel(operation, index);\n      setItems(historyStore.queries);\n    },\n    items,\n    toggleFavorite(operation) {\n      historyStore.toggleFavorite(operation);\n      setItems(historyStore.queries);\n    },\n    setActive: item => item,\n    deleteFromHistory(item, clearFavorites) {\n      historyStore.deleteHistory(item, clearFavorites);\n      setItems(historyStore.queries);\n    },\n  };\n\n  return (\n    <HistoryContext.Provider value={value}>{children}</HistoryContext.Provider>\n  );\n}\n\nexport const useHistoryContext =\n  createContextHook<HistoryContextType>(HistoryContext);\n\nconst DEFAULT_HISTORY_LENGTH = 20;\n","import type { QueryStoreItem } from '@graphiql/toolkit';\nimport { MouseEventHandler, useEffect, useRef, useState } from 'react';\nimport { clsx } from 'clsx';\n\nimport { useEditorContext } from '../editor';\nimport {\n  CloseIcon,\n  PenIcon,\n  StarFilledIcon,\n  StarIcon,\n  TrashIcon,\n} from '../icons';\nimport { Button, Tooltip, UnStyledButton } from '../ui';\nimport { useHistoryContext } from './context';\n\nimport './style.css';\n\nexport function History() {\n  const { items: all, deleteFromHistory } = useHistoryContext({\n    nonNull: true,\n  });\n\n  // Reverse items since we push them in so want the latest one at the top, and pass the\n  // original index in case multiple items share the same label so we can edit correct item\n  let items = all\n    .slice()\n    .map((item, i) => ({ ...item, index: i }))\n    .reverse();\n  const favorites = items.filter(item => item.favorite);\n  if (favorites.length) {\n    items = items.filter(item => !item.favorite);\n  }\n\n  const [clearStatus, setClearStatus] = useState<'success' | 'error' | null>(\n    null,\n  );\n  useEffect(() => {\n    if (clearStatus) {\n      // reset button after a couple seconds\n      setTimeout(() => {\n        setClearStatus(null);\n      }, 2000);\n    }\n  }, [clearStatus]);\n\n  const handleClearStatus = () => {\n    try {\n      for (const item of items) {\n        deleteFromHistory(item, true);\n      }\n      setClearStatus('success');\n    } catch {\n      setClearStatus('error');\n    }\n  };\n\n  return (\n    <section aria-label=\"History\" className=\"graphiql-history\">\n      <div className=\"graphiql-history-header\">\n        History\n        {(clearStatus || items.length > 0) && (\n          <Button\n            type=\"button\"\n            state={clearStatus || undefined}\n            disabled={!items.length}\n            onClick={handleClearStatus}\n          >\n            {{\n              success: 'Cleared',\n              error: 'Failed to Clear',\n            }[clearStatus!] || 'Clear'}\n          </Button>\n        )}\n      </div>\n\n      {Boolean(favorites.length) && (\n        <ul className=\"graphiql-history-items\">\n          {favorites.map(item => (\n            <HistoryItem item={item} key={item.index} />\n          ))}\n        </ul>\n      )}\n\n      {Boolean(favorites.length) && Boolean(items.length) && (\n        <div className=\"graphiql-history-item-spacer\" />\n      )}\n\n      {Boolean(items.length) && (\n        <ul className=\"graphiql-history-items\">\n          {items.map(item => (\n            <HistoryItem item={item} key={item.index} />\n          ))}\n        </ul>\n      )}\n    </section>\n  );\n}\n\ntype QueryHistoryItemProps = {\n  item: QueryStoreItem & { index?: number };\n};\n\nexport function HistoryItem(props: QueryHistoryItemProps) {\n  const { editLabel, toggleFavorite, deleteFromHistory, setActive } =\n    useHistoryContext({\n      nonNull: true,\n      caller: HistoryItem,\n    });\n  const { headerEditor, queryEditor, variableEditor } = useEditorContext({\n    nonNull: true,\n    caller: HistoryItem,\n  });\n  const inputRef = useRef<HTMLInputElement>(null);\n  const buttonRef = useRef<HTMLButtonElement>(null);\n  const [isEditable, setIsEditable] = useState(false);\n\n  useEffect(() => {\n    if (isEditable) {\n      inputRef.current?.focus();\n    }\n  }, [isEditable]);\n\n  const displayName =\n    props.item.label ||\n    props.item.operationName ||\n    formatQuery(props.item.query);\n\n  const handleSave = () => {\n    setIsEditable(false);\n    const { index, ...item } = props.item;\n    editLabel({ ...item, label: inputRef.current?.value }, index);\n  };\n\n  const handleClose = () => {\n    setIsEditable(false);\n  };\n\n  const handleEditLabel: MouseEventHandler<HTMLButtonElement> = e => {\n    e.stopPropagation();\n    setIsEditable(true);\n  };\n\n  const handleHistoryItemClick: MouseEventHandler<HTMLButtonElement> = () => {\n    const { query, variables, headers } = props.item;\n    queryEditor?.setValue(query ?? '');\n    variableEditor?.setValue(variables ?? '');\n    headerEditor?.setValue(headers ?? '');\n    setActive(props.item);\n  };\n\n  const handleDeleteItemFromHistory: MouseEventHandler<\n    HTMLButtonElement\n  > = e => {\n    e.stopPropagation();\n    deleteFromHistory(props.item);\n  };\n\n  const handleToggleFavorite: MouseEventHandler<HTMLButtonElement> = e => {\n    e.stopPropagation();\n    toggleFavorite(props.item);\n  };\n\n  return (\n    <li className={clsx('graphiql-history-item', isEditable && 'editable')}>\n      {isEditable ? (\n        <>\n          <input\n            type=\"text\"\n            defaultValue={props.item.label}\n            ref={inputRef}\n            onKeyDown={e => {\n              if (e.key === 'Esc') {\n                setIsEditable(false);\n              } else if (e.key === 'Enter') {\n                setIsEditable(false);\n                editLabel({ ...props.item, label: e.currentTarget.value });\n              }\n            }}\n            placeholder=\"Type a label\"\n          />\n          <UnStyledButton type=\"button\" ref={buttonRef} onClick={handleSave}>\n            Save\n          </UnStyledButton>\n          <UnStyledButton type=\"button\" ref={buttonRef} onClick={handleClose}>\n            <CloseIcon />\n          </UnStyledButton>\n        </>\n      ) : (\n        <>\n          <Tooltip label=\"Set active\">\n            <UnStyledButton\n              type=\"button\"\n              className=\"graphiql-history-item-label\"\n              onClick={handleHistoryItemClick}\n              aria-label=\"Set active\"\n            >\n              {displayName}\n            </UnStyledButton>\n          </Tooltip>\n          <Tooltip label=\"Edit label\">\n            <UnStyledButton\n              type=\"button\"\n              className=\"graphiql-history-item-action\"\n              onClick={handleEditLabel}\n              aria-label=\"Edit label\"\n            >\n              <PenIcon aria-hidden=\"true\" />\n            </UnStyledButton>\n          </Tooltip>\n          <Tooltip\n            label={props.item.favorite ? 'Remove favorite' : 'Add favorite'}\n          >\n            <UnStyledButton\n              type=\"button\"\n              className=\"graphiql-history-item-action\"\n              onClick={handleToggleFavorite}\n              aria-label={\n                props.item.favorite ? 'Remove favorite' : 'Add favorite'\n              }\n            >\n              {props.item.favorite ? (\n                <StarFilledIcon aria-hidden=\"true\" />\n              ) : (\n                <StarIcon aria-hidden=\"true\" />\n              )}\n            </UnStyledButton>\n          </Tooltip>\n          <Tooltip label=\"Delete from history\">\n            <UnStyledButton\n              type=\"button\"\n              className=\"graphiql-history-item-action\"\n              onClick={handleDeleteItemFromHistory}\n              aria-label=\"Delete from history\"\n            >\n              <TrashIcon aria-hidden=\"true\" />\n            </UnStyledButton>\n          </Tooltip>\n        </>\n      )}\n    </li>\n  );\n}\n\nexport function formatQuery(query?: string) {\n  return query\n    ?.split('\\n')\n    .map(line => line.replace(/#(.*)/, ''))\n    .join(' ')\n    .replaceAll('{', ' { ')\n    .replaceAll('}', ' } ')\n    .replaceAll(/[\\s]{2,}/g, ' ');\n}\n","import {\n  Fetcher,\n  formatError,\n  formatResult,\n  isAsyncIterable,\n  isObservable,\n  Unsubscribable,\n} from '@graphiql/toolkit';\nimport {\n  ExecutionResult,\n  FragmentDefinitionNode,\n  GraphQLError,\n  print,\n} from 'graphql';\nimport { getFragmentDependenciesForAST } from 'graphql-language-service';\nimport { ReactNode, useRef, useState } from 'react';\nimport setValue from 'set-value';\nimport getValue from 'get-value';\n\nimport { useAutoCompleteLeafs, useEditorContext } from './editor';\nimport { UseAutoCompleteLeafsArgs } from './editor/hooks';\nimport { useHistoryContext } from './history';\nimport { createContextHook, createNullableContext } from './utility/context';\n\nexport type ExecutionContextType = {\n  /**\n   * If there is currently a GraphQL request in-flight. For multi-part\n   * requests like subscriptions, this will be `true` while fetching the\n   * first partial response and `false` while fetching subsequent batches.\n   */\n  isFetching: boolean;\n  /**\n   * If there is currently a GraphQL request in-flight. For multi-part\n   * requests like subscriptions, this will be `true` until the last batch\n   * has been fetched or the connection is closed from the client.\n   */\n  isSubscribed: boolean;\n  /**\n   * The operation name that will be sent with all GraphQL requests.\n   */\n  operationName: string | null;\n  /**\n   * Start a GraphQL requests based of the current editor contents.\n   */\n  run(): void;\n  /**\n   * Stop the GraphQL request that is currently in-flight.\n   */\n  stop(): void;\n};\n\nexport const ExecutionContext =\n  createNullableContext<ExecutionContextType>('ExecutionContext');\n\nexport type ExecutionContextProviderProps = Pick<\n  UseAutoCompleteLeafsArgs,\n  'getDefaultFieldNames'\n> & {\n  children: ReactNode;\n  /**\n   * A function which accepts GraphQL HTTP parameters and returns a `Promise`,\n   * `Observable` or `AsyncIterable` that returns the GraphQL response in\n   * parsed JSON format.\n   *\n   * We suggest using the `createGraphiQLFetcher` utility from `@graphiql/toolkit`\n   * to create these fetcher functions.\n   *\n   * @see {@link https://graphiql-test.netlify.app/typedoc/modules/graphiql_toolkit.html#creategraphiqlfetcher-2|`createGraphiQLFetcher`}\n   */\n  fetcher: Fetcher;\n  /**\n   * This prop sets the operation name that is passed with a GraphQL request.\n   */\n  operationName?: string;\n};\n\nexport function ExecutionContextProvider({\n  fetcher,\n  getDefaultFieldNames,\n  children,\n  operationName,\n}: ExecutionContextProviderProps) {\n  if (!fetcher) {\n    throw new TypeError(\n      'The `ExecutionContextProvider` component requires a `fetcher` function to be passed as prop.',\n    );\n  }\n\n  const {\n    externalFragments,\n    headerEditor,\n    queryEditor,\n    responseEditor,\n    variableEditor,\n    updateActiveTabValues,\n  } = useEditorContext({ nonNull: true, caller: ExecutionContextProvider });\n  const history = useHistoryContext();\n  const autoCompleteLeafs = useAutoCompleteLeafs({\n    getDefaultFieldNames,\n    caller: ExecutionContextProvider,\n  });\n  const [isFetching, setIsFetching] = useState(false);\n  const [subscription, setSubscription] = useState<Unsubscribable | null>(null);\n  const queryIdRef = useRef(0);\n\n  const stop = () => {\n    subscription?.unsubscribe();\n    setIsFetching(false);\n    setSubscription(null);\n  };\n\n  const run: ExecutionContextType['run'] = async () => {\n    if (!queryEditor || !responseEditor) {\n      return;\n    }\n\n    // If there's an active subscription, unsubscribe it and return\n    if (subscription) {\n      stop();\n      return;\n    }\n\n    const setResponse = (value: string) => {\n      responseEditor.setValue(value);\n      updateActiveTabValues({ response: value });\n    };\n\n    queryIdRef.current += 1;\n    const queryId = queryIdRef.current;\n\n    // Use the edited query after autoCompleteLeafs() runs or,\n    // in case autoCompletion fails (the function returns undefined),\n    // the current query from the editor.\n    let query = autoCompleteLeafs() || queryEditor.getValue();\n\n    const variablesString = variableEditor?.getValue();\n    let variables: Record<string, unknown> | undefined;\n    try {\n      variables = tryParseJsonObject({\n        json: variablesString,\n        errorMessageParse: 'Variables are invalid JSON',\n        errorMessageType: 'Variables are not a JSON object.',\n      });\n    } catch (error) {\n      setResponse(error instanceof Error ? error.message : `${error}`);\n      return;\n    }\n\n    const headersString = headerEditor?.getValue();\n    let headers: Record<string, unknown> | undefined;\n    try {\n      headers = tryParseJsonObject({\n        json: headersString,\n        errorMessageParse: 'Headers are invalid JSON',\n        errorMessageType: 'Headers are not a JSON object.',\n      });\n    } catch (error) {\n      setResponse(error instanceof Error ? error.message : `${error}`);\n      return;\n    }\n\n    if (externalFragments) {\n      const fragmentDependencies = queryEditor.documentAST\n        ? getFragmentDependenciesForAST(\n            queryEditor.documentAST,\n            externalFragments,\n          )\n        : [];\n      if (fragmentDependencies.length > 0) {\n        query +=\n          '\\n' +\n          fragmentDependencies\n            .map((node: FragmentDefinitionNode) => print(node))\n            .join('\\n');\n      }\n    }\n\n    setResponse('');\n    setIsFetching(true);\n\n    const opName = operationName ?? queryEditor.operationName ?? undefined;\n\n    history?.addToHistory({\n      query,\n      variables: variablesString,\n      headers: headersString,\n      operationName: opName,\n    });\n    const _headers = headers ?? undefined;\n    const documentAST = queryEditor.documentAST ?? undefined;\n    try {\n      const fullResponse: ExecutionResult = {};\n      const handleResponse = (result: ExecutionResult) => {\n        // A different query was dispatched in the meantime, so don't\n        // show the results of this one.\n        if (queryId !== queryIdRef.current) {\n          return;\n        }\n\n        let maybeMultipart = Array.isArray(result) ? result : false;\n        if (\n          !maybeMultipart &&\n          typeof result === 'object' &&\n          result !== null &&\n          'hasNext' in result\n        ) {\n          maybeMultipart = [result];\n        }\n\n        if (maybeMultipart) {\n          for (const part of maybeMultipart) {\n            mergeIncrementalResult(fullResponse, part);\n          }\n\n          setIsFetching(false);\n          setResponse(formatResult(fullResponse));\n        } else {\n          const response = formatResult(result);\n          setIsFetching(false);\n          setResponse(response);\n        }\n      };\n\n      const fetch = fetcher(\n        {\n          query,\n          variables,\n          operationName: opName,\n        },\n        {\n          headers: _headers,\n          documentAST,\n        },\n      );\n\n      const value = await Promise.resolve(fetch);\n      if (isObservable(value)) {\n        // If the fetcher returned an Observable, then subscribe to it, calling\n        // the callback on each next value, and handling both errors and the\n        // completion of the Observable.\n        setSubscription(\n          value.subscribe({\n            next(result) {\n              handleResponse(result);\n            },\n            error(error: Error) {\n              setIsFetching(false);\n              if (error) {\n                setResponse(formatError(error));\n              }\n              setSubscription(null);\n            },\n            complete() {\n              setIsFetching(false);\n              setSubscription(null);\n            },\n          }),\n        );\n      } else if (isAsyncIterable(value)) {\n        setSubscription({\n          unsubscribe: () => value[Symbol.asyncIterator]().return?.(),\n        });\n        await handleAsyncResults(handleResponse, value);\n        setIsFetching(false);\n        setSubscription(null);\n      } else {\n        handleResponse(value);\n      }\n    } catch (error) {\n      setIsFetching(false);\n      setResponse(formatError(error));\n      setSubscription(null);\n    }\n  };\n\n  const isSubscribed = Boolean(subscription);\n  const value: ExecutionContextType = {\n    isFetching,\n    isSubscribed,\n    operationName: operationName ?? null,\n    run,\n    stop,\n  };\n\n  return (\n    <ExecutionContext.Provider value={value}>\n      {children}\n    </ExecutionContext.Provider>\n  );\n}\n\n// Extract function because react-compiler doesn't support `for await` yet\nasync function handleAsyncResults(\n  onResponse: (result: ExecutionResult) => void,\n  value: any,\n): Promise<void> {\n  for await (const result of value) {\n    onResponse(result);\n  }\n}\n\nexport const useExecutionContext = createContextHook(ExecutionContext);\n\nfunction tryParseJsonObject({\n  json,\n  errorMessageParse,\n  errorMessageType,\n}: {\n  json: string | undefined;\n  errorMessageParse: string;\n  errorMessageType: string;\n}) {\n  let parsed: Record<string, any> | undefined;\n  try {\n    parsed = json && json.trim() !== '' ? JSON.parse(json) : undefined;\n  } catch (error) {\n    throw new Error(\n      `${errorMessageParse}: ${\n        error instanceof Error ? error.message : error\n      }.`,\n    );\n  }\n  const isObject =\n    typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed);\n  if (parsed !== undefined && !isObject) {\n    throw new Error(errorMessageType);\n  }\n  return parsed;\n}\n\ntype IncrementalResult = {\n  data?: Record<string, unknown> | null;\n  errors?: ReadonlyArray<GraphQLError>;\n  extensions?: Record<string, unknown>;\n  hasNext?: boolean;\n  path?: ReadonlyArray<string | number>;\n  incremental?: ReadonlyArray<IncrementalResult>;\n  label?: string;\n  items?: ReadonlyArray<Record<string, unknown>> | null;\n  pending?: ReadonlyArray<{ id: string; path: ReadonlyArray<string | number> }>;\n  completed?: ReadonlyArray<{\n    id: string;\n    errors?: ReadonlyArray<GraphQLError>;\n  }>;\n  id?: string;\n  subPath?: ReadonlyArray<string | number>;\n};\n\nconst pathsMap = new WeakMap<\n  ExecutionResult,\n  Map<string, ReadonlyArray<string | number>>\n>();\n\n/**\n * @param executionResult The complete execution result object which will be\n * mutated by merging the contents of the incremental result.\n * @param incrementalResult The incremental result that will be merged into the\n * complete execution result.\n */\nfunction mergeIncrementalResult(\n  executionResult: IncrementalResult,\n  incrementalResult: IncrementalResult,\n): void {\n  let path: ReadonlyArray<string | number> | undefined = [\n    'data',\n    ...(incrementalResult.path ?? []),\n  ];\n\n  for (const result of [executionResult, incrementalResult]) {\n    if (result.pending) {\n      let paths = pathsMap.get(executionResult);\n      if (paths === undefined) {\n        paths = new Map();\n        pathsMap.set(executionResult, paths);\n      }\n\n      for (const { id, path: pendingPath } of result.pending) {\n        paths.set(id, ['data', ...pendingPath]);\n      }\n    }\n  }\n\n  const { items } = incrementalResult;\n  if (items) {\n    const { id } = incrementalResult;\n    if (id) {\n      path = pathsMap.get(executionResult)?.get(id);\n      if (path === undefined) {\n        throw new Error('Invalid incremental delivery format.');\n      }\n\n      const list = getValue(executionResult, path.join('.'));\n      list.push(...items);\n    } else {\n      path = ['data', ...(incrementalResult.path ?? [])];\n      for (const item of items) {\n        setValue(executionResult, path.join('.'), item);\n        // Increment the last path segment (the array index) to merge the next item at the next index\n        // @ts-expect-error -- (path[path.length - 1] as number)++ breaks react compiler\n        path[path.length - 1]++;\n      }\n    }\n  }\n\n  const { data } = incrementalResult;\n  if (data) {\n    const { id } = incrementalResult;\n    if (id) {\n      path = pathsMap.get(executionResult)?.get(id);\n      if (path === undefined) {\n        throw new Error('Invalid incremental delivery format.');\n      }\n      const { subPath } = incrementalResult;\n      if (subPath !== undefined) {\n        path = [...path, ...subPath];\n      }\n    }\n    setValue(executionResult, path.join('.'), data, {\n      merge: true,\n    });\n  }\n\n  if (incrementalResult.errors) {\n    executionResult.errors ||= [];\n    (executionResult.errors as GraphQLError[]).push(\n      ...incrementalResult.errors,\n    );\n  }\n\n  if (incrementalResult.extensions) {\n    setValue(executionResult, 'extensions', incrementalResult.extensions, {\n      merge: true,\n    });\n  }\n\n  if (incrementalResult.incremental) {\n    for (const incrementalSubResult of incrementalResult.incremental) {\n      mergeIncrementalResult(executionResult, incrementalSubResult);\n    }\n  }\n\n  if (incrementalResult.completed) {\n    // Remove tracking and add additional errors\n    for (const { id, errors } of incrementalResult.completed) {\n      pathsMap.get(executionResult)?.delete(id);\n\n      if (errors) {\n        executionResult.errors ||= [];\n        (executionResult.errors as GraphQLError[]).push(...errors);\n      }\n    }\n  }\n}\n","'use no memo';\n\nexport const isMacOs =\n  typeof navigator !== 'undefined' && navigator.userAgent.includes('Mac');\n","'use no memo';\n\nimport { KeyMap } from './types';\nimport { isMacOs } from '../utility/is-macos';\n\nexport const DEFAULT_EDITOR_THEME = 'graphiql';\nexport const DEFAULT_KEY_MAP: KeyMap = 'sublime';\n\nexport const commonKeys = {\n  // Persistent search box in Query Editor\n  [isMacOs ? 'Cmd-F' : 'Ctrl-F']: 'findPersistent',\n  'Cmd-G': 'findPersistent',\n  'Ctrl-G': 'findPersistent',\n\n  // Editor improvements\n  'Ctrl-Left': 'goSubwordLeft',\n  'Ctrl-Right': 'goSubwordRight',\n  'Alt-Left': 'goGroupLeft',\n  'Alt-Right': 'goGroupRight',\n};\n\n/**\n * Dynamically import codemirror and dependencies\n * This works for codemirror 5, not sure if the same imports work for 6\n */\nexport async function importCodeMirror(\n  addons: Promise<any>[],\n  options?: { useCommonAddons?: boolean },\n) {\n  const CodeMirror = await import('codemirror').then(c =>\n    // Depending on bundler and settings the dynamic import either returns a\n    // function (e.g. parcel) or an object containing a `default` property\n    typeof c === 'function' ? c : c.default,\n  );\n  await Promise.all(\n    options?.useCommonAddons === false\n      ? addons\n      : [\n          import('codemirror/addon/hint/show-hint.js'),\n          import('codemirror/addon/edit/matchbrackets.js'),\n          import('codemirror/addon/edit/closebrackets.js'),\n          import('codemirror/addon/fold/brace-fold.js'),\n          import('codemirror/addon/fold/foldgutter.js'),\n          import('codemirror/addon/lint/lint.js'),\n          import('codemirror/addon/search/searchcursor.js'),\n          import('codemirror/addon/search/jump-to-line.js'),\n          import('codemirror/addon/dialog/dialog.js'),\n          // @ts-expect-error\n          import('codemirror/keymap/sublime.js'),\n          ...addons,\n        ],\n  );\n  return CodeMirror;\n}\n","import { astFromValue, print, ValueNode } from 'graphql';\n\nimport { ExplorerFieldDef } from '../context';\n\nimport './default-value.css';\n\nconst printDefault = (ast?: ValueNode | null): string => {\n  if (!ast) {\n    return '';\n  }\n  return print(ast);\n};\n\ntype DefaultValueProps = {\n  /**\n   * The field or argument for which to render the default value.\n   */\n  field: ExplorerFieldDef;\n};\n\nexport function DefaultValue({ field }: DefaultValueProps) {\n  if (!('defaultValue' in field) || field.defaultValue === undefined) {\n    return null;\n  }\n  const ast = astFromValue(field.defaultValue, field.type);\n  if (!ast) {\n    return null;\n  }\n  return (\n    <>\n      {' = '}\n      <span className=\"graphiql-doc-explorer-default-value\">\n        {printDefault(ast)}\n      </span>\n    </>\n  );\n}\n","import {\n  Fetcher,\n  FetcherOpts,\n  fetcherReturnToPromise,\n  formatError,\n  formatResult,\n  isPromise,\n} from '@graphiql/toolkit';\nimport {\n  buildClientSchema,\n  getIntrospectionQuery,\n  GraphQLError,\n  GraphQLSchema,\n  IntrospectionQuery,\n  isSchema,\n  validateSchema,\n} from 'graphql';\nimport { ReactNode, useEffect, useRef, useState } from 'react';\n\nimport { useEditorContext } from './editor';\nimport { createContextHook, createNullableContext } from './utility/context';\n\ntype MaybeGraphQLSchema = GraphQLSchema | null | undefined;\n\nexport type SchemaContextType = {\n  /**\n   * Stores an error raised during introspecting or building the GraphQL schema\n   * from the introspection result.\n   */\n  fetchError: string | null;\n  /**\n   * Trigger building the GraphQL schema. This might trigger an introspection\n   * request if no schema is passed via props and if using a schema is not\n   * explicitly disabled by passing `null` as value for the `schema` prop. If\n   * there is a schema (either fetched using introspection or passed via props)\n   * it will be validated, unless this is explicitly skipped using the\n   * `dangerouslyAssumeSchemaIsValid` prop.\n   */\n  introspect(): void;\n  /**\n   * If there currently is an introspection request in-flight.\n   */\n  isFetching: boolean;\n  /**\n   * The current GraphQL schema.\n   */\n  schema: MaybeGraphQLSchema;\n  /**\n   * A list of errors from validating the current GraphQL schema. The schema is\n   * valid if and only if this list is empty.\n   */\n  validationErrors: readonly GraphQLError[];\n};\n\nexport const SchemaContext =\n  createNullableContext<SchemaContextType>('SchemaContext');\n\nexport type SchemaContextProviderProps = {\n  children: ReactNode;\n  /**\n   * This prop can be used to skip validating the GraphQL schema. This applies\n   * to both schemas fetched via introspection and schemas explicitly passed\n   * via the `schema` prop.\n   *\n   * IMPORTANT NOTE: Without validating the schema, GraphiQL and its components\n   * are vulnerable to numerous exploits and might break. Only use this prop if\n   * you have full control over the schema passed to GraphiQL.\n   *\n   * @default false\n   */\n  dangerouslyAssumeSchemaIsValid?: boolean;\n  /**\n   * A function which accepts GraphQL HTTP parameters and returns a `Promise`,\n   * `Observable` or `AsyncIterable` that returns the GraphQL response in\n   * parsed JSON format.\n   *\n   * We suggest using the `createGraphiQLFetcher` utility from `@graphiql/toolkit`\n   * to create these fetcher functions.\n   *\n   * @see {@link https://graphiql-test.netlify.app/typedoc/modules/graphiql_toolkit.html#creategraphiqlfetcher-2|`createGraphiQLFetcher`}\n   */\n  fetcher: Fetcher;\n  /**\n   * Invoked after a new GraphQL schema was built. This includes both fetching\n   * the schema via introspection and passing the schema using the `schema`\n   * prop.\n   * @param schema The GraphQL schema that is now used for GraphiQL.\n   */\n  onSchemaChange?(schema: GraphQLSchema): void;\n  /**\n   * Explicitly provide the GraphiQL schema that shall be used for GraphiQL.\n   * If this props is...\n   * - ...passed and the value is a GraphQL schema, it will be validated and\n   *   then used for GraphiQL if it is valid.\n   * - ...passed and the value is the result of an introspection query, a\n   *   GraphQL schema will be built from this introspection data, it will be\n   *   validated, and then used for GraphiQL if it is valid.\n   * - ...set to `null`, no introspection request will be triggered and\n   *   GraphiQL will run without a schema.\n   * - ...set to `undefined` or not set at all, an introspection request will\n   *   be triggered. If this request succeeds, a GraphQL schema will be built\n   *   from the returned introspection data, it will be validated, and then\n   *   used for GraphiQL if it is valid. If this request fails, GraphiQL will\n   *   run without a schema.\n   */\n  schema?: GraphQLSchema | IntrospectionQuery | null;\n} & IntrospectionArgs;\n\nexport function SchemaContextProvider({\n  fetcher,\n  onSchemaChange,\n  ...props\n}: SchemaContextProviderProps) {\n  if (!fetcher) {\n    throw new TypeError(\n      'The `SchemaContextProvider` component requires a `fetcher` function to be passed as prop.',\n    );\n  }\n\n  const { initialHeaders, headerEditor } = useEditorContext({\n    nonNull: true,\n    caller: SchemaContextProvider,\n  });\n  const [schema, setSchema] = useState<MaybeGraphQLSchema>();\n  const [isFetching, setIsFetching] = useState(false);\n  const [fetchError, setFetchError] = useState<string | null>(null);\n\n  /**\n   * A counter that is incremented each time introspection is triggered or the\n   * schema state is updated.\n   */\n  const counterRef = useRef(0);\n\n  /**\n   * Synchronize prop changes with state\n   */\n  useEffect(() => {\n    setSchema(\n      isSchema(props.schema) || props.schema == null ? props.schema : undefined,\n    );\n\n    /**\n     * Increment the counter so that in-flight introspection requests don't\n     * override this change.\n     */\n    counterRef.current++;\n  }, [props.schema]);\n\n  /**\n   * Keep a ref to the current headers\n   */\n  const headersRef = useRef(initialHeaders);\n  useEffect(() => {\n    if (headerEditor) {\n      headersRef.current = headerEditor.getValue();\n    }\n  });\n\n  /**\n   * Get introspection query for settings given via props\n   */\n  const {\n    introspectionQuery,\n    introspectionQueryName,\n    introspectionQuerySansSubscriptions,\n  } = useIntrospectionQuery({\n    inputValueDeprecation: props.inputValueDeprecation,\n    introspectionQueryName: props.introspectionQueryName,\n    schemaDescription: props.schemaDescription,\n  });\n\n  /**\n   * Fetch the schema\n   */\n  const introspect = // eslint-disable-line react-hooks/exhaustive-deps -- false positive, function is optimized by react-compiler no need to wrap with useCallback\n    () => {\n      /**\n       * Only introspect if there is no schema provided via props. If the\n       * prop is passed an introspection result, we do continue but skip the\n       * introspection request.\n       */\n      if (isSchema(props.schema) || props.schema === null) {\n        return;\n      }\n\n      const counter = ++counterRef.current;\n\n      const maybeIntrospectionData = props.schema;\n\n      async function fetchIntrospectionData() {\n        if (maybeIntrospectionData) {\n          // No need to introspect if we already have the data\n          return maybeIntrospectionData;\n        }\n\n        const parsedHeaders = parseHeaderString(headersRef.current);\n        if (!parsedHeaders.isValidJSON) {\n          setFetchError('Introspection failed as headers are invalid.');\n          return;\n        }\n\n        const fetcherOpts: FetcherOpts = parsedHeaders.headers\n          ? { headers: parsedHeaders.headers }\n          : {};\n\n        const fetch = fetcherReturnToPromise(\n          fetcher(\n            {\n              query: introspectionQuery,\n              operationName: introspectionQueryName,\n            },\n            fetcherOpts,\n          ),\n        );\n\n        if (!isPromise(fetch)) {\n          setFetchError('Fetcher did not return a Promise for introspection.');\n          return;\n        }\n\n        setIsFetching(true);\n        setFetchError(null);\n\n        let result = await fetch;\n\n        if (\n          typeof result !== 'object' ||\n          result === null ||\n          !('data' in result)\n        ) {\n          // Try the stock introspection query first, falling back on the\n          // sans-subscriptions query for services which do not yet support it.\n          const fetch2 = fetcherReturnToPromise(\n            fetcher(\n              {\n                query: introspectionQuerySansSubscriptions,\n                operationName: introspectionQueryName,\n              },\n              fetcherOpts,\n            ),\n          );\n          if (!isPromise(fetch2)) {\n            throw new Error(\n              'Fetcher did not return a Promise for introspection.',\n            );\n          }\n          result = await fetch2;\n        }\n\n        setIsFetching(false);\n\n        if (result?.data && '__schema' in result.data) {\n          return result.data as IntrospectionQuery;\n        }\n\n        // handle as if it were an error if the fetcher response is not a string or response.data is not present\n        const responseString =\n          typeof result === 'string' ? result : formatResult(result);\n        setFetchError(responseString);\n      }\n\n      fetchIntrospectionData()\n        .then(introspectionData => {\n          /**\n           * Don't continue if another introspection request has been started in\n           * the meantime or if there is no introspection data.\n           */\n          if (counter !== counterRef.current || !introspectionData) {\n            return;\n          }\n\n          try {\n            const newSchema = buildClientSchema(introspectionData);\n            setSchema(newSchema);\n            // Optional chaining inside try-catch isn't supported yet by react-compiler\n            if (onSchemaChange) {\n              onSchemaChange(newSchema);\n            }\n          } catch (error) {\n            setFetchError(formatError(error));\n          }\n        })\n        .catch(error => {\n          /**\n           * Don't continue if another introspection request has been started in\n           * the meantime.\n           */\n          if (counter !== counterRef.current) {\n            return;\n          }\n\n          setFetchError(formatError(error));\n          setIsFetching(false);\n        });\n    };\n\n  /**\n   * Trigger introspection automatically\n   */\n  useEffect(() => {\n    introspect();\n  }, [introspect]);\n\n  /**\n   * Trigger introspection manually via short key\n   */\n  useEffect(() => {\n    function triggerIntrospection(event: KeyboardEvent) {\n      if (event.ctrlKey && event.key === 'R') {\n        introspect();\n      }\n    }\n\n    window.addEventListener('keydown', triggerIntrospection);\n    return () => {\n      window.removeEventListener('keydown', triggerIntrospection);\n    };\n  });\n\n  /**\n   * Derive validation errors from the schema\n   */\n  const validationErrors =\n    !schema || props.dangerouslyAssumeSchemaIsValid\n      ? []\n      : validateSchema(schema);\n\n  /**\n   * Memoize context value\n   */\n  const value = {\n    fetchError,\n    introspect,\n    isFetching,\n    schema,\n    validationErrors,\n  };\n\n  return (\n    <SchemaContext.Provider value={value}>\n      {props.children}\n    </SchemaContext.Provider>\n  );\n}\n\nexport const useSchemaContext = createContextHook(SchemaContext);\n\ntype IntrospectionArgs = {\n  /**\n   * Can be used to set the equally named option for introspecting a GraphQL\n   * server.\n   * @default false\n   * @see {@link https://github.com/graphql/graphql-js/blob/main/src/utilities/getIntrospectionQuery.ts|Utility for creating the introspection query}\n   */\n  inputValueDeprecation?: boolean;\n  /**\n   * Can be used to set a custom operation name for the introspection query.\n   */\n  introspectionQueryName?: string;\n  /**\n   * Can be used to set the equally named option for introspecting a GraphQL\n   * server.\n   * @default false\n   * @see {@link https://github.com/graphql/graphql-js/blob/main/src/utilities/getIntrospectionQuery.ts|Utility for creating the introspection query}\n   */\n  schemaDescription?: boolean;\n};\n\nfunction useIntrospectionQuery({\n  inputValueDeprecation,\n  introspectionQueryName,\n  schemaDescription,\n}: IntrospectionArgs) {\n  const queryName = introspectionQueryName || 'IntrospectionQuery';\n\n  let query = getIntrospectionQuery({\n    inputValueDeprecation,\n    schemaDescription,\n  });\n  if (introspectionQueryName) {\n    query = query.replace('query IntrospectionQuery', `query ${queryName}`);\n  }\n\n  const querySansSubscriptions = query.replace('subscriptionType { name }', '');\n\n  return {\n    introspectionQueryName: queryName,\n    introspectionQuery: query,\n    introspectionQuerySansSubscriptions: querySansSubscriptions,\n  };\n}\n\nfunction parseHeaderString(headersString?: string) {\n  let headers: Record<string, unknown> | null = null;\n  let isValidJSON = true;\n\n  try {\n    if (headersString) {\n      headers = JSON.parse(headersString);\n    }\n  } catch {\n    isValidJSON = false;\n  }\n  return { headers, isValidJSON };\n}\n","import type {\n  GraphQLArgument,\n  GraphQLField,\n  GraphQLInputField,\n  GraphQLNamedType,\n} from 'graphql';\nimport {\n  isEnumType,\n  isInputObjectType,\n  isInterfaceType,\n  isNamedType,\n  isObjectType,\n  isScalarType,\n  isUnionType,\n} from 'graphql';\nimport { ReactNode, useEffect, useState } from 'react';\nimport { useSchemaContext } from '../schema';\nimport { createContextHook, createNullableContext } from '../utility/context';\n\nexport type ExplorerFieldDef =\n  | GraphQLField<{}, {}, {}>\n  | GraphQLInputField\n  | GraphQLArgument;\n\nexport type ExplorerNavStackItem = {\n  /**\n   * The name of the item.\n   */\n  name: string;\n  /**\n   * The definition object of the item, this can be a named type, a field, an\n   * input field or an argument.\n   */\n  def?: GraphQLNamedType | ExplorerFieldDef;\n};\n\n// There's always at least one item in the nav stack\nexport type ExplorerNavStack = [\n  ExplorerNavStackItem,\n  ...ExplorerNavStackItem[],\n];\n\nconst initialNavStackItem: ExplorerNavStackItem = { name: 'Docs' };\n\nexport type ExplorerContextType = {\n  /**\n   * A stack of navigation items. The last item in the list is the current one.\n   * This list always contains at least one item.\n   */\n  explorerNavStack: ExplorerNavStack;\n  /**\n   * Push an item to the navigation stack.\n   * @param item The item that should be pushed to the stack.\n   */\n  push(item: ExplorerNavStackItem): void;\n  /**\n   * Pop the last item from the navigation stack.\n   */\n  pop(): void;\n  /**\n   * Reset the navigation stack to its initial state, this will remove all but\n   * the initial stack item.\n   */\n  reset(): void;\n};\n\nexport const ExplorerContext =\n  createNullableContext<ExplorerContextType>('ExplorerContext');\n\nexport type ExplorerContextProviderProps = {\n  children: ReactNode;\n};\n\nexport function ExplorerContextProvider(props: ExplorerContextProviderProps) {\n  const { schema, validationErrors } = useSchemaContext({\n    nonNull: true,\n    caller: ExplorerContextProvider,\n  });\n\n  const [navStack, setNavStack] = useState<ExplorerNavStack>([\n    initialNavStackItem,\n  ]);\n\n  const push = (item: ExplorerNavStackItem) => {\n    setNavStack(currentState => {\n      const lastItem = currentState.at(-1)!;\n      return lastItem.def === item.def\n        ? // Avoid pushing duplicate items\n          currentState\n        : [...currentState, item];\n    });\n  };\n\n  const pop = () => {\n    setNavStack(currentState =>\n      currentState.length > 1\n        ? (currentState.slice(0, -1) as ExplorerNavStack)\n        : currentState,\n    );\n  };\n\n  const reset = () => {\n    setNavStack(currentState =>\n      currentState.length === 1 ? currentState : [initialNavStackItem],\n    );\n  };\n\n  useEffect(() => {\n    // Whenever the schema changes, we must revalidate/replace the nav stack.\n    if (schema == null || validationErrors.length > 0) {\n      reset();\n    } else {\n      // Replace the nav stack with an updated version using the new schema\n      setNavStack(oldNavStack => {\n        if (oldNavStack.length === 1) {\n          return oldNavStack;\n        }\n        const newNavStack: ExplorerNavStack = [initialNavStackItem];\n        let lastEntity: GraphQLNamedType | GraphQLField<any, any, any> | null =\n          null;\n        for (const item of oldNavStack) {\n          if (item === initialNavStackItem) {\n            // No need to copy the initial item\n            continue;\n          }\n          if (item.def) {\n            // If item.def isn't a named type, it must be a field, inputField, or argument\n            if (isNamedType(item.def)) {\n              // The type needs to be replaced with the new schema type of the same name\n              const newType = schema.getType(item.def.name);\n              if (newType) {\n                newNavStack.push({\n                  name: item.name,\n                  def: newType,\n                });\n                lastEntity = newType;\n              } else {\n                // This type no longer exists; the stack cannot be built beyond here\n                break;\n              }\n            } else if (lastEntity === null) {\n              // We can't have a sub-entity if we have no entity; stop rebuilding the nav stack\n              break;\n            } else if (\n              isObjectType(lastEntity) ||\n              isInputObjectType(lastEntity)\n            ) {\n              // item.def must be a Field / input field; replace with the new field of the same name\n              const field = lastEntity.getFields()[item.name];\n              if (field) {\n                newNavStack.push({\n                  name: item.name,\n                  def: field,\n                });\n              } else {\n                // This field no longer exists; the stack cannot be built beyond here\n                break;\n              }\n            } else if (\n              isScalarType(lastEntity) ||\n              isEnumType(lastEntity) ||\n              isInterfaceType(lastEntity) ||\n              isUnionType(lastEntity)\n            ) {\n              // These don't (currently) have non-type sub-entries; something has gone wrong.\n              // Handle gracefully by discontinuing rebuilding the stack.\n              break;\n            } else {\n              // lastEntity must be a field (because it's not a named type)\n              const field: GraphQLField<any, any> = lastEntity;\n              // Thus item.def must be an argument, so find the same named argument in the new schema\n              const arg = field.args.find(a => a.name === item.name);\n              if (arg) {\n                newNavStack.push({\n                  name: item.name,\n                  def: field,\n                });\n              } else {\n                // This argument no longer exists; the stack cannot be built beyond here\n                break;\n              }\n            }\n          } else {\n            lastEntity = null;\n            newNavStack.push(item);\n          }\n        }\n        return newNavStack;\n      });\n    }\n  }, [schema, validationErrors]);\n\n  const value: ExplorerContextType = {\n    explorerNavStack: navStack,\n    push,\n    pop,\n    reset,\n  };\n\n  return (\n    <ExplorerContext.Provider value={value}>\n      {props.children}\n    </ExplorerContext.Provider>\n  );\n}\n\nexport const useExplorerContext = createContextHook(ExplorerContext);\n","'use no memo';\n\nimport {\n  GraphQLNamedType,\n  GraphQLType,\n  isListType,\n  isNonNullType,\n} from 'graphql';\n\nexport function renderType(\n  type: GraphQLType,\n  renderNamedType: (namedType: GraphQLNamedType) => JSX.Element,\n): JSX.Element {\n  if (isNonNullType(type)) {\n    return <>{renderType(type.ofType, renderNamedType)}!</>;\n  }\n  if (isListType(type)) {\n    return <>[{renderType(type.ofType, renderNamedType)}]</>;\n  }\n  return renderNamedType(type);\n}\n","import { GraphQLType } from 'graphql';\n\nimport { useExplorerContext } from '../context';\nimport { renderType } from './utils';\n\nimport './type-link.css';\n\ntype TypeLinkProps = {\n  /**\n   * The type that should be linked to.\n   */\n  type: GraphQLType;\n};\n\nexport function TypeLink(props: TypeLinkProps) {\n  const { push } = useExplorerContext({ nonNull: true, caller: TypeLink });\n\n  if (!props.type) {\n    return null;\n  }\n\n  return renderType(props.type, namedType => (\n    <a\n      className=\"graphiql-doc-explorer-type-name\"\n      onClick={event => {\n        event.preventDefault();\n        push({ name: namedType.name, def: namedType });\n      }}\n      href=\"#\"\n    >\n      {namedType.name}\n    </a>\n  ));\n}\n","import { GraphQLArgument } from 'graphql';\n\nimport { DefaultValue } from './default-value';\nimport { TypeLink } from './type-link';\n\nimport './argument.css';\nimport { MarkdownContent } from '../../ui';\n\ntype ArgumentProps = {\n  /**\n   * The argument that should be rendered.\n   */\n  arg: GraphQLArgument;\n  /**\n   * Toggle if the default value for the argument is shown (if there is one)\n   * @default false\n   */\n  showDefaultValue?: boolean;\n  /**\n   * Toggle whether to render the whole argument including description and\n   * deprecation reason (`false`) or to just render the argument name, type,\n   * and default value in a single line (`true`).\n   * @default false\n   */\n  inline?: boolean;\n};\n\nexport function Argument({ arg, showDefaultValue, inline }: ArgumentProps) {\n  const definition = (\n    <span>\n      <span className=\"graphiql-doc-explorer-argument-name\">{arg.name}</span>\n      {': '}\n      <TypeLink type={arg.type} />\n      {showDefaultValue !== false && <DefaultValue field={arg} />}\n    </span>\n  );\n  if (inline) {\n    return definition;\n  }\n  return (\n    <div className=\"graphiql-doc-explorer-argument\">\n      {definition}\n      {arg.description ? (\n        <MarkdownContent type=\"description\">{arg.description}</MarkdownContent>\n      ) : null}\n      {arg.deprecationReason ? (\n        <div className=\"graphiql-doc-explorer-argument-deprecation\">\n          <div className=\"graphiql-doc-explorer-argument-deprecation-label\">\n            Deprecated\n          </div>\n          <MarkdownContent type=\"deprecation\">\n            {arg.deprecationReason}\n          </MarkdownContent>\n        </div>\n      ) : null}\n    </div>\n  );\n}\n","import { MarkdownContent } from '../../ui';\n\nimport './deprecation-reason.css';\n\ntype DeprecationReasonProps = {\n  /**\n   * The deprecation reason as markdown string.\n   */\n  children?: string | null;\n  preview?: boolean;\n};\n\nexport function DeprecationReason(props: DeprecationReasonProps) {\n  return props.children ? (\n    <div className=\"graphiql-doc-explorer-deprecation\">\n      <div className=\"graphiql-doc-explorer-deprecation-label\">Deprecated</div>\n      <MarkdownContent\n        type=\"deprecation\"\n        onlyShowFirstChild={props.preview ?? true}\n      >\n        {props.children}\n      </MarkdownContent>\n    </div>\n  ) : null;\n}\n","import { DirectiveNode } from 'graphql';\n\nimport './directive.css';\n\ntype DirectiveProps = {\n  /**\n   * The directive that should be rendered.\n   */\n  directive: DirectiveNode;\n};\n\nexport function Directive({ directive }: DirectiveProps) {\n  return (\n    <span className=\"graphiql-doc-explorer-directive\">\n      @{directive.name.value}\n    </span>\n  );\n}\n","import { ComponentType, ReactNode } from 'react';\n\nimport {\n  ArgumentIcon,\n  DeprecatedArgumentIcon,\n  DeprecatedEnumValueIcon,\n  DeprecatedFieldIcon,\n  DirectiveIcon,\n  EnumValueIcon,\n  FieldIcon,\n  ImplementsIcon,\n  RootTypeIcon,\n  TypeIcon,\n} from '../../icons';\n\nimport './section.css';\n\ntype ExplorerSectionProps = {\n  children: ReactNode;\n  /**\n   * The title of the section, which will also determine the icon rendered next\n   * to the headline.\n   */\n  title:\n    | 'Root Types'\n    | 'Fields'\n    | 'Deprecated Fields'\n    | 'Type'\n    | 'Arguments'\n    | 'Deprecated Arguments'\n    | 'Implements'\n    | 'Implementations'\n    | 'Possible Types'\n    | 'Enum Values'\n    | 'Deprecated Enum Values'\n    | 'Directives'\n    | 'All Schema Types';\n};\n\nexport function ExplorerSection(props: ExplorerSectionProps) {\n  const Icon = TYPE_TO_ICON[props.title];\n  return (\n    <div>\n      <div className=\"graphiql-doc-explorer-section-title\">\n        <Icon />\n        {props.title}\n      </div>\n      <div className=\"graphiql-doc-explorer-section-content\">\n        {props.children}\n      </div>\n    </div>\n  );\n}\n\nconst TYPE_TO_ICON: Record<ExplorerSectionProps['title'], ComponentType> = {\n  Arguments: ArgumentIcon,\n  'Deprecated Arguments': DeprecatedArgumentIcon,\n  'Deprecated Enum Values': DeprecatedEnumValueIcon,\n  'Deprecated Fields': DeprecatedFieldIcon,\n  Directives: DirectiveIcon,\n  'Enum Values': EnumValueIcon,\n  Fields: FieldIcon,\n  Implements: ImplementsIcon,\n  Implementations: TypeIcon,\n  'Possible Types': TypeIcon,\n  'Root Types': RootTypeIcon,\n  Type: TypeIcon,\n  'All Schema Types': TypeIcon,\n};\n","import { GraphQLArgument } from 'graphql';\nimport { useState } from 'react';\n\nimport { Button, MarkdownContent } from '../../ui';\nimport { ExplorerFieldDef } from '../context';\nimport { Argument } from './argument';\nimport { DeprecationReason } from './deprecation-reason';\nimport { Directive } from './directive';\nimport { ExplorerSection } from './section';\nimport { TypeLink } from './type-link';\n\ntype FieldDocumentationProps = {\n  /**\n   * The field or argument that should be rendered.\n   */\n  field: ExplorerFieldDef;\n};\n\nexport function FieldDocumentation(props: FieldDocumentationProps) {\n  return (\n    <>\n      {props.field.description ? (\n        <MarkdownContent type=\"description\">\n          {props.field.description}\n        </MarkdownContent>\n      ) : null}\n      <DeprecationReason preview={false}>\n        {props.field.deprecationReason}\n      </DeprecationReason>\n      <ExplorerSection title=\"Type\">\n        <TypeLink type={props.field.type} />\n      </ExplorerSection>\n      <Arguments field={props.field} />\n      <Directives field={props.field} />\n    </>\n  );\n}\n\nfunction Arguments({ field }: { field: ExplorerFieldDef }) {\n  const [showDeprecated, setShowDeprecated] = useState(false);\n  const handleShowDeprecated = () => {\n    setShowDeprecated(true);\n  };\n\n  if (!('args' in field)) {\n    return null;\n  }\n\n  const args: GraphQLArgument[] = [];\n  const deprecatedArgs: GraphQLArgument[] = [];\n  for (const argument of field.args) {\n    if (argument.deprecationReason) {\n      deprecatedArgs.push(argument);\n    } else {\n      args.push(argument);\n    }\n  }\n\n  return (\n    <>\n      {args.length > 0 ? (\n        <ExplorerSection title=\"Arguments\">\n          {args.map(arg => (\n            <Argument key={arg.name} arg={arg} />\n          ))}\n        </ExplorerSection>\n      ) : null}\n      {deprecatedArgs.length > 0 ? (\n        showDeprecated || args.length === 0 ? (\n          <ExplorerSection title=\"Deprecated Arguments\">\n            {deprecatedArgs.map(arg => (\n              <Argument key={arg.name} arg={arg} />\n            ))}\n          </ExplorerSection>\n        ) : (\n          <Button type=\"button\" onClick={handleShowDeprecated}>\n            Show Deprecated Arguments\n          </Button>\n        )\n      ) : null}\n    </>\n  );\n}\n\nfunction Directives({ field }: { field: ExplorerFieldDef }) {\n  const directives = field.astNode?.directives || [];\n  if (!directives || directives.length === 0) {\n    return null;\n  }\n  return (\n    <ExplorerSection title=\"Directives\">\n      {directives.map(directive => (\n        <div key={directive.name.value}>\n          <Directive directive={directive} />\n        </div>\n      ))}\n    </ExplorerSection>\n  );\n}\n","import type { GraphQLSchema } from 'graphql';\n\nimport { MarkdownContent } from '../../ui';\nimport { ExplorerSection } from './section';\nimport { TypeLink } from './type-link';\n\nimport './schema-documentation.css';\n\ntype SchemaDocumentationProps = {\n  /**\n   * The schema that should be rendered.\n   */\n  schema: GraphQLSchema;\n};\n\nexport function SchemaDocumentation(props: SchemaDocumentationProps) {\n  const queryType = props.schema.getQueryType();\n  const mutationType = props.schema.getMutationType?.();\n  const subscriptionType = props.schema.getSubscriptionType?.();\n  const typeMap = props.schema.getTypeMap();\n  const ignoreTypesInAllSchema = [\n    queryType?.name,\n    mutationType?.name,\n    subscriptionType?.name,\n  ];\n\n  return (\n    <>\n      <MarkdownContent type=\"description\">\n        {props.schema.description ||\n          'A GraphQL schema provides a root type for each kind of operation.'}\n      </MarkdownContent>\n      <ExplorerSection title=\"Root Types\">\n        {queryType ? (\n          <div>\n            <span className=\"graphiql-doc-explorer-root-type\">query</span>\n            {': '}\n            <TypeLink type={queryType} />\n          </div>\n        ) : null}\n        {mutationType && (\n          <div>\n            <span className=\"graphiql-doc-explorer-root-type\">mutation</span>\n            {': '}\n            <TypeLink type={mutationType} />\n          </div>\n        )}\n        {subscriptionType && (\n          <div>\n            <span className=\"graphiql-doc-explorer-root-type\">\n              subscription\n            </span>\n            {': '}\n            <TypeLink type={subscriptionType} />\n          </div>\n        )}\n      </ExplorerSection>\n      <ExplorerSection title=\"All Schema Types\">\n        {typeMap && (\n          <div>\n            {Object.values(typeMap).map(type => {\n              if (\n                ignoreTypesInAllSchema.includes(type.name) ||\n                type.name.startsWith('__')\n              ) {\n                return null;\n              }\n\n              return (\n                <div key={type.name}>\n                  <TypeLink type={type} />\n                </div>\n              );\n            })}\n          </div>\n        )}\n      </ExplorerSection>\n    </>\n  );\n}\n","'use no memo';\n\n/**\n * Provided a duration and a function, returns a new function which is called\n * `duration` milliseconds after the last call.\n */\nexport default function debounce<F extends (...args: any[]) => any>(\n  duration: number,\n  fn: F,\n) {\n  let timeout: number | null;\n  return function (...args) {\n    if (timeout) {\n      window.clearTimeout(timeout);\n    }\n    timeout = window.setTimeout(() => {\n      timeout = null;\n      fn(...args);\n    }, duration);\n  } as F;\n}\n","import {\n  GraphQLArgument,\n  GraphQLField,\n  GraphQLInputField,\n  GraphQLNamedType,\n  isInputObjectType,\n  isInterfaceType,\n  isObjectType,\n} from 'graphql';\nimport {\n  FocusEventHandler,\n  // eslint-disable-next-line @typescript-eslint/no-restricted-imports\n  useCallback,\n  useEffect,\n  // eslint-disable-next-line @typescript-eslint/no-restricted-imports\n  useMemo,\n  useRef,\n  useState,\n} from 'react';\nimport { Combobox } from '@headlessui/react';\nimport { MagnifyingGlassIcon } from '../../icons';\nimport { useSchemaContext } from '../../schema';\nimport debounce from '../../utility/debounce';\n\nimport { useExplorerContext } from '../context';\n\nimport './search.css';\nimport { renderType } from './utils';\nimport { isMacOs } from '../../utility/is-macos';\n\nexport function Search() {\n  'use no memo'; // TODO: add test https://github.com/graphql/graphiql/issues/3842\n  const { explorerNavStack, push } = useExplorerContext({\n    nonNull: true,\n    caller: Search,\n  });\n\n  const inputRef = useRef<HTMLInputElement>(null);\n  const getSearchResults = useSearchResults();\n  const [searchValue, setSearchValue] = useState('');\n  const [results, setResults] = useState(getSearchResults(searchValue));\n  const debouncedGetSearchResults = useMemo(\n    () =>\n      debounce(200, (search: string) => {\n        setResults(getSearchResults(search));\n      }),\n    [getSearchResults],\n  );\n  useEffect(() => {\n    debouncedGetSearchResults(searchValue);\n  }, [debouncedGetSearchResults, searchValue]);\n\n  useEffect(() => {\n    function handleKeyDown(event: KeyboardEvent) {\n      if (event.metaKey && event.key === 'k') {\n        inputRef.current?.focus();\n      }\n    }\n\n    window.addEventListener('keydown', handleKeyDown);\n    return () => window.removeEventListener('keydown', handleKeyDown);\n  }, []);\n\n  const navItem = explorerNavStack.at(-1)!;\n\n  const onSelect = useCallback(\n    (def: TypeMatch | FieldMatch) => {\n      push(\n        'field' in def\n          ? { name: def.field.name, def: def.field }\n          : { name: def.type.name, def: def.type },\n      );\n    },\n    [push],\n  );\n  const isFocused = useRef(false);\n  const handleFocus: FocusEventHandler = useCallback(e => {\n    isFocused.current = e.type === 'focus';\n  }, []);\n\n  const shouldSearchBoxAppear =\n    explorerNavStack.length === 1 ||\n    isObjectType(navItem.def) ||\n    isInterfaceType(navItem.def) ||\n    isInputObjectType(navItem.def);\n  if (!shouldSearchBoxAppear) {\n    return null;\n  }\n\n  return (\n    <Combobox\n      as=\"div\"\n      className=\"graphiql-doc-explorer-search\"\n      onChange={onSelect}\n      data-state={isFocused ? undefined : 'idle'}\n      aria-label={`Search ${navItem.name}...`}\n    >\n      <div\n        className=\"graphiql-doc-explorer-search-input\"\n        onClick={() => {\n          inputRef.current?.focus();\n        }}\n      >\n        <MagnifyingGlassIcon />\n        <Combobox.Input\n          autoComplete=\"off\"\n          onFocus={handleFocus}\n          onBlur={handleFocus}\n          onChange={event => setSearchValue(event.target.value)}\n          placeholder={`${isMacOs ? '⌘' : 'Ctrl'} K`}\n          ref={inputRef}\n          value={searchValue}\n          data-cy=\"doc-explorer-input\"\n        />\n      </div>\n\n      {/* display on focus */}\n      {/* eslint-disable-next-line react-compiler/react-compiler */}\n      {isFocused.current && (\n        <Combobox.Options data-cy=\"doc-explorer-list\">\n          {results.within.length +\n            results.types.length +\n            results.fields.length ===\n          0 ? (\n            <li className=\"graphiql-doc-explorer-search-empty\">\n              No results found\n            </li>\n          ) : (\n            results.within.map((result, i) => (\n              <Combobox.Option\n                key={`within-${i}`}\n                value={result}\n                data-cy=\"doc-explorer-option\"\n              >\n                <Field field={result.field} argument={result.argument} />\n              </Combobox.Option>\n            ))\n          )}\n          {results.within.length > 0 &&\n          results.types.length + results.fields.length > 0 ? (\n            <div className=\"graphiql-doc-explorer-search-divider\">\n              Other results\n            </div>\n          ) : null}\n          {results.types.map((result, i) => (\n            <Combobox.Option\n              key={`type-${i}`}\n              value={result}\n              data-cy=\"doc-explorer-option\"\n            >\n              <Type type={result.type} />\n            </Combobox.Option>\n          ))}\n          {results.fields.map((result, i) => (\n            <Combobox.Option\n              key={`field-${i}`}\n              value={result}\n              data-cy=\"doc-explorer-option\"\n            >\n              <Type type={result.type} />.\n              <Field field={result.field} argument={result.argument} />\n            </Combobox.Option>\n          ))}\n        </Combobox.Options>\n      )}\n    </Combobox>\n  );\n}\n\ntype TypeMatch = { type: GraphQLNamedType };\n\ntype FieldMatch = {\n  type: GraphQLNamedType;\n  field: GraphQLField<unknown, unknown> | GraphQLInputField;\n  argument?: GraphQLArgument;\n};\n\n// To make react-compiler happy, otherwise complains about - Hooks may not be referenced as normal values\nconst _useSearchResults = useSearchResults;\n\nexport function useSearchResults(caller?: Function) {\n  const { explorerNavStack } = useExplorerContext({\n    nonNull: true,\n    caller: caller || _useSearchResults,\n  });\n  const { schema } = useSchemaContext({\n    nonNull: true,\n    caller: caller || _useSearchResults,\n  });\n\n  const navItem = explorerNavStack.at(-1)!;\n\n  return (searchValue: string) => {\n    const matches: {\n      within: FieldMatch[];\n      types: TypeMatch[];\n      fields: FieldMatch[];\n    } = {\n      within: [],\n      types: [],\n      fields: [],\n    };\n\n    if (!schema) {\n      return matches;\n    }\n\n    const withinType = navItem.def;\n\n    const typeMap = schema.getTypeMap();\n    let typeNames = Object.keys(typeMap);\n\n    // Move the within type name to be the first searched.\n    if (withinType) {\n      typeNames = typeNames.filter(n => n !== withinType.name);\n      typeNames.unshift(withinType.name);\n    }\n    for (const typeName of typeNames) {\n      if (\n        matches.within.length + matches.types.length + matches.fields.length >=\n        100\n      ) {\n        break;\n      }\n\n      const type = typeMap[typeName];\n      if (withinType !== type && isMatch(typeName, searchValue)) {\n        matches.types.push({ type });\n      }\n\n      if (\n        !isObjectType(type) &&\n        !isInterfaceType(type) &&\n        !isInputObjectType(type)\n      ) {\n        continue;\n      }\n\n      const fields = type.getFields();\n      for (const fieldName in fields) {\n        const field = fields[fieldName];\n        let matchingArgs: GraphQLArgument[] | undefined;\n\n        if (!isMatch(fieldName, searchValue)) {\n          if ('args' in field) {\n            matchingArgs = field.args.filter(arg =>\n              isMatch(arg.name, searchValue),\n            );\n            if (matchingArgs.length === 0) {\n              continue;\n            }\n          } else {\n            continue;\n          }\n        }\n\n        matches[withinType === type ? 'within' : 'fields'].push(\n          ...(matchingArgs\n            ? matchingArgs.map(argument => ({ type, field, argument }))\n            : [{ type, field }]),\n        );\n      }\n    }\n\n    return matches;\n  };\n}\n\nfunction isMatch(sourceText: string, searchValue: string): boolean {\n  try {\n    const escaped = searchValue.replaceAll(/[^_0-9A-Za-z]/g, ch => '\\\\' + ch);\n    return sourceText.search(new RegExp(escaped, 'i')) !== -1;\n  } catch {\n    return sourceText.toLowerCase().includes(searchValue.toLowerCase());\n  }\n}\n\ntype TypeProps = { type: GraphQLNamedType };\n\nfunction Type(props: TypeProps) {\n  return (\n    <span className=\"graphiql-doc-explorer-search-type\">{props.type.name}</span>\n  );\n}\n\ntype FieldProps = {\n  field: GraphQLField<unknown, unknown> | GraphQLInputField;\n  argument?: GraphQLArgument;\n};\n\nfunction Field({ field, argument }: FieldProps) {\n  return (\n    <>\n      <span className=\"graphiql-doc-explorer-search-field\">{field.name}</span>\n      {argument ? (\n        <>\n          (\n          <span className=\"graphiql-doc-explorer-search-argument\">\n            {argument.name}\n          </span>\n          :{' '}\n          {renderType(argument.type, namedType => (\n            <Type type={namedType} />\n          ))}\n          )\n        </>\n      ) : null}\n    </>\n  );\n}\n","import { ExplorerFieldDef, useExplorerContext } from '../context';\n\nimport './field-link.css';\n\ntype FieldLinkProps = {\n  /**\n   * The field or argument that should be linked to.\n   */\n  field: ExplorerFieldDef;\n};\n\nexport function FieldLink(props: FieldLinkProps) {\n  const { push } = useExplorerContext({ nonNull: true });\n\n  return (\n    <a\n      className=\"graphiql-doc-explorer-field-name\"\n      onClick={event => {\n        event.preventDefault();\n        push({ name: props.field.name, def: props.field });\n      }}\n      href=\"#\"\n    >\n      {props.field.name}\n    </a>\n  );\n}\n","import {\n  GraphQLEnumValue,\n  GraphQLNamedType,\n  isAbstractType,\n  isEnumType,\n  isInputObjectType,\n  isInterfaceType,\n  isNamedType,\n  isObjectType,\n} from 'graphql';\nimport { useState } from 'react';\n\nimport { useSchemaContext } from '../../schema';\nimport { Button, MarkdownContent } from '../../ui';\nimport { ExplorerFieldDef } from '../context';\nimport { Argument } from './argument';\nimport { DefaultValue } from './default-value';\nimport { DeprecationReason } from './deprecation-reason';\nimport { FieldLink } from './field-link';\nimport { ExplorerSection } from './section';\nimport { TypeLink } from './type-link';\n\nimport './type-documentation.css';\n\ntype TypeDocumentationProps = {\n  /**\n   * The type that should be rendered.\n   */\n  type: GraphQLNamedType;\n};\n\nexport function TypeDocumentation(props: TypeDocumentationProps) {\n  return isNamedType(props.type) ? (\n    <>\n      {props.type.description ? (\n        <MarkdownContent type=\"description\">\n          {props.type.description}\n        </MarkdownContent>\n      ) : null}\n      <ImplementsInterfaces type={props.type} />\n      <Fields type={props.type} />\n      <EnumValues type={props.type} />\n      <PossibleTypes type={props.type} />\n    </>\n  ) : null;\n}\n\nfunction ImplementsInterfaces({ type }: { type: GraphQLNamedType }) {\n  if (!isObjectType(type)) {\n    return null;\n  }\n  const interfaces = type.getInterfaces();\n  return interfaces.length > 0 ? (\n    <ExplorerSection title=\"Implements\">\n      {type.getInterfaces().map(implementedInterface => (\n        <div key={implementedInterface.name}>\n          <TypeLink type={implementedInterface} />\n        </div>\n      ))}\n    </ExplorerSection>\n  ) : null;\n}\n\nfunction Fields({ type }: { type: GraphQLNamedType }) {\n  const [showDeprecated, setShowDeprecated] = useState(false);\n  const handleShowDeprecated = () => {\n    setShowDeprecated(true);\n  };\n\n  if (\n    !isObjectType(type) &&\n    !isInterfaceType(type) &&\n    !isInputObjectType(type)\n  ) {\n    return null;\n  }\n\n  const fieldMap = type.getFields();\n\n  const fields: ExplorerFieldDef[] = [];\n  const deprecatedFields: ExplorerFieldDef[] = [];\n\n  for (const field of Object.keys(fieldMap).map(name => fieldMap[name])) {\n    if (field.deprecationReason) {\n      deprecatedFields.push(field);\n    } else {\n      fields.push(field);\n    }\n  }\n\n  return (\n    <>\n      {fields.length > 0 ? (\n        <ExplorerSection title=\"Fields\">\n          {fields.map(field => (\n            <Field key={field.name} field={field} />\n          ))}\n        </ExplorerSection>\n      ) : null}\n      {deprecatedFields.length > 0 ? (\n        showDeprecated || fields.length === 0 ? (\n          <ExplorerSection title=\"Deprecated Fields\">\n            {deprecatedFields.map(field => (\n              <Field key={field.name} field={field} />\n            ))}\n          </ExplorerSection>\n        ) : (\n          <Button type=\"button\" onClick={handleShowDeprecated}>\n            Show Deprecated Fields\n          </Button>\n        )\n      ) : null}\n    </>\n  );\n}\n\nfunction Field({ field }: { field: ExplorerFieldDef }) {\n  const args =\n    'args' in field ? field.args.filter(arg => !arg.deprecationReason) : [];\n  return (\n    <div className=\"graphiql-doc-explorer-item\">\n      <div>\n        <FieldLink field={field} />\n        {args.length > 0 ? (\n          <>\n            (\n            <span>\n              {args.map(arg =>\n                args.length === 1 ? (\n                  <Argument key={arg.name} arg={arg} inline />\n                ) : (\n                  <div\n                    key={arg.name}\n                    className=\"graphiql-doc-explorer-argument-multiple\"\n                  >\n                    <Argument arg={arg} inline />\n                  </div>\n                ),\n              )}\n            </span>\n            )\n          </>\n        ) : null}\n        {': '}\n        <TypeLink type={field.type} />\n        <DefaultValue field={field} />\n      </div>\n      {field.description ? (\n        <MarkdownContent type=\"description\" onlyShowFirstChild>\n          {field.description}\n        </MarkdownContent>\n      ) : null}\n      <DeprecationReason>{field.deprecationReason}</DeprecationReason>\n    </div>\n  );\n}\n\nfunction EnumValues({ type }: { type: GraphQLNamedType }) {\n  const [showDeprecated, setShowDeprecated] = useState(false);\n  const handleShowDeprecated = () => {\n    setShowDeprecated(true);\n  };\n\n  if (!isEnumType(type)) {\n    return null;\n  }\n\n  const values: GraphQLEnumValue[] = [];\n  const deprecatedValues: GraphQLEnumValue[] = [];\n  for (const value of type.getValues()) {\n    if (value.deprecationReason) {\n      deprecatedValues.push(value);\n    } else {\n      values.push(value);\n    }\n  }\n\n  return (\n    <>\n      {values.length > 0 ? (\n        <ExplorerSection title=\"Enum Values\">\n          {values.map(value => (\n            <EnumValue key={value.name} value={value} />\n          ))}\n        </ExplorerSection>\n      ) : null}\n      {deprecatedValues.length > 0 ? (\n        showDeprecated || values.length === 0 ? (\n          <ExplorerSection title=\"Deprecated Enum Values\">\n            {deprecatedValues.map(value => (\n              <EnumValue key={value.name} value={value} />\n            ))}\n          </ExplorerSection>\n        ) : (\n          <Button type=\"button\" onClick={handleShowDeprecated}>\n            Show Deprecated Values\n          </Button>\n        )\n      ) : null}\n    </>\n  );\n}\n\nfunction EnumValue({ value }: { value: GraphQLEnumValue }) {\n  return (\n    <div className=\"graphiql-doc-explorer-item\">\n      <div className=\"graphiql-doc-explorer-enum-value\">{value.name}</div>\n      {value.description ? (\n        <MarkdownContent type=\"description\">\n          {value.description}\n        </MarkdownContent>\n      ) : null}\n      {value.deprecationReason ? (\n        <MarkdownContent type=\"deprecation\">\n          {value.deprecationReason}\n        </MarkdownContent>\n      ) : null}\n    </div>\n  );\n}\n\nfunction PossibleTypes({ type }: { type: GraphQLNamedType }) {\n  const { schema } = useSchemaContext({ nonNull: true });\n  if (!schema || !isAbstractType(type)) {\n    return null;\n  }\n  return (\n    <ExplorerSection\n      title={isInterfaceType(type) ? 'Implementations' : 'Possible Types'}\n    >\n      {schema.getPossibleTypes(type).map(possibleType => (\n        <div key={possibleType.name}>\n          <TypeLink type={possibleType} />\n        </div>\n      ))}\n    </ExplorerSection>\n  );\n}\n","import { isType } from 'graphql';\nimport { ReactNode } from 'react';\n\nimport { ChevronLeftIcon } from '../../icons';\nimport { useSchemaContext } from '../../schema';\nimport { Spinner } from '../../ui';\nimport { useExplorerContext } from '../context';\nimport { FieldDocumentation } from './field-documentation';\nimport { SchemaDocumentation } from './schema-documentation';\nimport { Search } from './search';\nimport { TypeDocumentation } from './type-documentation';\n\nimport './doc-explorer.css';\n\nexport function DocExplorer() {\n  const { fetchError, isFetching, schema, validationErrors } = useSchemaContext(\n    { nonNull: true, caller: DocExplorer },\n  );\n  const { explorerNavStack, pop } = useExplorerContext({\n    nonNull: true,\n    caller: DocExplorer,\n  });\n\n  const navItem = explorerNavStack.at(-1)!;\n\n  let content: ReactNode = null;\n  if (fetchError) {\n    content = (\n      <div className=\"graphiql-doc-explorer-error\">Error fetching schema</div>\n    );\n  } else if (validationErrors.length > 0) {\n    content = (\n      <div className=\"graphiql-doc-explorer-error\">\n        Schema is invalid: {validationErrors[0].message}\n      </div>\n    );\n  } else if (isFetching) {\n    // Schema is undefined when it is being loaded via introspection.\n    content = <Spinner />;\n  } else if (!schema) {\n    // Schema is null when it explicitly does not exist, typically due to\n    // an error during introspection.\n    content = (\n      <div className=\"graphiql-doc-explorer-error\">\n        No GraphQL schema available\n      </div>\n    );\n  } else if (explorerNavStack.length === 1) {\n    content = <SchemaDocumentation schema={schema} />;\n  } else if (isType(navItem.def)) {\n    content = <TypeDocumentation type={navItem.def} />;\n  } else if (navItem.def) {\n    content = <FieldDocumentation field={navItem.def} />;\n  }\n\n  let prevName;\n  if (explorerNavStack.length > 1) {\n    prevName = explorerNavStack.at(-2)!.name;\n  }\n\n  return (\n    <section\n      className=\"graphiql-doc-explorer\"\n      aria-label=\"Documentation Explorer\"\n    >\n      <div className=\"graphiql-doc-explorer-header\">\n        <div className=\"graphiql-doc-explorer-header-content\">\n          {prevName && (\n            <a\n              href=\"#\"\n              className=\"graphiql-doc-explorer-back\"\n              onClick={event => {\n                event.preventDefault();\n                pop();\n              }}\n              aria-label={`Go back to ${prevName}`}\n            >\n              <ChevronLeftIcon />\n              {prevName}\n            </a>\n          )}\n          <div className=\"graphiql-doc-explorer-title\">{navItem.name}</div>\n        </div>\n        <Search key={navItem.name} />\n      </div>\n      <div className=\"graphiql-doc-explorer-content\">{content}</div>\n    </section>\n  );\n}\n","import { ComponentType, ReactNode, useEffect, useState } from 'react';\nimport { DocExplorer, useExplorerContext } from './explorer';\nimport { History, useHistoryContext } from './history';\nimport { DocsFilledIcon, DocsIcon, HistoryIcon } from './icons';\nimport { useStorageContext } from './storage';\nimport { createContextHook, createNullableContext } from './utility/context';\n\nexport type GraphiQLPlugin = {\n  /**\n   * A component that renders content into the plugin pane.\n   */\n  content: ComponentType;\n  /**\n   * A component that renders an icon that will be shown inside a button that\n   * toggles the plugin visibility.\n   */\n  icon: ComponentType;\n  /**\n   * The unique title of the plugin. If two plugins are present with the same\n   * title the provider component will throw an error.\n   */\n  title: string;\n};\n\nexport const DOC_EXPLORER_PLUGIN: GraphiQLPlugin = {\n  title: 'Documentation Explorer',\n  icon: function Icon() {\n    const pluginContext = usePluginContext();\n    return pluginContext?.visiblePlugin === DOC_EXPLORER_PLUGIN ? (\n      <DocsFilledIcon />\n    ) : (\n      <DocsIcon />\n    );\n  },\n  content: DocExplorer,\n};\nexport const HISTORY_PLUGIN: GraphiQLPlugin = {\n  title: 'History',\n  icon: HistoryIcon,\n  content: History,\n};\n\nexport type PluginContextType = {\n  /**\n   * A list of all current plugins, including the built-in ones (the doc\n   * explorer and the history).\n   */\n  plugins: GraphiQLPlugin[];\n  /**\n   * Defines the plugin which is currently visible.\n   * @param plugin The plugin that should become visible. You can either pass\n   * the plugin object (has to be referentially equal to the one passed as\n   * prop) or the plugin title as string. If `null` is passed, no plugin will\n   * be visible.\n   */\n  setVisiblePlugin(plugin: GraphiQLPlugin | string | null): void;\n  /**\n   * The plugin which is currently visible.\n   */\n  visiblePlugin: GraphiQLPlugin | null;\n};\n\nexport const PluginContext =\n  createNullableContext<PluginContextType>('PluginContext');\n\nexport type PluginContextProviderProps = {\n  children: ReactNode;\n  /**\n   * Invoked when the visibility state of any plugin changes.\n   * @param visiblePlugin The plugin object that is now visible. If no plugin\n   * is visible, the function will be invoked with `null`.\n   */\n  onTogglePluginVisibility?(visiblePlugin: GraphiQLPlugin | null): void;\n  /**\n   * This props accepts a list of plugins that will be shown in addition to the\n   * built-in ones (the doc explorer and the history).\n   */\n  plugins?: GraphiQLPlugin[];\n  /**\n   * This prop can be used to set the visibility state of plugins. Every time\n   * this prop changes, the visibility state will be overridden. Note that the\n   * visibility state can change in between these updates, for example by\n   * calling the `setVisiblePlugin` function provided by the context.\n   */\n  visiblePlugin?: GraphiQLPlugin | string;\n};\n\nexport function PluginContextProvider(props: PluginContextProviderProps) {\n  const storage = useStorageContext();\n  const explorerContext = useExplorerContext();\n  const historyContext = useHistoryContext();\n\n  const hasExplorerContext = Boolean(explorerContext);\n  const hasHistoryContext = Boolean(historyContext);\n  const plugins = (() => {\n    const pluginList: GraphiQLPlugin[] = [];\n    const pluginTitles: Record<string, true> = {};\n\n    if (hasExplorerContext) {\n      pluginList.push(DOC_EXPLORER_PLUGIN);\n      pluginTitles[DOC_EXPLORER_PLUGIN.title] = true;\n    }\n    if (hasHistoryContext) {\n      pluginList.push(HISTORY_PLUGIN);\n      pluginTitles[HISTORY_PLUGIN.title] = true;\n    }\n\n    for (const plugin of props.plugins || []) {\n      if (typeof plugin.title !== 'string' || !plugin.title) {\n        throw new Error('All GraphiQL plugins must have a unique title');\n      }\n      if (pluginTitles[plugin.title]) {\n        throw new Error(\n          `All GraphiQL plugins must have a unique title, found two plugins with the title '${plugin.title}'`,\n        );\n      } else {\n        pluginList.push(plugin);\n        pluginTitles[plugin.title] = true;\n      }\n    }\n\n    return pluginList;\n  })();\n\n  const [visiblePlugin, internalSetVisiblePlugin] =\n    useState<GraphiQLPlugin | null>(() => {\n      const storedValue = storage?.get(STORAGE_KEY);\n      const pluginForStoredValue = plugins.find(\n        plugin => plugin.title === storedValue,\n      );\n      if (pluginForStoredValue) {\n        return pluginForStoredValue;\n      }\n      if (storedValue) {\n        storage?.set(STORAGE_KEY, '');\n      }\n\n      if (!props.visiblePlugin) {\n        return null;\n      }\n\n      return (\n        plugins.find(\n          plugin =>\n            (typeof props.visiblePlugin === 'string'\n              ? plugin.title\n              : plugin) === props.visiblePlugin,\n        ) || null\n      );\n    });\n\n  const { onTogglePluginVisibility, children } = props;\n  const setVisiblePlugin: PluginContextType['setVisiblePlugin'] = // eslint-disable-line react-hooks/exhaustive-deps -- false positive, function is optimized by react-compiler, no need to wrap with useCallback\n    plugin => {\n      const newVisiblePlugin = plugin\n        ? plugins.find(\n            p => (typeof plugin === 'string' ? p.title : p) === plugin,\n          ) || null\n        : null;\n      internalSetVisiblePlugin(current => {\n        if (newVisiblePlugin === current) {\n          return current;\n        }\n        onTogglePluginVisibility?.(newVisiblePlugin);\n        return newVisiblePlugin;\n      });\n    };\n\n  useEffect(() => {\n    if (props.visiblePlugin) {\n      setVisiblePlugin(props.visiblePlugin);\n    }\n  }, [plugins, props.visiblePlugin, setVisiblePlugin]);\n\n  const value = { plugins, setVisiblePlugin, visiblePlugin };\n\n  return (\n    <PluginContext.Provider value={value}>{children}</PluginContext.Provider>\n  );\n}\n\nexport const usePluginContext = createContextHook(PluginContext);\n\nconst STORAGE_KEY = 'visiblePlugin';\n","'use no memo';\n\nimport type { Editor, EditorChange } from 'codemirror';\nimport type { IHint } from 'codemirror-graphql/hint';\nimport {\n  GraphQLNamedType,\n  GraphQLSchema,\n  GraphQLType,\n  isListType,\n  isNonNullType,\n} from 'graphql';\n\nimport { ExplorerContextType } from '../explorer';\nimport { markdown } from '../markdown';\nimport { DOC_EXPLORER_PLUGIN, PluginContextType } from '../plugin';\nimport { importCodeMirror } from './common';\n\n/**\n * Render a custom UI for CodeMirror's hint which includes additional info\n * about the type and description for the selected context.\n */\nexport function onHasCompletion(\n  _cm: Editor,\n  data: EditorChange | undefined,\n  schema: GraphQLSchema | null | undefined,\n  explorer: ExplorerContextType | null,\n  plugin: PluginContextType | null,\n  callback?: (type: GraphQLNamedType) => void,\n): void {\n  void importCodeMirror([], { useCommonAddons: false }).then(CodeMirror => {\n    let information: HTMLDivElement | null;\n    let fieldName: HTMLSpanElement | null;\n    let typeNamePill: HTMLSpanElement | null;\n    let typeNamePrefix: HTMLSpanElement | null;\n    let typeName: HTMLAnchorElement | null;\n    let typeNameSuffix: HTMLSpanElement | null;\n    let description: HTMLDivElement | null;\n    let deprecation: HTMLDivElement | null;\n    let deprecationReason: HTMLDivElement | null;\n    CodeMirror.on(\n      data,\n      'select',\n      // @ts-expect-error\n      (ctx: IHint, el: HTMLDivElement) => {\n        // Only the first time (usually when the hint UI is first displayed)\n        // do we create the information nodes.\n        if (!information) {\n          const hintsUl = el.parentNode as HTMLUListElement & ParentNode;\n\n          // This \"information\" node will contain the additional info about the\n          // highlighted typeahead option.\n          information = document.createElement('div');\n          information.className = 'CodeMirror-hint-information';\n          hintsUl.append(information);\n\n          const header = document.createElement('header');\n          header.className = 'CodeMirror-hint-information-header';\n          information.append(header);\n\n          fieldName = document.createElement('span');\n          fieldName.className = 'CodeMirror-hint-information-field-name';\n          header.append(fieldName);\n\n          typeNamePill = document.createElement('span');\n          typeNamePill.className = 'CodeMirror-hint-information-type-name-pill';\n          header.append(typeNamePill);\n\n          typeNamePrefix = document.createElement('span');\n          typeNamePill.append(typeNamePrefix);\n\n          typeName = document.createElement('a');\n          typeName.className = 'CodeMirror-hint-information-type-name';\n          typeName.href = 'javascript:void 0'; // eslint-disable-line no-script-url\n          typeName.addEventListener('click', onClickHintInformation);\n          typeNamePill.append(typeName);\n\n          typeNameSuffix = document.createElement('span');\n          typeNamePill.append(typeNameSuffix);\n\n          description = document.createElement('div');\n          description.className = 'CodeMirror-hint-information-description';\n          information.append(description);\n\n          deprecation = document.createElement('div');\n          deprecation.className = 'CodeMirror-hint-information-deprecation';\n          information.append(deprecation);\n\n          const deprecationLabel = document.createElement('span');\n          deprecationLabel.className =\n            'CodeMirror-hint-information-deprecation-label';\n          deprecationLabel.textContent = 'Deprecated';\n          deprecation.append(deprecationLabel);\n\n          deprecationReason = document.createElement('div');\n          deprecationReason.className =\n            'CodeMirror-hint-information-deprecation-reason';\n          deprecation.append(deprecationReason);\n\n          /**\n           * This is a bit hacky: By default, codemirror renders all hints\n           * inside a single container element. The only possibility to add\n           * something into this list is to add to the container element (which\n           * is a `ul` element).\n           *\n           * However, in the UI we want to have a two-column layout for the\n           * hints:\n           * - The first column contains the actual hints, i.e. the things that\n           *   are returned from the `hint` module from `codemirror-graphql`.\n           * - The second column contains the description and optionally the\n           *   deprecation reason for the given field.\n           *\n           * We solve this with a CSS grid layout that has an auto number of\n           * rows and two columns. All the hints go in the first column, and\n           * the description container (which is the `information` element\n           * here) goes in the second column. To make the hints scrollable, the\n           * container element has `overflow-y: auto`.\n           *\n           * Now here comes the crux: When scrolling down the list of hints we\n           * still want the description to be \"sticky\" to the top. We can't\n           * solve this with `position: sticky` as the container element itself\n           * is already positioned absolutely.\n           *\n           * There are two things to the solution here:\n           * - We add a `max-height` and another `overflow: auto` to the\n           *   `information` element. This makes it scrollable on its own\n           *   if the description or deprecation reason is higher that the\n           *   container element.\n           * - We add an `onscroll` handler to the container element. When the\n           *   user scrolls here we dynamically adjust the top padding and the\n           *   max-height of the information element such that it looks like\n           *   it's sticking to the top. (Since the `information` element has\n           *   some padding by default we also have to make sure to use this\n           *   as baseline for the total padding.)\n           *   Note that we need to also adjust the max-height because we\n           *   default to using `border-box` for box sizing. When using\n           *   `content-box` this would not be necessary.\n           */\n          const defaultInformationPadding =\n            parseInt(\n              window\n                .getComputedStyle(information)\n                .paddingBottom.replace(/px$/, ''),\n              10,\n            ) || 0;\n          const defaultInformationMaxHeight =\n            parseInt(\n              window.getComputedStyle(information).maxHeight.replace(/px$/, ''),\n              10,\n            ) || 0;\n          const handleScroll = () => {\n            if (information) {\n              information.style.paddingTop =\n                hintsUl.scrollTop + defaultInformationPadding + 'px';\n              information.style.maxHeight =\n                hintsUl.scrollTop + defaultInformationMaxHeight + 'px';\n            }\n          };\n          hintsUl.addEventListener('scroll', handleScroll);\n\n          // When CodeMirror attempts to remove the hint UI, we detect that it was\n          // removed and in turn remove the information nodes.\n          let onRemoveFn: EventListener | null;\n          hintsUl.addEventListener(\n            'DOMNodeRemoved',\n            (onRemoveFn = (event: Event) => {\n              if (event.target !== hintsUl) {\n                return;\n              }\n              hintsUl.removeEventListener('scroll', handleScroll);\n              hintsUl.removeEventListener('DOMNodeRemoved', onRemoveFn);\n              if (information) {\n                information.removeEventListener(\n                  'click',\n                  onClickHintInformation,\n                );\n              }\n              information = null;\n              fieldName = null;\n              typeNamePill = null;\n              typeNamePrefix = null;\n              typeName = null;\n              typeNameSuffix = null;\n              description = null;\n              deprecation = null;\n              deprecationReason = null;\n              onRemoveFn = null;\n            }),\n          );\n        }\n\n        if (fieldName) {\n          fieldName.textContent = ctx.text;\n        }\n\n        if (typeNamePill && typeNamePrefix && typeName && typeNameSuffix) {\n          if (ctx.type) {\n            typeNamePill.style.display = 'inline';\n\n            const renderType = (type: GraphQLType) => {\n              if (isNonNullType(type)) {\n                typeNameSuffix!.textContent = '!' + typeNameSuffix!.textContent;\n                renderType(type.ofType);\n              } else if (isListType(type)) {\n                typeNamePrefix!.textContent += '[';\n                typeNameSuffix!.textContent = ']' + typeNameSuffix!.textContent;\n                renderType(type.ofType);\n              } else {\n                typeName!.textContent = type.name;\n              }\n            };\n\n            typeNamePrefix.textContent = '';\n            typeNameSuffix.textContent = '';\n            renderType(ctx.type);\n          } else {\n            typeNamePrefix.textContent = '';\n            typeName.textContent = '';\n            typeNameSuffix.textContent = '';\n            typeNamePill.style.display = 'none';\n          }\n        }\n\n        if (description) {\n          if (ctx.description) {\n            description.style.display = 'block';\n            description.innerHTML = markdown.render(ctx.description);\n          } else {\n            description.style.display = 'none';\n            description.innerHTML = '';\n          }\n        }\n\n        if (deprecation && deprecationReason) {\n          if (ctx.deprecationReason) {\n            deprecation.style.display = 'block';\n            deprecationReason.innerHTML = markdown.render(\n              ctx.deprecationReason,\n            );\n          } else {\n            deprecation.style.display = 'none';\n            deprecationReason.innerHTML = '';\n          }\n        }\n      },\n    );\n  });\n\n  function onClickHintInformation(event: Event) {\n    if (\n      !schema ||\n      !explorer ||\n      !plugin ||\n      !(event.currentTarget instanceof HTMLElement)\n    ) {\n      return;\n    }\n\n    const typeName = event.currentTarget.textContent || '';\n    const type = schema.getType(typeName);\n    if (type) {\n      plugin.setVisiblePlugin(DOC_EXPLORER_PLUGIN);\n      explorer.push({ name: type.name, def: type });\n      callback?.(type);\n    }\n  }\n}\n","import { fillLeafs, GetDefaultFieldNamesFn, mergeAst } from '@graphiql/toolkit';\nimport type { EditorChange, EditorConfiguration } from 'codemirror';\nimport type { SchemaReference } from 'codemirror-graphql/utils/SchemaReference';\nimport copyToClipboard from 'copy-to-clipboard';\nimport { parse, print } from 'graphql';\n// eslint-disable-next-line @typescript-eslint/no-restricted-imports -- TODO: check why query builder update only 1st field https://github.com/graphql/graphiql/issues/3836\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useExplorerContext } from '../explorer';\nimport { usePluginContext } from '../plugin';\nimport { useSchemaContext } from '../schema';\nimport { useStorageContext } from '../storage';\nimport debounce from '../utility/debounce';\nimport { onHasCompletion } from './completion';\nimport { useEditorContext } from './context';\nimport { CodeMirrorEditor } from './types';\n\nexport function useSynchronizeValue(\n  editor: CodeMirrorEditor | null,\n  value?: string,\n) {\n  useEffect(() => {\n    if (editor && typeof value === 'string' && value !== editor.getValue()) {\n      editor.setValue(value);\n    }\n  }, [editor, value]);\n}\n\nexport function useSynchronizeOption<K extends keyof EditorConfiguration>(\n  editor: CodeMirrorEditor | null,\n  option: K,\n  value: EditorConfiguration[K],\n) {\n  useEffect(() => {\n    if (editor) {\n      editor.setOption(option, value);\n    }\n  }, [editor, option, value]);\n}\n\nexport function useChangeHandler(\n  editor: CodeMirrorEditor | null,\n  callback: ((value: string) => void) | undefined,\n  storageKey: string | null,\n  tabProperty: 'variables' | 'headers',\n  caller: Function,\n) {\n  const { updateActiveTabValues } = useEditorContext({ nonNull: true, caller });\n  const storage = useStorageContext();\n\n  useEffect(() => {\n    if (!editor) {\n      return;\n    }\n\n    const store = debounce(500, (value: string) => {\n      if (!storage || storageKey === null) {\n        return;\n      }\n      storage.set(storageKey, value);\n    });\n\n    const updateTab = debounce(100, (value: string) => {\n      updateActiveTabValues({ [tabProperty]: value });\n    });\n\n    const handleChange = (\n      editorInstance: CodeMirrorEditor,\n      changeObj?: EditorChange,\n    ) => {\n      // When we signal a change manually without actually changing anything\n      // we don't want to invoke the callback.\n      if (!changeObj) {\n        return;\n      }\n\n      const newValue = editorInstance.getValue();\n      store(newValue);\n      updateTab(newValue);\n      callback?.(newValue);\n    };\n    editor.on('change', handleChange);\n    return () => editor.off('change', handleChange);\n  }, [\n    callback,\n    editor,\n    storage,\n    storageKey,\n    tabProperty,\n    updateActiveTabValues,\n  ]);\n}\n\nexport function useCompletion(\n  editor: CodeMirrorEditor | null,\n  callback: ((reference: SchemaReference) => void) | null,\n  caller: Function,\n) {\n  const { schema } = useSchemaContext({ nonNull: true, caller });\n  const explorer = useExplorerContext();\n  const plugin = usePluginContext();\n  useEffect(() => {\n    if (!editor) {\n      return;\n    }\n\n    const handleCompletion = (\n      instance: CodeMirrorEditor,\n      changeObj?: EditorChange,\n    ) => {\n      onHasCompletion(instance, changeObj, schema, explorer, plugin, type => {\n        callback?.({ kind: 'Type', type, schema: schema || undefined });\n      });\n    };\n    editor.on(\n      // @ts-expect-error @TODO additional args for hasCompletion event\n      'hasCompletion',\n      handleCompletion,\n    );\n    return () =>\n      editor.off(\n        // @ts-expect-error @TODO additional args for hasCompletion event\n        'hasCompletion',\n        handleCompletion,\n      );\n  }, [callback, editor, explorer, plugin, schema]);\n}\n\ntype EmptyCallback = () => void;\n\nexport function useKeyMap(\n  editor: CodeMirrorEditor | null,\n  keys: string[],\n  callback?: EmptyCallback,\n) {\n  useEffect(() => {\n    if (!editor) {\n      return;\n    }\n    for (const key of keys) {\n      editor.removeKeyMap(key);\n    }\n\n    if (callback) {\n      const keyMap: Record<string, EmptyCallback> = {};\n      for (const key of keys) {\n        keyMap[key] = () => callback();\n      }\n      editor.addKeyMap(keyMap);\n    }\n  }, [editor, keys, callback]);\n}\n\nexport type UseCopyQueryArgs = {\n  /**\n   * This is only meant to be used internally in `@graphiql/react`.\n   */\n  caller?: Function;\n  /**\n   * Invoked when the current contents of the query editor are copied to the\n   * clipboard.\n   * @param query The content that has been copied.\n   */\n  onCopyQuery?: (query: string) => void;\n};\n\n// To make react-compiler happy, otherwise complains about - Hooks may not be referenced as normal values\nconst _useCopyQuery = useCopyQuery;\nconst _useMergeQuery = useMergeQuery;\nconst _usePrettifyEditors = usePrettifyEditors;\nconst _useAutoCompleteLeafs = useAutoCompleteLeafs;\n\nexport function useCopyQuery({ caller, onCopyQuery }: UseCopyQueryArgs = {}) {\n  const { queryEditor } = useEditorContext({\n    nonNull: true,\n    caller: caller || _useCopyQuery,\n  });\n  return () => {\n    if (!queryEditor) {\n      return;\n    }\n\n    const query = queryEditor.getValue();\n    copyToClipboard(query);\n\n    onCopyQuery?.(query);\n  };\n}\n\ntype UseMergeQueryArgs = {\n  /**\n   * This is only meant to be used internally in `@graphiql/react`.\n   */\n  caller?: Function;\n};\n\nexport function useMergeQuery({ caller }: UseMergeQueryArgs = {}) {\n  const { queryEditor } = useEditorContext({\n    nonNull: true,\n    caller: caller || _useMergeQuery,\n  });\n  const { schema } = useSchemaContext({\n    nonNull: true,\n    caller: _useMergeQuery,\n  });\n  return () => {\n    const documentAST = queryEditor?.documentAST;\n    const query = queryEditor?.getValue();\n    if (!documentAST || !query) {\n      return;\n    }\n\n    queryEditor.setValue(print(mergeAst(documentAST, schema)));\n  };\n}\n\ntype UsePrettifyEditorsArgs = {\n  /**\n   * This is only meant to be used internally in `@graphiql/react`.\n   */\n  caller?: Function;\n};\n\nexport function usePrettifyEditors({ caller }: UsePrettifyEditorsArgs = {}) {\n  const { queryEditor, headerEditor, variableEditor } = useEditorContext({\n    nonNull: true,\n    caller: caller || _usePrettifyEditors,\n  });\n  return () => {\n    if (variableEditor) {\n      const variableEditorContent = variableEditor.getValue();\n      try {\n        const prettifiedVariableEditorContent = JSON.stringify(\n          JSON.parse(variableEditorContent),\n          null,\n          2,\n        );\n        if (prettifiedVariableEditorContent !== variableEditorContent) {\n          variableEditor.setValue(prettifiedVariableEditorContent);\n        }\n      } catch {\n        /* Parsing JSON failed, skip prettification */\n      }\n    }\n\n    if (headerEditor) {\n      const headerEditorContent = headerEditor.getValue();\n\n      try {\n        const prettifiedHeaderEditorContent = JSON.stringify(\n          JSON.parse(headerEditorContent),\n          null,\n          2,\n        );\n        if (prettifiedHeaderEditorContent !== headerEditorContent) {\n          headerEditor.setValue(prettifiedHeaderEditorContent);\n        }\n      } catch {\n        /* Parsing JSON failed, skip prettification */\n      }\n    }\n\n    if (queryEditor) {\n      const editorContent = queryEditor.getValue();\n      const prettifiedEditorContent = print(parse(editorContent));\n\n      if (prettifiedEditorContent !== editorContent) {\n        queryEditor.setValue(prettifiedEditorContent);\n      }\n    }\n  };\n}\n\nexport type UseAutoCompleteLeafsArgs = {\n  /**\n   * A function to determine which field leafs are automatically added when\n   * trying to execute a query with missing selection sets. It will be called\n   * with the `GraphQLType` for which fields need to be added.\n   */\n  getDefaultFieldNames?: GetDefaultFieldNamesFn;\n  /**\n   * This is only meant to be used internally in `@graphiql/react`.\n   */\n  caller?: Function;\n};\n\nexport function useAutoCompleteLeafs({\n  getDefaultFieldNames,\n  caller,\n}: UseAutoCompleteLeafsArgs = {}) {\n  const { schema } = useSchemaContext({\n    nonNull: true,\n    caller: caller || _useAutoCompleteLeafs,\n  });\n  const { queryEditor } = useEditorContext({\n    nonNull: true,\n    caller: caller || _useAutoCompleteLeafs,\n  });\n  return () => {\n    if (!queryEditor) {\n      return;\n    }\n\n    const query = queryEditor.getValue();\n    const { insertions, result } = fillLeafs(\n      schema,\n      query,\n      getDefaultFieldNames,\n    );\n    if (insertions && insertions.length > 0) {\n      queryEditor.operation(() => {\n        const cursor = queryEditor.getCursor();\n        const cursorIndex = queryEditor.indexFromPos(cursor);\n        queryEditor.setValue(result || '');\n        let added = 0;\n        const markers = insertions.map(({ index, string }) =>\n          queryEditor.markText(\n            queryEditor.posFromIndex(index + added),\n            queryEditor.posFromIndex(index + (added += string.length)),\n            {\n              className: 'auto-inserted-leaf',\n              clearOnEnter: true,\n              title: 'Automatically added leaf fields',\n            },\n          ),\n        );\n        setTimeout(() => {\n          for (const marker of markers) {\n            marker.clear();\n          }\n        }, 7000);\n        let newCursorIndex = cursorIndex;\n        for (const { index, string } of insertions) {\n          if (index < cursorIndex) {\n            newCursorIndex += string.length;\n          }\n        }\n        queryEditor.setCursor(queryEditor.posFromIndex(newCursorIndex));\n      });\n    }\n\n    return result;\n  };\n}\n\n// https://react.dev/learn/you-might-not-need-an-effect\n\nexport const useEditorState = (editor: 'query' | 'variable' | 'header') => {\n  'use no memo'; // eslint-disable-line react-compiler/react-compiler -- TODO: check why query builder update only 1st field https://github.com/graphql/graphiql/issues/3836\n  const context = useEditorContext({\n    nonNull: true,\n  });\n\n  const editorInstance = context[`${editor}Editor` as const];\n  let valueString = '';\n  const editorValue = editorInstance?.getValue() ?? false;\n  if (editorValue && editorValue.length > 0) {\n    valueString = editorValue;\n  }\n\n  const handleEditorValue = useCallback(\n    (value: string) => editorInstance?.setValue(value),\n    [editorInstance],\n  );\n  return useMemo<[string, (val: string) => void]>(\n    () => [valueString, handleEditorValue],\n    [valueString, handleEditorValue],\n  );\n};\n\n/**\n * useState-like hook for current tab operations editor state\n */\nexport const useOperationsEditorState = (): [\n  operations: string,\n  setOperations: (content: string) => void,\n] => {\n  return useEditorState('query');\n};\n\n/**\n * useState-like hook for current tab variables editor state\n */\nexport const useVariablesEditorState = (): [\n  variables: string,\n  setVariables: (content: string) => void,\n] => {\n  return useEditorState('variable');\n};\n\n/**\n * useState-like hook for current tab variables editor state\n */\nexport const useHeadersEditorState = (): [\n  headers: string,\n  setHeaders: (content: string) => void,\n] => {\n  return useEditorState('header');\n};\n\n/**\n * Implements an optimistic caching strategy around a useState-like hook in\n * order to prevent loss of updates when the hook has an internal delay and the\n * update function is called again before the updated state is sent out.\n *\n * Use this as a wrapper around `useOperationsEditorState`,\n * `useVariablesEditorState`, or `useHeadersEditorState` if you anticipate\n * calling them with great frequency (due to, for instance, mouse, keyboard, or\n * network events).\n *\n * Example:\n *\n * ```ts\n * const [operationsString, handleEditOperations] =\n *   useOptimisticState(useOperationsEditorState());\n * ```\n */\nexport function useOptimisticState([\n  upstreamState,\n  upstreamSetState,\n]: ReturnType<typeof useEditorState>): ReturnType<typeof useEditorState> {\n  const lastStateRef = useRef({\n    /** The last thing that we sent upstream; we're expecting this back */\n    pending: null as string | null,\n    /** The last thing we received from upstream */\n    last: upstreamState,\n  });\n\n  const [state, setOperationsText] = useState(upstreamState);\n\n  useEffect(() => {\n    if (lastStateRef.current.last === upstreamState) {\n      // No change; ignore\n    } else {\n      lastStateRef.current.last = upstreamState;\n      if (lastStateRef.current.pending === null) {\n        // Gracefully accept update from upstream\n        setOperationsText(upstreamState);\n      } else if (lastStateRef.current.pending === upstreamState) {\n        // They received our update and sent it back to us - clear pending, and\n        // send next if appropriate\n        lastStateRef.current.pending = null;\n        if (upstreamState !== state) {\n          // Change has occurred; upstream it\n          lastStateRef.current.pending = state;\n          upstreamSetState(state);\n        }\n      } else {\n        // They got a different update; overwrite our local state (!!)\n        lastStateRef.current.pending = null;\n        setOperationsText(upstreamState);\n      }\n    }\n  }, [upstreamState, state, upstreamSetState]);\n\n  const setState = (newState: string) => {\n    setOperationsText(newState);\n    if (\n      lastStateRef.current.pending === null &&\n      lastStateRef.current.last !== newState\n    ) {\n      // No pending updates and change has occurred... send it upstream\n      lastStateRef.current.pending = newState;\n      upstreamSetState(newState);\n    }\n  };\n\n  return [state, setState];\n}\n","import { useEffect, useRef } from 'react';\n\nimport { useExecutionContext } from '../execution';\nimport {\n  commonKeys,\n  DEFAULT_EDITOR_THEME,\n  DEFAULT_KEY_MAP,\n  importCodeMirror,\n} from './common';\nimport { useEditorContext } from './context';\nimport {\n  useChangeHandler,\n  useKeyMap,\n  useMergeQuery,\n  usePrettifyEditors,\n  useSynchronizeOption,\n} from './hooks';\nimport { WriteableEditorProps } from './types';\n\nexport type UseHeaderEditorArgs = WriteableEditorProps & {\n  /**\n   * Invoked when the contents of the headers editor change.\n   * @param value The new contents of the editor.\n   */\n  onEdit?(value: string): void;\n};\n\n// To make react-compiler happy, otherwise complains about using dynamic imports in Component\nfunction importCodeMirrorImports() {\n  return importCodeMirror([\n    // @ts-expect-error\n    import('codemirror/mode/javascript/javascript.js'),\n  ]);\n}\nconst _useHeaderEditor = useHeaderEditor;\n\nexport function useHeaderEditor(\n  {\n    editorTheme = DEFAULT_EDITOR_THEME,\n    keyMap = DEFAULT_KEY_MAP,\n    onEdit,\n    readOnly = false,\n  }: UseHeaderEditorArgs = {},\n  caller?: Function,\n) {\n  const {\n    initialHeaders,\n    headerEditor,\n    setHeaderEditor,\n    shouldPersistHeaders,\n  } = useEditorContext({\n    nonNull: true,\n    caller: caller || _useHeaderEditor,\n  });\n  const executionContext = useExecutionContext();\n  const merge = useMergeQuery({ caller: caller || _useHeaderEditor });\n  const prettify = usePrettifyEditors({ caller: caller || _useHeaderEditor });\n  const ref = useRef<HTMLDivElement>(null);\n\n  useEffect(() => {\n    let isActive = true;\n\n    void importCodeMirrorImports().then(CodeMirror => {\n      // Don't continue if the effect has already been cleaned up\n      if (!isActive) {\n        return;\n      }\n\n      const container = ref.current;\n      if (!container) {\n        return;\n      }\n\n      const newEditor = CodeMirror(container, {\n        value: initialHeaders,\n        lineNumbers: true,\n        tabSize: 2,\n        mode: { name: 'javascript', json: true },\n        theme: editorTheme,\n        autoCloseBrackets: true,\n        matchBrackets: true,\n        showCursorWhenSelecting: true,\n        readOnly: readOnly ? 'nocursor' : false,\n        foldGutter: true,\n        gutters: ['CodeMirror-linenumbers', 'CodeMirror-foldgutter'],\n        extraKeys: commonKeys,\n      });\n\n      newEditor.addKeyMap({\n        'Cmd-Space'() {\n          newEditor.showHint({ completeSingle: false, container });\n        },\n        'Ctrl-Space'() {\n          newEditor.showHint({ completeSingle: false, container });\n        },\n        'Alt-Space'() {\n          newEditor.showHint({ completeSingle: false, container });\n        },\n        'Shift-Space'() {\n          newEditor.showHint({ completeSingle: false, container });\n        },\n      });\n\n      newEditor.on('keyup', (editorInstance, event) => {\n        const { code, key, shiftKey } = event;\n        const isLetter = code.startsWith('Key');\n        const isNumber = !shiftKey && code.startsWith('Digit');\n        if (isLetter || isNumber || key === '_' || key === '\"') {\n          editorInstance.execCommand('autocomplete');\n        }\n      });\n\n      setHeaderEditor(newEditor);\n    });\n\n    return () => {\n      isActive = false;\n    };\n  }, [editorTheme, initialHeaders, readOnly, setHeaderEditor]);\n\n  useSynchronizeOption(headerEditor, 'keyMap', keyMap);\n\n  useChangeHandler(\n    headerEditor,\n    onEdit,\n    shouldPersistHeaders ? STORAGE_KEY : null,\n    'headers',\n    _useHeaderEditor,\n  );\n\n  useKeyMap(headerEditor, ['Cmd-Enter', 'Ctrl-Enter'], executionContext?.run);\n  useKeyMap(headerEditor, ['Shift-Ctrl-P'], prettify);\n  useKeyMap(headerEditor, ['Shift-Ctrl-M'], merge);\n\n  return ref;\n}\n\nexport const STORAGE_KEY = 'headers';\n","'use no memo';\n\n// Unicode whitespace characters that break the interface.\nexport const invalidCharacters = Array.from({ length: 11 }, (_, i) => {\n  // \\u2000 -> \\u200a\n  return String.fromCharCode(0x2000 + i);\n}).concat(['\\u2028', '\\u2029', '\\u202f', '\\u00a0']);\n\nconst sanitizeRegex = new RegExp('[' + invalidCharacters.join('') + ']', 'g');\n\nexport function normalizeWhitespace(line: string) {\n  return line.replace(sanitizeRegex, ' ');\n}\n","import { getSelectedOperationName } from '@graphiql/toolkit';\nimport type { SchemaReference } from 'codemirror-graphql/utils/SchemaReference';\nimport type {\n  DocumentNode,\n  FragmentDefinitionNode,\n  GraphQLSchema,\n  ValidationRule,\n} from 'graphql';\nimport {\n  getOperationFacts,\n  GraphQLDocumentMode,\n  OperationFacts,\n} from 'graphql-language-service';\nimport { MutableRefObject, useEffect, useRef } from 'react';\n\nimport { useExecutionContext } from '../execution';\nimport { useExplorerContext } from '../explorer';\nimport { markdown } from '../markdown';\nimport { DOC_EXPLORER_PLUGIN, usePluginContext } from '../plugin';\nimport { useSchemaContext } from '../schema';\nimport { useStorageContext } from '../storage';\nimport debounce from '../utility/debounce';\nimport {\n  commonKeys,\n  DEFAULT_EDITOR_THEME,\n  DEFAULT_KEY_MAP,\n  importCodeMirror,\n} from './common';\nimport {\n  CodeMirrorEditorWithOperationFacts,\n  useEditorContext,\n} from './context';\nimport {\n  useCompletion,\n  useCopyQuery,\n  UseCopyQueryArgs,\n  useKeyMap,\n  useMergeQuery,\n  usePrettifyEditors,\n  useSynchronizeOption,\n} from './hooks';\nimport {\n  CodeMirrorEditor,\n  CodeMirrorType,\n  WriteableEditorProps,\n} from './types';\nimport { normalizeWhitespace } from './whitespace';\n\nexport type UseQueryEditorArgs = WriteableEditorProps &\n  Pick<UseCopyQueryArgs, 'onCopyQuery'> & {\n    /**\n     * Invoked when a reference to the GraphQL schema (type or field) is clicked\n     * as part of the editor or one of its tooltips.\n     * @param reference The reference that has been clicked.\n     */\n    onClickReference?(reference: SchemaReference): void;\n    /**\n     * Invoked when the contents of the query editor change.\n     * @param value The new contents of the editor.\n     * @param documentAST The editor contents parsed into a GraphQL document.\n     */\n    onEdit?(value: string, documentAST?: DocumentNode): void;\n  };\n\n// To make react-compiler happy, otherwise complains about using dynamic imports in Component\nfunction importCodeMirrorImports() {\n  return importCodeMirror([\n    import('codemirror/addon/comment/comment.js'),\n    import('codemirror/addon/search/search.js'),\n    import('codemirror-graphql/esm/hint.js'),\n    import('codemirror-graphql/esm/lint.js'),\n    import('codemirror-graphql/esm/info.js'),\n    import('codemirror-graphql/esm/jump.js'),\n    import('codemirror-graphql/esm/mode.js'),\n  ]);\n}\nconst _useQueryEditor = useQueryEditor;\n\n// To make react-compiler happy since we mutate variableEditor\nfunction updateVariableEditor(\n  variableEditor: CodeMirrorEditor,\n  operationFacts?: OperationFacts,\n) {\n  variableEditor.state.lint.linterOptions.variableToType =\n    operationFacts?.variableToType;\n  variableEditor.options.lint.variableToType = operationFacts?.variableToType;\n  variableEditor.options.hintOptions.variableToType =\n    operationFacts?.variableToType;\n}\nfunction updateEditorSchema(\n  editor: CodeMirrorEditor,\n  schema: GraphQLSchema | null,\n) {\n  editor.state.lint.linterOptions.schema = schema;\n  editor.options.lint.schema = schema;\n  editor.options.hintOptions.schema = schema;\n  editor.options.info.schema = schema;\n  editor.options.jump.schema = schema;\n}\nfunction updateEditorValidationRules(\n  editor: CodeMirrorEditor,\n  validationRules: ValidationRule[] | null,\n) {\n  editor.state.lint.linterOptions.validationRules = validationRules;\n  editor.options.lint.validationRules = validationRules;\n}\nfunction updateEditorExternalFragments(\n  editor: CodeMirrorEditor,\n  externalFragmentList: FragmentDefinitionNode[],\n) {\n  editor.state.lint.linterOptions.externalFragments = externalFragmentList;\n  editor.options.lint.externalFragments = externalFragmentList;\n  editor.options.hintOptions.externalFragments = externalFragmentList;\n}\n\nexport function useQueryEditor(\n  {\n    editorTheme = DEFAULT_EDITOR_THEME,\n    keyMap = DEFAULT_KEY_MAP,\n    onClickReference,\n    onCopyQuery,\n    onEdit,\n    readOnly = false,\n  }: UseQueryEditorArgs = {},\n  caller?: Function,\n) {\n  const { schema } = useSchemaContext({\n    nonNull: true,\n    caller: caller || _useQueryEditor,\n  });\n  const {\n    externalFragments,\n    initialQuery,\n    queryEditor,\n    setOperationName,\n    setQueryEditor,\n    validationRules,\n    variableEditor,\n    updateActiveTabValues,\n  } = useEditorContext({\n    nonNull: true,\n    caller: caller || _useQueryEditor,\n  });\n  const executionContext = useExecutionContext();\n  const storage = useStorageContext();\n  const explorer = useExplorerContext();\n  const plugin = usePluginContext();\n  const copy = useCopyQuery({ caller: caller || _useQueryEditor, onCopyQuery });\n  const merge = useMergeQuery({ caller: caller || _useQueryEditor });\n  const prettify = usePrettifyEditors({ caller: caller || _useQueryEditor });\n  const ref = useRef<HTMLDivElement>(null);\n  const codeMirrorRef = useRef<CodeMirrorType>();\n\n  const onClickReferenceRef = useRef<\n    NonNullable<UseQueryEditorArgs['onClickReference']>\n  >(() => {});\n  useEffect(() => {\n    onClickReferenceRef.current = reference => {\n      if (!explorer || !plugin) {\n        return;\n      }\n      plugin.setVisiblePlugin(DOC_EXPLORER_PLUGIN);\n      switch (reference.kind) {\n        case 'Type': {\n          explorer.push({ name: reference.type.name, def: reference.type });\n          break;\n        }\n        case 'Field': {\n          explorer.push({ name: reference.field.name, def: reference.field });\n          break;\n        }\n        case 'Argument': {\n          if (reference.field) {\n            explorer.push({ name: reference.field.name, def: reference.field });\n          }\n          break;\n        }\n        case 'EnumValue': {\n          if (reference.type) {\n            explorer.push({ name: reference.type.name, def: reference.type });\n          }\n          break;\n        }\n      }\n      onClickReference?.(reference);\n    };\n  }, [explorer, onClickReference, plugin]);\n\n  useEffect(() => {\n    let isActive = true;\n\n    void importCodeMirrorImports().then(CodeMirror => {\n      // Don't continue if the effect has already been cleaned up\n      if (!isActive) {\n        return;\n      }\n\n      codeMirrorRef.current = CodeMirror;\n\n      const container = ref.current;\n      if (!container) {\n        return;\n      }\n\n      const newEditor = CodeMirror(container, {\n        value: initialQuery,\n        lineNumbers: true,\n        tabSize: 2,\n        foldGutter: true,\n        mode: 'graphql',\n        theme: editorTheme,\n        autoCloseBrackets: true,\n        matchBrackets: true,\n        showCursorWhenSelecting: true,\n        readOnly: readOnly ? 'nocursor' : false,\n        lint: {\n          // @ts-expect-error\n          schema: undefined,\n          validationRules: null,\n          // linting accepts string or FragmentDefinitionNode[]\n          externalFragments: undefined,\n        },\n        hintOptions: {\n          // @ts-expect-error\n          schema: undefined,\n          closeOnUnfocus: false,\n          completeSingle: false,\n          container,\n          externalFragments: undefined,\n          autocompleteOptions: {\n            // for the query editor, restrict to executable type definitions\n            mode: GraphQLDocumentMode.EXECUTABLE,\n          },\n        },\n        info: {\n          schema: undefined,\n          renderDescription: (text: string) => markdown.render(text),\n          onClick(reference: SchemaReference) {\n            onClickReferenceRef.current(reference);\n          },\n        },\n        jump: {\n          schema: undefined,\n          onClick(reference: SchemaReference) {\n            onClickReferenceRef.current(reference);\n          },\n        },\n        gutters: ['CodeMirror-linenumbers', 'CodeMirror-foldgutter'],\n        extraKeys: {\n          ...commonKeys,\n          'Cmd-S'() {\n            // empty\n          },\n          'Ctrl-S'() {\n            // empty\n          },\n        },\n      }) as CodeMirrorEditorWithOperationFacts;\n\n      newEditor.addKeyMap({\n        'Cmd-Space'() {\n          newEditor.showHint({ completeSingle: true, container });\n        },\n        'Ctrl-Space'() {\n          newEditor.showHint({ completeSingle: true, container });\n        },\n        'Alt-Space'() {\n          newEditor.showHint({ completeSingle: true, container });\n        },\n        'Shift-Space'() {\n          newEditor.showHint({ completeSingle: true, container });\n        },\n        'Shift-Alt-Space'() {\n          newEditor.showHint({ completeSingle: true, container });\n        },\n      });\n\n      newEditor.on('keyup', (editorInstance, event) => {\n        if (AUTO_COMPLETE_AFTER_KEY.test(event.key)) {\n          editorInstance.execCommand('autocomplete');\n        }\n      });\n\n      let showingHints = false;\n\n      // fired whenever a hint dialog opens\n      newEditor.on('startCompletion', () => {\n        showingHints = true;\n      });\n\n      // the codemirror hint extension fires this anytime the dialog is closed\n      // via any method (e.g. focus blur, escape key, ...)\n      newEditor.on('endCompletion', () => {\n        showingHints = false;\n      });\n\n      newEditor.on('keydown', (editorInstance, event) => {\n        if (event.key === 'Escape' && showingHints) {\n          event.stopPropagation();\n        }\n      });\n\n      newEditor.on('beforeChange', (editorInstance, change) => {\n        // The update function is only present on non-redo, non-undo events.\n        if (change.origin === 'paste') {\n          const text = change.text.map(normalizeWhitespace);\n          change.update?.(change.from, change.to, text);\n        }\n      });\n\n      newEditor.documentAST = null;\n      newEditor.operationName = null;\n      newEditor.operations = null;\n      newEditor.variableToType = null;\n\n      setQueryEditor(newEditor);\n    });\n\n    return () => {\n      isActive = false;\n    };\n  }, [editorTheme, initialQuery, readOnly, setQueryEditor]);\n\n  useSynchronizeOption(queryEditor, 'keyMap', keyMap);\n\n  /**\n   * We don't use the generic `useChangeHandler` hook here because we want to\n   * have additional logic that updates the operation facts that we store as\n   * properties on the editor.\n   */\n  useEffect(() => {\n    if (!queryEditor) {\n      return;\n    }\n\n    function getAndUpdateOperationFacts(\n      editorInstance: CodeMirrorEditorWithOperationFacts,\n    ) {\n      const operationFacts = getOperationFacts(\n        schema,\n        editorInstance.getValue(),\n      );\n\n      // Update operation name should any query names change.\n      const operationName = getSelectedOperationName(\n        editorInstance.operations ?? undefined,\n        editorInstance.operationName ?? undefined,\n        operationFacts?.operations,\n      );\n\n      // Store the operation facts on editor properties\n      editorInstance.documentAST = operationFacts?.documentAST ?? null;\n      editorInstance.operationName = operationName ?? null;\n      editorInstance.operations = operationFacts?.operations ?? null;\n\n      // Update variable types for the variable editor\n      if (variableEditor) {\n        updateVariableEditor(variableEditor, operationFacts);\n        codeMirrorRef.current?.signal(variableEditor, 'change', variableEditor);\n      }\n\n      return operationFacts ? { ...operationFacts, operationName } : null;\n    }\n\n    const handleChange = debounce(\n      100,\n      (editorInstance: CodeMirrorEditorWithOperationFacts) => {\n        const query = editorInstance.getValue();\n        storage?.set(STORAGE_KEY_QUERY, query);\n\n        const currentOperationName = editorInstance.operationName;\n        const operationFacts = getAndUpdateOperationFacts(editorInstance);\n        if (operationFacts?.operationName !== undefined) {\n          storage?.set(\n            STORAGE_KEY_OPERATION_NAME,\n            operationFacts.operationName,\n          );\n        }\n\n        // Invoke callback props only after the operation facts have been updated\n        onEdit?.(query, operationFacts?.documentAST);\n        if (\n          operationFacts?.operationName &&\n          currentOperationName !== operationFacts.operationName\n        ) {\n          setOperationName(operationFacts.operationName);\n        }\n\n        updateActiveTabValues({\n          query,\n          operationName: operationFacts?.operationName ?? null,\n        });\n      },\n    ) as (editorInstance: CodeMirrorEditor) => void;\n\n    // Call once to initially update the values\n    getAndUpdateOperationFacts(queryEditor);\n\n    queryEditor.on('change', handleChange);\n    return () => queryEditor.off('change', handleChange);\n  }, [\n    onEdit,\n    queryEditor,\n    schema,\n    setOperationName,\n    storage,\n    variableEditor,\n    updateActiveTabValues,\n  ]);\n\n  useSynchronizeSchema(queryEditor, schema ?? null, codeMirrorRef);\n  useSynchronizeValidationRules(\n    queryEditor,\n    validationRules ?? null,\n    codeMirrorRef,\n  );\n  useSynchronizeExternalFragments(\n    queryEditor,\n    externalFragments,\n    codeMirrorRef,\n  );\n\n  useCompletion(queryEditor, onClickReference || null, _useQueryEditor);\n\n  const run = executionContext?.run;\n  const runAtCursor = () => {\n    if (\n      !run ||\n      !queryEditor ||\n      !queryEditor.operations ||\n      !queryEditor.hasFocus()\n    ) {\n      run?.();\n      return;\n    }\n\n    const cursorIndex = queryEditor.indexFromPos(queryEditor.getCursor());\n\n    // Loop through all operations to see if one contains the cursor.\n    let operationName: string | undefined;\n    for (const operation of queryEditor.operations) {\n      if (\n        operation.loc &&\n        operation.loc.start <= cursorIndex &&\n        operation.loc.end >= cursorIndex\n      ) {\n        operationName = operation.name?.value;\n      }\n    }\n\n    if (operationName && operationName !== queryEditor.operationName) {\n      setOperationName(operationName);\n    }\n\n    run();\n  };\n\n  useKeyMap(queryEditor, ['Cmd-Enter', 'Ctrl-Enter'], runAtCursor);\n  useKeyMap(queryEditor, ['Shift-Ctrl-C'], copy);\n  useKeyMap(\n    queryEditor,\n    [\n      'Shift-Ctrl-P',\n      // Shift-Ctrl-P is hard coded in Firefox for private browsing so adding an alternative to prettify\n      'Shift-Ctrl-F',\n    ],\n    prettify,\n  );\n  useKeyMap(queryEditor, ['Shift-Ctrl-M'], merge);\n\n  return ref;\n}\n\nfunction useSynchronizeSchema(\n  editor: CodeMirrorEditor | null,\n  schema: GraphQLSchema | null,\n  codeMirrorRef: MutableRefObject<CodeMirrorType | undefined>,\n) {\n  useEffect(() => {\n    if (!editor) {\n      return;\n    }\n\n    const didChange = editor.options.lint.schema !== schema;\n    updateEditorSchema(editor, schema);\n\n    if (didChange && codeMirrorRef.current) {\n      codeMirrorRef.current.signal(editor, 'change', editor);\n    }\n  }, [editor, schema, codeMirrorRef]);\n}\n\nfunction useSynchronizeValidationRules(\n  editor: CodeMirrorEditor | null,\n  validationRules: ValidationRule[] | null,\n  codeMirrorRef: MutableRefObject<CodeMirrorType | undefined>,\n) {\n  useEffect(() => {\n    if (!editor) {\n      return;\n    }\n\n    const didChange = editor.options.lint.validationRules !== validationRules;\n    updateEditorValidationRules(editor, validationRules);\n\n    if (didChange && codeMirrorRef.current) {\n      codeMirrorRef.current.signal(editor, 'change', editor);\n    }\n  }, [editor, validationRules, codeMirrorRef]);\n}\n\nfunction useSynchronizeExternalFragments(\n  editor: CodeMirrorEditor | null,\n  externalFragments: Map<string, FragmentDefinitionNode>,\n  codeMirrorRef: MutableRefObject<CodeMirrorType | undefined>,\n) {\n  const externalFragmentList = [...externalFragments.values()]; // eslint-disable-line react-hooks/exhaustive-deps -- false positive, variable is optimized by react-compiler, no need to wrap with useMemo\n\n  useEffect(() => {\n    if (!editor) {\n      return;\n    }\n\n    const didChange =\n      editor.options.lint.externalFragments !== externalFragmentList;\n    updateEditorExternalFragments(editor, externalFragmentList);\n\n    if (didChange && codeMirrorRef.current) {\n      codeMirrorRef.current.signal(editor, 'change', editor);\n    }\n  }, [editor, externalFragmentList, codeMirrorRef]);\n}\n\nconst AUTO_COMPLETE_AFTER_KEY = /^[a-zA-Z0-9_@(]$/;\n\nexport const STORAGE_KEY_QUERY = 'query';\n\nconst STORAGE_KEY_OPERATION_NAME = 'operationName';\n","'use no memo'; // can't figure why it isn't optimized\n\nimport { StorageAPI } from '@graphiql/toolkit';\n// eslint-disable-next-line @typescript-eslint/no-restricted-imports -- fixme\nimport { useCallback, useMemo } from 'react';\n\nimport debounce from '../utility/debounce';\nimport { CodeMirrorEditorWithOperationFacts } from './context';\nimport { CodeMirrorEditor } from './types';\n\nexport type TabDefinition = {\n  /**\n   * The contents of the query editor of this tab.\n   */\n  query: string | null;\n  /**\n   * The contents of the variable editor of this tab.\n   */\n  variables?: string | null;\n  /**\n   * The contents of the headers editor of this tab.\n   */\n  headers?: string | null;\n};\n\n/**\n * This object describes the state of a single tab.\n */\nexport type TabState = TabDefinition & {\n  /**\n   * A GUID value generated when the tab was created.\n   */\n  id: string;\n  /**\n   * A hash that is unique for a combination of the contents of the query\n   * editor, the variable editor and the header editor (i.e. all the editor\n   * where the contents are persisted in storage).\n   */\n  hash: string;\n  /**\n   * The title of the tab shown in the tab element.\n   */\n  title: string;\n  /**\n   * The operation name derived from the contents of the query editor of this\n   * tab.\n   */\n  operationName: string | null;\n  /**\n   * The contents of the response editor of this tab.\n   */\n  response: string | null;\n};\n\n/**\n * This object describes the state of all tabs.\n */\nexport type TabsState = {\n  /**\n   * A list of state objects for each tab.\n   */\n  tabs: TabState[];\n  /**\n   * The index of the currently active tab with regards to the `tabs` list of\n   * this object.\n   */\n  activeTabIndex: number;\n};\n\nexport function getDefaultTabState({\n  defaultQuery,\n  defaultHeaders,\n  headers,\n  defaultTabs,\n  query,\n  variables,\n  storage,\n  shouldPersistHeaders,\n}: {\n  defaultQuery: string;\n  defaultHeaders?: string;\n  headers: string | null;\n  defaultTabs?: TabDefinition[];\n  query: string | null;\n  variables: string | null;\n  storage: StorageAPI | null;\n  shouldPersistHeaders?: boolean;\n}) {\n  const storedState = storage?.get(STORAGE_KEY);\n  try {\n    if (!storedState) {\n      throw new Error('Storage for tabs is empty');\n    }\n    const parsed = JSON.parse(storedState);\n    // if headers are not persisted, do not derive the hash using default headers state\n    // or else you will get new tabs on every refresh\n    const headersForHash = shouldPersistHeaders ? headers : undefined;\n    if (isTabsState(parsed)) {\n      const expectedHash = hashFromTabContents({\n        query,\n        variables,\n        headers: headersForHash,\n      });\n      let matchingTabIndex = -1;\n\n      for (let index = 0; index < parsed.tabs.length; index++) {\n        const tab = parsed.tabs[index];\n        tab.hash = hashFromTabContents({\n          query: tab.query,\n          variables: tab.variables,\n          headers: tab.headers,\n        });\n        if (tab.hash === expectedHash) {\n          matchingTabIndex = index;\n        }\n      }\n\n      if (matchingTabIndex >= 0) {\n        parsed.activeTabIndex = matchingTabIndex;\n      } else {\n        const operationName = query ? fuzzyExtractOperationName(query) : null;\n        parsed.tabs.push({\n          id: guid(),\n          hash: expectedHash,\n          title: operationName || DEFAULT_TITLE,\n          query,\n          variables,\n          headers,\n          operationName,\n          response: null,\n        });\n        parsed.activeTabIndex = parsed.tabs.length - 1;\n      }\n\n      return parsed;\n    }\n    throw new Error('Storage for tabs is invalid');\n  } catch {\n    return {\n      activeTabIndex: 0,\n      tabs: (\n        defaultTabs || [\n          {\n            query: query ?? defaultQuery,\n            variables,\n            headers: headers ?? defaultHeaders,\n          },\n        ]\n      ).map(createTab),\n    };\n  }\n}\n\nfunction isTabsState(obj: any): obj is TabsState {\n  return (\n    obj &&\n    typeof obj === 'object' &&\n    !Array.isArray(obj) &&\n    hasNumberKey(obj, 'activeTabIndex') &&\n    'tabs' in obj &&\n    Array.isArray(obj.tabs) &&\n    obj.tabs.every(isTabState)\n  );\n}\n\nfunction isTabState(obj: any): obj is TabState {\n  // We don't persist the hash, so we skip the check here\n  return (\n    obj &&\n    typeof obj === 'object' &&\n    !Array.isArray(obj) &&\n    hasStringKey(obj, 'id') &&\n    hasStringKey(obj, 'title') &&\n    hasStringOrNullKey(obj, 'query') &&\n    hasStringOrNullKey(obj, 'variables') &&\n    hasStringOrNullKey(obj, 'headers') &&\n    hasStringOrNullKey(obj, 'operationName') &&\n    hasStringOrNullKey(obj, 'response')\n  );\n}\n\nfunction hasNumberKey(obj: Record<string, any>, key: string) {\n  return key in obj && typeof obj[key] === 'number';\n}\n\nfunction hasStringKey(obj: Record<string, any>, key: string) {\n  return key in obj && typeof obj[key] === 'string';\n}\n\nfunction hasStringOrNullKey(obj: Record<string, any>, key: string) {\n  return key in obj && (typeof obj[key] === 'string' || obj[key] === null);\n}\n\nexport function useSynchronizeActiveTabValues({\n  queryEditor,\n  variableEditor,\n  headerEditor,\n  responseEditor,\n}: {\n  queryEditor: CodeMirrorEditorWithOperationFacts | null;\n  variableEditor: CodeMirrorEditor | null;\n  headerEditor: CodeMirrorEditor | null;\n  responseEditor: CodeMirrorEditor | null;\n}) {\n  return useCallback<(state: TabsState) => TabsState>(\n    state => {\n      const query = queryEditor?.getValue() ?? null;\n      const variables = variableEditor?.getValue() ?? null;\n      const headers = headerEditor?.getValue() ?? null;\n      const operationName = queryEditor?.operationName ?? null;\n      const response = responseEditor?.getValue() ?? null;\n      return setPropertiesInActiveTab(state, {\n        query,\n        variables,\n        headers,\n        response,\n        operationName,\n      });\n    },\n    [queryEditor, variableEditor, headerEditor, responseEditor],\n  );\n}\n\nexport function serializeTabState(\n  tabState: TabsState,\n  shouldPersistHeaders = false,\n) {\n  return JSON.stringify(tabState, (key, value) =>\n    key === 'hash' ||\n    key === 'response' ||\n    (!shouldPersistHeaders && key === 'headers')\n      ? null\n      : value,\n  );\n}\n\nexport function useStoreTabs({\n  storage,\n  shouldPersistHeaders,\n}: {\n  storage: StorageAPI | null;\n  shouldPersistHeaders?: boolean;\n}) {\n  const store = useMemo(\n    () =>\n      debounce(500, (value: string) => {\n        storage?.set(STORAGE_KEY, value);\n      }),\n    [storage],\n  );\n  return useCallback(\n    (currentState: TabsState) => {\n      store(serializeTabState(currentState, shouldPersistHeaders));\n    },\n    [shouldPersistHeaders, store],\n  );\n}\n\nexport function useSetEditorValues({\n  queryEditor,\n  variableEditor,\n  headerEditor,\n  responseEditor,\n  defaultHeaders,\n}: {\n  queryEditor: CodeMirrorEditorWithOperationFacts | null;\n  variableEditor: CodeMirrorEditor | null;\n  headerEditor: CodeMirrorEditor | null;\n  responseEditor: CodeMirrorEditor | null;\n  defaultHeaders?: string;\n}) {\n  return useCallback(\n    ({\n      query,\n      variables,\n      headers,\n      response,\n    }: {\n      query: string | null;\n      variables?: string | null;\n      headers?: string | null;\n      response: string | null;\n    }) => {\n      queryEditor?.setValue(query ?? '');\n      variableEditor?.setValue(variables ?? '');\n      headerEditor?.setValue(headers ?? defaultHeaders ?? '');\n      responseEditor?.setValue(response ?? '');\n    },\n    [headerEditor, queryEditor, responseEditor, variableEditor, defaultHeaders],\n  );\n}\n\nexport function createTab({\n  query = null,\n  variables = null,\n  headers = null,\n}: Partial<TabDefinition> = {}): TabState {\n  return {\n    id: guid(),\n    hash: hashFromTabContents({ query, variables, headers }),\n    title: (query && fuzzyExtractOperationName(query)) || DEFAULT_TITLE,\n    query,\n    variables,\n    headers,\n    operationName: null,\n    response: null,\n  };\n}\n\nexport function setPropertiesInActiveTab(\n  state: TabsState,\n  partialTab: Partial<Omit<TabState, 'id' | 'hash' | 'title'>>,\n): TabsState {\n  return {\n    ...state,\n    tabs: state.tabs.map((tab, index) => {\n      if (index !== state.activeTabIndex) {\n        return tab;\n      }\n      const newTab = { ...tab, ...partialTab };\n      return {\n        ...newTab,\n        hash: hashFromTabContents(newTab),\n        title:\n          newTab.operationName ||\n          (newTab.query\n            ? fuzzyExtractOperationName(newTab.query)\n            : undefined) ||\n          DEFAULT_TITLE,\n      };\n    }),\n  };\n}\n\nfunction guid(): string {\n  const s4 = () => {\n    return Math.floor((1 + Math.random()) * 0x10000)\n      .toString(16)\n      .slice(1);\n  };\n  // return id of format 'aaaaaaaa'-'aaaa'-'aaaa'-'aaaa'-'aaaaaaaaaaaa'\n  return `${s4()}${s4()}-${s4()}-${s4()}-${s4()}-${s4()}${s4()}${s4()}`;\n}\n\nfunction hashFromTabContents(args: {\n  query: string | null;\n  variables?: string | null;\n  headers?: string | null;\n}): string {\n  return [args.query ?? '', args.variables ?? '', args.headers ?? ''].join('|');\n}\n\nexport function fuzzyExtractOperationName(str: string): string | null {\n  const regex = /^(?!#).*(query|subscription|mutation)\\s+([a-zA-Z0-9_]+)/m;\n\n  const match = regex.exec(str);\n\n  return match?.[2] ?? null;\n}\n\nexport function clearHeadersFromTabs(storage: StorageAPI | null) {\n  const persistedTabs = storage?.get(STORAGE_KEY);\n  if (persistedTabs) {\n    const parsedTabs = JSON.parse(persistedTabs);\n    storage?.set(\n      STORAGE_KEY,\n      JSON.stringify(parsedTabs, (key, value) =>\n        key === 'headers' ? null : value,\n      ),\n    );\n  }\n}\n\nconst DEFAULT_TITLE = '<untitled>';\n\nexport const STORAGE_KEY = 'tabState';\n","import type { SchemaReference } from 'codemirror-graphql/utils/SchemaReference';\nimport { useEffect, useRef } from 'react';\n\nimport { useExecutionContext } from '../execution';\nimport {\n  commonKeys,\n  DEFAULT_EDITOR_THEME,\n  DEFAULT_KEY_MAP,\n  importCodeMirror,\n} from './common';\nimport { useEditorContext } from './context';\nimport {\n  useChangeHandler,\n  useCompletion,\n  useKeyMap,\n  useMergeQuery,\n  usePrettifyEditors,\n  useSynchronizeOption,\n} from './hooks';\nimport { CodeMirrorType, WriteableEditorProps } from './types';\n\nexport type UseVariableEditorArgs = WriteableEditorProps & {\n  /**\n   * Invoked when a reference to the GraphQL schema (type or field) is clicked\n   * as part of the editor or one of its tooltips.\n   * @param reference The reference that has been clicked.\n   */\n  onClickReference?(reference: SchemaReference): void;\n  /**\n   * Invoked when the contents of the variables editor change.\n   * @param value The new contents of the editor.\n   */\n  onEdit?(value: string): void;\n};\n\n// To make react-compiler happy, otherwise complains about using dynamic imports in Component\nfunction importCodeMirrorImports() {\n  return importCodeMirror([\n    import('codemirror-graphql/esm/variables/hint.js'),\n    import('codemirror-graphql/esm/variables/lint.js'),\n    import('codemirror-graphql/esm/variables/mode.js'),\n  ]);\n}\n\n// To make react-compiler happy, otherwise complains about - Hooks may not be referenced as normal values\nconst _useVariableEditor = useVariableEditor;\n\nexport function useVariableEditor(\n  {\n    editorTheme = DEFAULT_EDITOR_THEME,\n    keyMap = DEFAULT_KEY_MAP,\n    onClickReference,\n    onEdit,\n    readOnly = false,\n  }: UseVariableEditorArgs = {},\n  caller?: Function,\n) {\n  const { initialVariables, variableEditor, setVariableEditor } =\n    useEditorContext({\n      nonNull: true,\n      caller: caller || _useVariableEditor,\n    });\n  const executionContext = useExecutionContext();\n  const merge = useMergeQuery({ caller: caller || _useVariableEditor });\n  const prettify = usePrettifyEditors({ caller: caller || _useVariableEditor });\n  const ref = useRef<HTMLDivElement>(null);\n  const codeMirrorRef = useRef<CodeMirrorType>();\n\n  useEffect(() => {\n    let isActive = true;\n\n    void importCodeMirrorImports().then(CodeMirror => {\n      // Don't continue if the effect has already been cleaned up\n      if (!isActive) {\n        return;\n      }\n\n      codeMirrorRef.current = CodeMirror;\n\n      const container = ref.current;\n      if (!container) {\n        return;\n      }\n\n      const newEditor = CodeMirror(container, {\n        value: initialVariables,\n        lineNumbers: true,\n        tabSize: 2,\n        mode: 'graphql-variables',\n        theme: editorTheme,\n        autoCloseBrackets: true,\n        matchBrackets: true,\n        showCursorWhenSelecting: true,\n        readOnly: readOnly ? 'nocursor' : false,\n        foldGutter: true,\n        lint: {\n          // @ts-expect-error\n          variableToType: undefined,\n        },\n        hintOptions: {\n          closeOnUnfocus: false,\n          completeSingle: false,\n          container,\n          // @ts-expect-error\n          variableToType: undefined,\n        },\n        gutters: ['CodeMirror-linenumbers', 'CodeMirror-foldgutter'],\n        extraKeys: commonKeys,\n      });\n\n      newEditor.addKeyMap({\n        'Cmd-Space'() {\n          newEditor.showHint({ completeSingle: false, container });\n        },\n        'Ctrl-Space'() {\n          newEditor.showHint({ completeSingle: false, container });\n        },\n        'Alt-Space'() {\n          newEditor.showHint({ completeSingle: false, container });\n        },\n        'Shift-Space'() {\n          newEditor.showHint({ completeSingle: false, container });\n        },\n      });\n\n      newEditor.on('keyup', (editorInstance, event) => {\n        const { code, key, shiftKey } = event;\n        const isLetter = code.startsWith('Key');\n        const isNumber = !shiftKey && code.startsWith('Digit');\n        if (isLetter || isNumber || key === '_' || key === '\"') {\n          editorInstance.execCommand('autocomplete');\n        }\n      });\n\n      setVariableEditor(newEditor);\n    });\n\n    return () => {\n      isActive = false;\n    };\n  }, [editorTheme, initialVariables, readOnly, setVariableEditor]);\n\n  useSynchronizeOption(variableEditor, 'keyMap', keyMap);\n\n  useChangeHandler(\n    variableEditor,\n    onEdit,\n    STORAGE_KEY,\n    'variables',\n    _useVariableEditor,\n  );\n\n  useCompletion(variableEditor, onClickReference || null, _useVariableEditor);\n\n  useKeyMap(variableEditor, ['Cmd-Enter', 'Ctrl-Enter'], executionContext?.run);\n  useKeyMap(variableEditor, ['Shift-Ctrl-P'], prettify);\n  useKeyMap(variableEditor, ['Shift-Ctrl-M'], merge);\n\n  return ref;\n}\n\nexport const STORAGE_KEY = 'variables';\n","import {\n  DocumentNode,\n  FragmentDefinitionNode,\n  OperationDefinitionNode,\n  parse,\n  ValidationRule,\n  visit,\n} from 'graphql';\nimport { VariableToType } from 'graphql-language-service';\nimport { ReactNode, useEffect, useRef, useState } from 'react';\n\nimport { useStorageContext } from '../storage';\nimport { createContextHook, createNullableContext } from '../utility/context';\nimport { STORAGE_KEY as STORAGE_KEY_HEADERS } from './header-editor';\nimport { useSynchronizeValue } from './hooks';\nimport { STORAGE_KEY_QUERY } from './query-editor';\nimport {\n  createTab,\n  getDefaultTabState,\n  setPropertiesInActiveTab,\n  TabDefinition,\n  TabsState,\n  TabState,\n  useSetEditorValues,\n  useStoreTabs,\n  useSynchronizeActiveTabValues,\n  clearHeadersFromTabs,\n  serializeTabState,\n  STORAGE_KEY as STORAGE_KEY_TABS,\n} from './tabs';\nimport { CodeMirrorEditor } from './types';\nimport { STORAGE_KEY as STORAGE_KEY_VARIABLES } from './variable-editor';\n\nexport type CodeMirrorEditorWithOperationFacts = CodeMirrorEditor & {\n  documentAST: DocumentNode | null;\n  operationName: string | null;\n  operations: OperationDefinitionNode[] | null;\n  variableToType: VariableToType | null;\n};\n\nexport type EditorContextType = TabsState & {\n  /**\n   * Add a new tab.\n   */\n  addTab(): void;\n  /**\n   * Switch to a different tab.\n   * @param index The index of the tab that should be switched to.\n   */\n  changeTab(index: number): void;\n  /**\n   * Move a tab to a new spot.\n   * @param newOrder The new order for the tabs.\n   */\n  moveTab(newOrder: TabState[]): void;\n  /**\n   * Close a tab. If the currently active tab is closed, the tab before it will\n   * become active. If there is no tab before the closed one, the tab after it\n   * will become active.\n   * @param index The index of the tab that should be closed.\n   */\n  closeTab(index: number): void;\n  /**\n   * Update the state for the tab that is currently active. This will be\n   * reflected in the `tabs` object and the state will be persisted in storage\n   * (if available).\n   * @param partialTab A partial tab state object that will override the\n   * current values. The properties `id`, `hash` and `title` cannot be changed.\n   */\n  updateActiveTabValues(\n    partialTab: Partial<Omit<TabState, 'id' | 'hash' | 'title'>>,\n  ): void;\n\n  /**\n   * The CodeMirror editor instance for the headers editor.\n   */\n  headerEditor: CodeMirrorEditor | null;\n  /**\n   * The CodeMirror editor instance for the query editor. This editor also\n   * stores the operation facts that are derived from the current editor\n   * contents.\n   */\n  queryEditor: CodeMirrorEditorWithOperationFacts | null;\n  /**\n   * The CodeMirror editor instance for the response editor.\n   */\n  responseEditor: CodeMirrorEditor | null;\n  /**\n   * The CodeMirror editor instance for the variables editor.\n   */\n  variableEditor: CodeMirrorEditor | null;\n  /**\n   * Set the CodeMirror editor instance for the headers editor.\n   */\n  setHeaderEditor(newEditor: CodeMirrorEditor): void;\n  /**\n   * Set the CodeMirror editor instance for the query editor.\n   */\n  setQueryEditor(newEditor: CodeMirrorEditorWithOperationFacts): void;\n  /**\n   * Set the CodeMirror editor instance for the response editor.\n   */\n  setResponseEditor(newEditor: CodeMirrorEditor): void;\n  /**\n   * Set the CodeMirror editor instance for the variables editor.\n   */\n  setVariableEditor(newEditor: CodeMirrorEditor): void;\n\n  /**\n   * Changes the operation name and invokes the `onEditOperationName` callback.\n   */\n  setOperationName(operationName: string): void;\n\n  /**\n   * The contents of the headers editor when initially rendering the provider\n   * component.\n   */\n  initialHeaders: string;\n  /**\n   * The contents of the query editor when initially rendering the provider\n   * component.\n   */\n  initialQuery: string;\n  /**\n   * The contents of the response editor when initially rendering the provider\n   * component.\n   */\n  initialResponse: string;\n  /**\n   * The contents of the variables editor when initially rendering the provider\n   * component.\n   */\n  initialVariables: string;\n\n  /**\n   * A map of fragment definitions using the fragment name as key which are\n   * made available to include in the query.\n   */\n  externalFragments: Map<string, FragmentDefinitionNode>;\n  /**\n   * A list of custom validation rules that are run in addition to the rules\n   * provided by the GraphQL spec.\n   */\n  validationRules: ValidationRule[];\n\n  /**\n   * If the contents of the headers editor are persisted in storage.\n   */\n  shouldPersistHeaders: boolean;\n  /**\n   * Changes if headers should be persisted.\n   */\n  setShouldPersistHeaders(persist: boolean): void;\n};\n\nexport const EditorContext =\n  createNullableContext<EditorContextType>('EditorContext');\n\nexport type EditorContextProviderProps = {\n  children: ReactNode;\n  /**\n   * The initial contents of the query editor when loading GraphiQL and there\n   * is no other source for the editor state. Other sources can be:\n   * - The `query` prop\n   * - The value persisted in storage\n   * These default contents will only be used for the first tab. When opening\n   * more tabs the query editor will start out empty.\n   */\n  defaultQuery?: string;\n  /**\n   * With this prop you can pass so-called \"external\" fragments that will be\n   * included in the query document (depending on usage). You can either pass\n   * the fragments using SDL (passing a string) or you can pass a list of\n   * `FragmentDefinitionNode` objects.\n   */\n  externalFragments?: string | FragmentDefinitionNode[];\n  /**\n   * This prop can be used to set the contents of the headers editor. Every\n   * time this prop changes, the contents of the headers editor are replaced.\n   * Note that the editor contents can be changed in between these updates by\n   * typing in the editor.\n   */\n  headers?: string;\n  /**\n   * This prop can be used to define the default set of tabs, with their\n   * queries, variables, and headers. It will be used as default only if\n   * there is no tab state persisted in storage.\n   *\n   * @example\n   * ```tsx\n   * <GraphiQL\n   *   defaultTabs={[\n   *     { query: 'query myExampleQuery {}' },\n   *     { query: '{ id }' }\n   *   ]}\n   * />\n   *```\n   */\n  defaultTabs?: TabDefinition[];\n  /**\n   * Invoked when the operation name changes. Possible triggers are:\n   * - Editing the contents of the query editor\n   * - Selecting a operation for execution in a document that contains multiple\n   *   operation definitions\n   * @param operationName The operation name after it has been changed.\n   */\n  onEditOperationName?(operationName: string): void;\n  /**\n   * Invoked when the state of the tabs changes. Possible triggers are:\n   * - Updating any editor contents inside the currently active tab\n   * - Adding a tab\n   * - Switching to a different tab\n   * - Closing a tab\n   * @param tabState The tabs state after it has been updated.\n   */\n  onTabChange?(tabState: TabsState): void;\n  /**\n   * This prop can be used to set the contents of the query editor. Every time\n   * this prop changes, the contents of the query editor are replaced. Note\n   * that the editor contents can be changed in between these updates by typing\n   * in the editor.\n   */\n  query?: string;\n  /**\n   * This prop can be used to set the contents of the response editor. Every\n   * time this prop changes, the contents of the response editor are replaced.\n   * Note that the editor contents can change in between these updates by\n   * executing queries that will show a response.\n   */\n  response?: string;\n  /**\n   * This prop toggles if the contents of the headers editor are persisted in\n   * storage.\n   * @default false\n   */\n  shouldPersistHeaders?: boolean;\n  /**\n   * This prop accepts custom validation rules for GraphQL documents that are\n   * run against the contents of the query editor (in addition to the rules\n   * that are specified in the GraphQL spec).\n   */\n  validationRules?: ValidationRule[];\n  /**\n   * This prop can be used to set the contents of the variables editor. Every\n   * time this prop changes, the contents of the variables editor are replaced.\n   * Note that the editor contents can be changed in between these updates by\n   * typing in the editor.\n   */\n  variables?: string;\n\n  /**\n   * Headers to be set when opening a new tab\n   */\n  defaultHeaders?: string;\n};\n\nexport function EditorContextProvider(props: EditorContextProviderProps) {\n  const storage = useStorageContext();\n  const [headerEditor, setHeaderEditor] = useState<CodeMirrorEditor | null>(\n    null,\n  );\n  const [queryEditor, setQueryEditor] =\n    useState<CodeMirrorEditorWithOperationFacts | null>(null);\n  const [responseEditor, setResponseEditor] = useState<CodeMirrorEditor | null>(\n    null,\n  );\n  const [variableEditor, setVariableEditor] = useState<CodeMirrorEditor | null>(\n    null,\n  );\n\n  const [shouldPersistHeaders, setShouldPersistHeadersInternal] = useState(\n    () => {\n      const isStored = storage?.get(PERSIST_HEADERS_STORAGE_KEY) !== null;\n      return props.shouldPersistHeaders !== false && isStored\n        ? storage?.get(PERSIST_HEADERS_STORAGE_KEY) === 'true'\n        : Boolean(props.shouldPersistHeaders);\n    },\n  );\n\n  useSynchronizeValue(headerEditor, props.headers);\n  useSynchronizeValue(queryEditor, props.query);\n  useSynchronizeValue(responseEditor, props.response);\n  useSynchronizeValue(variableEditor, props.variables);\n\n  const storeTabs = useStoreTabs({\n    storage,\n    shouldPersistHeaders,\n  });\n\n  // We store this in state but never update it. By passing a function we only\n  // need to compute it lazily during the initial render.\n  const [initialState] = useState(() => {\n    const query = props.query ?? storage?.get(STORAGE_KEY_QUERY) ?? null;\n    const variables =\n      props.variables ?? storage?.get(STORAGE_KEY_VARIABLES) ?? null;\n    const headers = props.headers ?? storage?.get(STORAGE_KEY_HEADERS) ?? null;\n    const response = props.response ?? '';\n\n    const tabState = getDefaultTabState({\n      query,\n      variables,\n      headers,\n      defaultTabs: props.defaultTabs,\n      defaultQuery: props.defaultQuery || DEFAULT_QUERY,\n      defaultHeaders: props.defaultHeaders,\n      storage,\n      shouldPersistHeaders,\n    });\n    storeTabs(tabState);\n\n    return {\n      query:\n        query ??\n        (tabState.activeTabIndex === 0 ? tabState.tabs[0].query : null) ??\n        '',\n      variables: variables ?? '',\n      headers: headers ?? props.defaultHeaders ?? '',\n      response,\n      tabState,\n    };\n  });\n\n  const [tabState, setTabState] = useState<TabsState>(initialState.tabState);\n\n  const setShouldPersistHeaders = // eslint-disable-line react-hooks/exhaustive-deps -- false positive, function is optimized by react-compiler, no need to wrap with useCallback\n    (persist: boolean) => {\n      if (persist) {\n        storage?.set(STORAGE_KEY_HEADERS, headerEditor?.getValue() ?? '');\n        const serializedTabs = serializeTabState(tabState, true);\n        storage?.set(STORAGE_KEY_TABS, serializedTabs);\n      } else {\n        storage?.set(STORAGE_KEY_HEADERS, '');\n        clearHeadersFromTabs(storage);\n      }\n      setShouldPersistHeadersInternal(persist);\n      storage?.set(PERSIST_HEADERS_STORAGE_KEY, persist.toString());\n    };\n\n  const lastShouldPersistHeadersProp = useRef<boolean | undefined>();\n  useEffect(() => {\n    const propValue = Boolean(props.shouldPersistHeaders);\n    if (lastShouldPersistHeadersProp?.current !== propValue) {\n      setShouldPersistHeaders(propValue);\n      lastShouldPersistHeadersProp.current = propValue;\n    }\n  }, [props.shouldPersistHeaders, setShouldPersistHeaders]);\n\n  const synchronizeActiveTabValues = useSynchronizeActiveTabValues({\n    queryEditor,\n    variableEditor,\n    headerEditor,\n    responseEditor,\n  });\n  const { onTabChange, defaultHeaders, defaultQuery, children } = props;\n  const setEditorValues = useSetEditorValues({\n    queryEditor,\n    variableEditor,\n    headerEditor,\n    responseEditor,\n    defaultHeaders,\n  });\n\n  const addTab: EditorContextType['addTab'] = () => {\n    setTabState(current => {\n      // Make sure the current tab stores the latest values\n      const updatedValues = synchronizeActiveTabValues(current);\n      const updated = {\n        tabs: [\n          ...updatedValues.tabs,\n          createTab({\n            headers: defaultHeaders,\n            query: defaultQuery ?? DEFAULT_QUERY,\n          }),\n        ],\n        activeTabIndex: updatedValues.tabs.length,\n      };\n      storeTabs(updated);\n      setEditorValues(updated.tabs[updated.activeTabIndex]);\n      onTabChange?.(updated);\n      return updated;\n    });\n  };\n\n  const changeTab: EditorContextType['changeTab'] = index => {\n    setTabState(current => {\n      const updated = {\n        ...current,\n        activeTabIndex: index,\n      };\n      storeTabs(updated);\n      setEditorValues(updated.tabs[updated.activeTabIndex]);\n      onTabChange?.(updated);\n      return updated;\n    });\n  };\n\n  const moveTab: EditorContextType['moveTab'] = newOrder => {\n    setTabState(current => {\n      const activeTab = current.tabs[current.activeTabIndex];\n      const updated = {\n        tabs: newOrder,\n        activeTabIndex: newOrder.indexOf(activeTab),\n      };\n      storeTabs(updated);\n      setEditorValues(updated.tabs[updated.activeTabIndex]);\n      onTabChange?.(updated);\n      return updated;\n    });\n  };\n\n  const closeTab: EditorContextType['closeTab'] = index => {\n    setTabState(current => {\n      const updated = {\n        tabs: current.tabs.filter((_tab, i) => index !== i),\n        activeTabIndex: Math.max(current.activeTabIndex - 1, 0),\n      };\n      storeTabs(updated);\n      setEditorValues(updated.tabs[updated.activeTabIndex]);\n      onTabChange?.(updated);\n      return updated;\n    });\n  };\n\n  const updateActiveTabValues: EditorContextType['updateActiveTabValues'] =\n    partialTab => {\n      setTabState(current => {\n        const updated = setPropertiesInActiveTab(current, partialTab);\n        storeTabs(updated);\n        onTabChange?.(updated);\n        return updated;\n      });\n    };\n\n  const { onEditOperationName } = props;\n  const setOperationName: EditorContextType['setOperationName'] =\n    operationName => {\n      if (!queryEditor) {\n        return;\n      }\n\n      updateQueryEditor(queryEditor, operationName);\n      updateActiveTabValues({ operationName });\n      onEditOperationName?.(operationName);\n    };\n\n  const externalFragments = (() => {\n    const map = new Map<string, FragmentDefinitionNode>();\n    if (Array.isArray(props.externalFragments)) {\n      for (const fragment of props.externalFragments) {\n        map.set(fragment.name.value, fragment);\n      }\n    } else if (typeof props.externalFragments === 'string') {\n      visit(parse(props.externalFragments, {}), {\n        FragmentDefinition(fragment) {\n          map.set(fragment.name.value, fragment);\n        },\n      });\n    } else if (props.externalFragments) {\n      throw new Error(\n        'The `externalFragments` prop must either be a string that contains the fragment definitions in SDL or a list of FragmentDefinitionNode objects.',\n      );\n    }\n    return map;\n  })();\n\n  const validationRules = props.validationRules || [];\n\n  const value: EditorContextType = {\n    ...tabState,\n    addTab,\n    changeTab,\n    moveTab,\n    closeTab,\n    updateActiveTabValues,\n\n    headerEditor,\n    queryEditor,\n    responseEditor,\n    variableEditor,\n    setHeaderEditor,\n    setQueryEditor,\n    setResponseEditor,\n    setVariableEditor,\n\n    setOperationName,\n\n    initialQuery: initialState.query,\n    initialVariables: initialState.variables,\n    initialHeaders: initialState.headers,\n    initialResponse: initialState.response,\n\n    externalFragments,\n    validationRules,\n\n    shouldPersistHeaders,\n    setShouldPersistHeaders,\n  };\n\n  return (\n    <EditorContext.Provider value={value}>{children}</EditorContext.Provider>\n  );\n}\n\n// To make react-compiler happy, otherwise it fails due mutating props\nfunction updateQueryEditor(\n  queryEditor: CodeMirrorEditorWithOperationFacts,\n  operationName: string,\n) {\n  queryEditor.operationName = operationName;\n}\n\nexport const useEditorContext = createContextHook(EditorContext);\n\nconst PERSIST_HEADERS_STORAGE_KEY = 'shouldPersistHeaders';\n\nexport const DEFAULT_QUERY = `# Welcome to GraphiQL\n#\n# GraphiQL is an in-browser tool for writing, validating, and\n# testing GraphQL queries.\n#\n# Type queries into this side of the screen, and you will see intelligent\n# typeaheads aware of the current GraphQL type schema and live syntax and\n# validation errors highlighted within the text.\n#\n# GraphQL queries typically start with a \"{\" character. Lines that start\n# with a # are ignored.\n#\n# An example GraphQL query might look like:\n#\n#     {\n#       field(arg: \"value\") {\n#         subField\n#       }\n#     }\n#\n# Keyboard shortcuts:\n#\n#   Prettify query:  Shift-Ctrl-P (or press the prettify button)\n#\n#  Merge fragments:  Shift-Ctrl-M (or press the merge button)\n#\n#        Run Query:  Ctrl-Enter (or press the play button)\n#\n#    Auto Complete:  Ctrl-Space (or just start typing)\n#\n\n`;\n","import { useEffect } from 'react';\nimport { clsx } from 'clsx';\n\nimport { useEditorContext } from '../context';\nimport { useHeaderEditor, UseHeaderEditorArgs } from '../header-editor';\n\nimport '../style/codemirror.css';\nimport '../style/fold.css';\nimport '../style/editor.css';\n\ntype HeaderEditorProps = UseHeaderEditorArgs & {\n  /**\n   * Visually hide the header editor.\n   * @default false\n   */\n  isHidden?: boolean;\n};\n\nexport function HeaderEditor({ isHidden, ...hookArgs }: HeaderEditorProps) {\n  const { headerEditor } = useEditorContext({\n    nonNull: true,\n    caller: HeaderEditor,\n  });\n  const ref = useHeaderEditor(hookArgs, HeaderEditor);\n\n  useEffect(() => {\n    if (!isHidden) {\n      headerEditor?.refresh();\n    }\n  }, [headerEditor, isHidden]);\n\n  return (\n    <div className={clsx('graphiql-editor', isHidden && 'hidden')} ref={ref} />\n  );\n}\n","import type { Token } from 'codemirror';\nimport { useEffect, useRef, useState } from 'react';\n\ntype ImagePreviewProps = { token: Token };\n\ntype Dimensions = {\n  width: number | null;\n  height: number | null;\n};\n\nexport function ImagePreview(props: ImagePreviewProps) {\n  const [dimensions, setDimensions] = useState<Dimensions>({\n    width: null,\n    height: null,\n  });\n  const [mime, setMime] = useState<string | null>(null);\n\n  const ref = useRef<HTMLImageElement>(null);\n\n  const src = tokenToURL(props.token)?.href;\n\n  useEffect(() => {\n    if (!ref.current) {\n      return;\n    }\n    if (!src) {\n      setDimensions({ width: null, height: null });\n      setMime(null);\n      return;\n    }\n\n    fetch(src, { method: 'HEAD' })\n      .then(response => {\n        setMime(response.headers.get('Content-Type'));\n      })\n      .catch(() => {\n        setMime(null);\n      });\n  }, [src]);\n\n  const dims =\n    dimensions.width !== null && dimensions.height !== null ? (\n      <div>\n        {dimensions.width}x{dimensions.height}\n        {mime === null ? null : ' ' + mime}\n      </div>\n    ) : null;\n\n  return (\n    <div>\n      <img\n        onLoad={() => {\n          setDimensions({\n            width: ref.current?.naturalWidth ?? null,\n            height: ref.current?.naturalHeight ?? null,\n          });\n        }}\n        ref={ref}\n        src={src}\n      />\n      {dims}\n    </div>\n  );\n}\n\nImagePreview.shouldRender = function shouldRender(token: Token) {\n  const url = tokenToURL(token);\n  return url ? isImageURL(url) : false;\n};\n\nfunction tokenToURL(token: Token) {\n  if (token.type !== 'string') {\n    return;\n  }\n\n  const value = token.string.slice(1).slice(0, -1).trim();\n\n  try {\n    const { location } = window;\n    return new URL(value, location.protocol + '//' + location.host);\n  } catch {\n    return;\n  }\n}\n\nfunction isImageURL(url: URL) {\n  return /\\.(bmp|gif|jpe?g|png|svg|webp)$/.test(url.pathname);\n}\n","import { useQueryEditor, UseQueryEditorArgs } from '../query-editor';\n\nimport '../style/codemirror.css';\nimport '../style/fold.css';\nimport '../style/lint.css';\nimport '../style/hint.css';\nimport '../style/info.css';\nimport '../style/jump.css';\nimport '../style/auto-insertion.css';\nimport '../style/editor.css';\n\nexport function QueryEditor(props: UseQueryEditorArgs) {\n  const ref = useQueryEditor(props, QueryEditor);\n  return <div className=\"graphiql-editor\" ref={ref} />;\n}\n","import { formatError } from '@graphiql/toolkit';\nimport type { Position, Token } from 'codemirror';\nimport { ComponentType, useEffect, useRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport { useSchemaContext } from '../schema';\n\nimport {\n  commonKeys,\n  DEFAULT_EDITOR_THEME,\n  DEFAULT_KEY_MAP,\n  importCodeMirror,\n} from './common';\nimport { ImagePreview } from './components';\nimport { useEditorContext } from './context';\nimport { useSynchronizeOption } from './hooks';\nimport { CodeMirrorEditor, CommonEditorProps } from './types';\n\nexport type ResponseTooltipType = ComponentType<{\n  /**\n   * The position of the token in the editor contents.\n   */\n  pos: Position;\n  /**\n   * The token that has been hovered over.\n   */\n  token: Token;\n}>;\n\nexport type UseResponseEditorArgs = CommonEditorProps & {\n  /**\n   * Customize the tooltip when hovering over properties in the response\n   * editor.\n   */\n  responseTooltip?: ResponseTooltipType;\n};\n\n// To make react-compiler happy, otherwise complains about using dynamic imports in Component\nfunction importCodeMirrorImports() {\n  return importCodeMirror(\n    [\n      import('codemirror/addon/fold/foldgutter.js'),\n      import('codemirror/addon/fold/brace-fold.js'),\n      import('codemirror/addon/dialog/dialog.js'),\n      import('codemirror/addon/search/search.js'),\n      import('codemirror/addon/search/searchcursor.js'),\n      import('codemirror/addon/search/jump-to-line.js'),\n      // @ts-expect-error\n      import('codemirror/keymap/sublime.js'),\n      import('codemirror-graphql/esm/results/mode.js'),\n      import('codemirror-graphql/esm/utils/info-addon.js'),\n    ],\n    { useCommonAddons: false },\n  );\n}\n// To make react-compiler happy, otherwise complains about - Hooks may not be referenced as normal values\nconst _useResponseEditor = useResponseEditor;\n\nexport function useResponseEditor(\n  {\n    responseTooltip,\n    editorTheme = DEFAULT_EDITOR_THEME,\n    keyMap = DEFAULT_KEY_MAP,\n  }: UseResponseEditorArgs = {},\n  caller?: Function,\n) {\n  const { fetchError, validationErrors } = useSchemaContext({\n    nonNull: true,\n    caller: caller || _useResponseEditor,\n  });\n  const { initialResponse, responseEditor, setResponseEditor } =\n    useEditorContext({\n      nonNull: true,\n      caller: caller || _useResponseEditor,\n    });\n  const ref = useRef<HTMLDivElement>(null);\n\n  const responseTooltipRef = useRef<ResponseTooltipType | undefined>(\n    responseTooltip,\n  );\n  useEffect(() => {\n    responseTooltipRef.current = responseTooltip;\n  }, [responseTooltip]);\n\n  useEffect(() => {\n    let isActive = true;\n    void importCodeMirrorImports().then(CodeMirror => {\n      // Don't continue if the effect has already been cleaned up\n      if (!isActive) {\n        return;\n      }\n\n      // Handle image tooltips and custom tooltips\n      const tooltipDiv = document.createElement('div');\n      CodeMirror.registerHelper(\n        'info',\n        'graphql-results',\n        (token: Token, _options: any, _cm: CodeMirrorEditor, pos: Position) => {\n          const infoElements: JSX.Element[] = [];\n\n          const ResponseTooltipComponent = responseTooltipRef.current;\n          if (ResponseTooltipComponent) {\n            infoElements.push(\n              <ResponseTooltipComponent pos={pos} token={token} />,\n            );\n          }\n\n          if (ImagePreview.shouldRender(token)) {\n            infoElements.push(\n              <ImagePreview key=\"image-preview\" token={token} />,\n            );\n          }\n\n          // We can't refactor to root.unmount() from React 18 because we support React 16/17 too\n          if (!infoElements.length) {\n            // eslint-disable-next-line react/no-deprecated -- We still support React 16/17\n            ReactDOM.unmountComponentAtNode(tooltipDiv);\n            return null;\n          }\n          // eslint-disable-next-line react/no-deprecated -- We still support React 16/17\n          ReactDOM.render(infoElements, tooltipDiv);\n          return tooltipDiv;\n        },\n      );\n\n      const container = ref.current;\n      if (!container) {\n        return;\n      }\n\n      const newEditor = CodeMirror(container, {\n        value: initialResponse,\n        lineWrapping: true,\n        readOnly: true,\n        theme: editorTheme,\n        mode: 'graphql-results',\n        foldGutter: true,\n        gutters: ['CodeMirror-foldgutter'],\n        // @ts-expect-error\n        info: true,\n        extraKeys: commonKeys,\n      });\n\n      setResponseEditor(newEditor);\n    });\n\n    return () => {\n      isActive = false;\n    };\n  }, [editorTheme, initialResponse, setResponseEditor]);\n\n  useSynchronizeOption(responseEditor, 'keyMap', keyMap);\n\n  useEffect(() => {\n    if (fetchError) {\n      responseEditor?.setValue(fetchError);\n    }\n    if (validationErrors.length > 0) {\n      responseEditor?.setValue(formatError(validationErrors));\n    }\n  }, [responseEditor, fetchError, validationErrors]);\n\n  return ref;\n}\n","import { useResponseEditor, UseResponseEditorArgs } from '../response-editor';\n\nimport '../style/codemirror.css';\nimport '../style/fold.css';\nimport '../style/info.css';\nimport '../style/editor.css';\n\nexport function ResponseEditor(props: UseResponseEditorArgs) {\n  const ref = useResponseEditor(props, ResponseEditor);\n  return (\n    <section\n      className=\"result-window\"\n      aria-label=\"Result Window\"\n      aria-live=\"polite\"\n      aria-atomic=\"true\"\n      ref={ref}\n    />\n  );\n}\n","import { useEffect } from 'react';\nimport { clsx } from 'clsx';\n\nimport { useEditorContext } from '../context';\nimport { useVariableEditor, UseVariableEditorArgs } from '../variable-editor';\n\nimport '../style/codemirror.css';\nimport '../style/fold.css';\nimport '../style/lint.css';\nimport '../style/hint.css';\nimport '../style/editor.css';\n\ntype VariableEditorProps = UseVariableEditorArgs & {\n  /**\n   * Visually hide the header editor.\n   * @default false\n   */\n  isHidden?: boolean;\n};\n\nexport function VariableEditor({ isHidden, ...hookArgs }: VariableEditorProps) {\n  const { variableEditor } = useEditorContext({\n    nonNull: true,\n    caller: VariableEditor,\n  });\n  const ref = useVariableEditor(hookArgs, VariableEditor);\n\n  useEffect(() => {\n    if (variableEditor && !isHidden) {\n      variableEditor.refresh();\n    }\n  }, [variableEditor, isHidden]);\n\n  return (\n    <div className={clsx('graphiql-editor', isHidden && 'hidden')} ref={ref} />\n  );\n}\n","import { EditorContextProvider, EditorContextProviderProps } from './editor';\nimport {\n  ExecutionContextProvider,\n  ExecutionContextProviderProps,\n} from './execution';\nimport {\n  ExplorerContextProvider,\n  ExplorerContextProviderProps,\n} from './explorer/context';\nimport { HistoryContextProvider, HistoryContextProviderProps } from './history';\nimport { PluginContextProvider, PluginContextProviderProps } from './plugin';\nimport { SchemaContextProvider, SchemaContextProviderProps } from './schema';\nimport { StorageContextProvider, StorageContextProviderProps } from './storage';\n\nexport type GraphiQLProviderProps = EditorContextProviderProps &\n  ExecutionContextProviderProps &\n  ExplorerContextProviderProps &\n  HistoryContextProviderProps &\n  PluginContextProviderProps &\n  SchemaContextProviderProps &\n  StorageContextProviderProps;\n\nexport function GraphiQLProvider({\n  children,\n  dangerouslyAssumeSchemaIsValid,\n  defaultQuery,\n  defaultHeaders,\n  defaultTabs,\n  externalFragments,\n  fetcher,\n  getDefaultFieldNames,\n  headers,\n  inputValueDeprecation,\n  introspectionQueryName,\n  maxHistoryLength,\n  onEditOperationName,\n  onSchemaChange,\n  onTabChange,\n  onTogglePluginVisibility,\n  operationName,\n  plugins,\n  query,\n  response,\n  schema,\n  schemaDescription,\n  shouldPersistHeaders,\n  storage,\n  validationRules,\n  variables,\n  visiblePlugin,\n}: GraphiQLProviderProps) {\n  return (\n    <StorageContextProvider storage={storage}>\n      <HistoryContextProvider maxHistoryLength={maxHistoryLength}>\n        <EditorContextProvider\n          defaultQuery={defaultQuery}\n          defaultHeaders={defaultHeaders}\n          defaultTabs={defaultTabs}\n          externalFragments={externalFragments}\n          headers={headers}\n          onEditOperationName={onEditOperationName}\n          onTabChange={onTabChange}\n          query={query}\n          response={response}\n          shouldPersistHeaders={shouldPersistHeaders}\n          validationRules={validationRules}\n          variables={variables}\n        >\n          <SchemaContextProvider\n            dangerouslyAssumeSchemaIsValid={dangerouslyAssumeSchemaIsValid}\n            fetcher={fetcher}\n            inputValueDeprecation={inputValueDeprecation}\n            introspectionQueryName={introspectionQueryName}\n            onSchemaChange={onSchemaChange}\n            schema={schema}\n            schemaDescription={schemaDescription}\n          >\n            <ExecutionContextProvider\n              getDefaultFieldNames={getDefaultFieldNames}\n              fetcher={fetcher}\n              operationName={operationName}\n            >\n              <ExplorerContextProvider>\n                <PluginContextProvider\n                  onTogglePluginVisibility={onTogglePluginVisibility}\n                  plugins={plugins}\n                  visiblePlugin={visiblePlugin}\n                >\n                  {children}\n                </PluginContextProvider>\n              </ExplorerContextProvider>\n            </ExecutionContextProvider>\n          </SchemaContextProvider>\n        </EditorContextProvider>\n      </HistoryContextProvider>\n    </StorageContextProvider>\n  );\n}\n","import { useLayoutEffect, useState } from 'react';\nimport { useStorageContext } from './storage';\n\n/**\n * The value `null` semantically means that the user does not explicitly choose\n * any theme, so we use the system default.\n */\nexport type Theme = 'light' | 'dark' | null;\n\nexport function useTheme(defaultTheme: Theme = null) {\n  const storageContext = useStorageContext();\n\n  const [theme, setThemeInternal] = useState<Theme>(() => {\n    if (!storageContext) {\n      return null;\n    }\n\n    const stored = storageContext.get(STORAGE_KEY);\n    switch (stored) {\n      case 'light':\n        return 'light';\n      case 'dark':\n        return 'dark';\n      default:\n        if (typeof stored === 'string') {\n          // Remove the invalid stored value\n          storageContext.set(STORAGE_KEY, '');\n        }\n        return defaultTheme;\n    }\n  });\n\n  useLayoutEffect(() => {\n    if (typeof window === 'undefined') {\n      return;\n    }\n\n    document.body.classList.remove('graphiql-light', 'graphiql-dark');\n    if (theme) {\n      document.body.classList.add(`graphiql-${theme}`);\n    }\n  }, [theme]);\n\n  const setTheme = (newTheme: Theme) => {\n    storageContext?.set(STORAGE_KEY, newTheme || '');\n    setThemeInternal(newTheme);\n  };\n\n  return { theme, setTheme };\n}\n\nconst STORAGE_KEY = 'theme';\n","import { useEffect, useLayoutEffect, useRef, useState } from 'react';\n\nimport { useStorageContext } from '../storage';\nimport debounce from './debounce';\n\ntype ResizableElement = 'first' | 'second';\n\ntype UseDragResizeArgs = {\n  /**\n   * Set the default sizes for the two resizable halves by passing their ratio\n   * (first divided by second).\n   */\n  defaultSizeRelation?: number;\n  /**\n   * The direction in which the two halves should be resizable.\n   */\n  direction: 'horizontal' | 'vertical';\n  /**\n   * Choose one of the two halves that should initially be hidden.\n   */\n  initiallyHidden?: ResizableElement;\n  /**\n   * Invoked when the visibility of one of the halves changes.\n   * @param hiddenElement The element that is now hidden after the change\n   * (`null` if both are visible).\n   */\n  onHiddenElementChange?(hiddenElement: ResizableElement | null): void;\n  /**\n   * The minimum width in pixels for the first half. If it is resized to a\n   * width smaller than this threshold, the half will be hidden.\n   */\n  sizeThresholdFirst?: number;\n  /**\n   * The minimum width in pixels for the second half. If it is resized to a\n   * width smaller than this threshold, the half will be hidden.\n   */\n  sizeThresholdSecond?: number;\n  /**\n   * A key for which the state of resizing is persisted in storage (if storage\n   * is available).\n   */\n  storageKey?: string;\n};\n\nexport function useDragResize({\n  defaultSizeRelation = DEFAULT_FLEX,\n  direction,\n  initiallyHidden,\n  onHiddenElementChange,\n  sizeThresholdFirst = 100,\n  sizeThresholdSecond = 100,\n  storageKey,\n}: UseDragResizeArgs) {\n  const storage = useStorageContext();\n\n  const store = debounce(500, (value: string) => {\n    if (storageKey) {\n      storage?.set(storageKey, value);\n    }\n  });\n\n  const [hiddenElement, setHiddenElement] = useState<ResizableElement | null>(\n    () => {\n      const storedValue = storageKey && storage?.get(storageKey);\n      if (storedValue === HIDE_FIRST || initiallyHidden === 'first') {\n        return 'first';\n      }\n      if (storedValue === HIDE_SECOND || initiallyHidden === 'second') {\n        return 'second';\n      }\n      return null;\n    },\n  );\n\n  const setHiddenElementWithCallback = // eslint-disable-line react-hooks/exhaustive-deps -- false positive, function is optimized by react-compiler, no need to wrap with useCallback\n    (element: ResizableElement | null) => {\n      if (element !== hiddenElement) {\n        setHiddenElement(element);\n        onHiddenElementChange?.(element);\n      }\n    };\n\n  const firstRef = useRef<HTMLDivElement>(null);\n  const dragBarRef = useRef<HTMLDivElement>(null);\n  const secondRef = useRef<HTMLDivElement>(null);\n\n  const defaultFlexRef = useRef(`${defaultSizeRelation}`);\n\n  /**\n   * Set initial flex values\n   */\n  useLayoutEffect(() => {\n    const storedValue =\n      (storageKey && storage?.get(storageKey)) || defaultFlexRef.current;\n\n    if (firstRef.current) {\n      firstRef.current.style.display = 'flex';\n      firstRef.current.style.flex =\n        storedValue === HIDE_FIRST || storedValue === HIDE_SECOND\n          ? defaultFlexRef.current\n          : storedValue;\n    }\n\n    if (secondRef.current) {\n      secondRef.current.style.display = 'flex';\n      secondRef.current.style.flex = '1';\n    }\n\n    if (dragBarRef.current) {\n      dragBarRef.current.style.display = 'flex';\n    }\n  }, [direction, storage, storageKey]);\n\n  /**\n   * Hide and show items when state changes\n   */\n  useLayoutEffect(() => {\n    const hide = (resizableElement: ResizableElement) => {\n      const element =\n        resizableElement === 'first' ? firstRef.current : secondRef.current;\n      if (!element) {\n        return;\n      }\n\n      // We hide elements off screen because of codemirror. If the page is loaded\n      // and the codemirror container would have zero width, the layout isn't\n      // instant pretty. By always giving the editor some width we avoid any\n      // layout shifts when the editor reappears.\n      element.style.left = '-1000px';\n      element.style.position = 'absolute';\n      element.style.opacity = '0';\n      element.style.height = '500px';\n      element.style.width = '500px';\n\n      // Make sure that the flex value of the first item is at least equal to one\n      // so that the entire space of the parent element is filled up\n      if (firstRef.current) {\n        const flex = parseFloat(firstRef.current.style.flex);\n        if (!Number.isFinite(flex) || flex < 1) {\n          firstRef.current.style.flex = '1';\n        }\n      }\n    };\n\n    const show = (resizableElement: ResizableElement) => {\n      const element =\n        resizableElement === 'first' ? firstRef.current : secondRef.current;\n      if (!element) {\n        return;\n      }\n\n      element.style.width = '';\n      element.style.height = '';\n      element.style.opacity = '';\n      element.style.position = '';\n      element.style.left = '';\n\n      if (storage && storageKey) {\n        const storedValue = storage.get(storageKey);\n        if (\n          firstRef.current &&\n          storedValue !== HIDE_FIRST &&\n          storedValue !== HIDE_SECOND\n        ) {\n          firstRef.current.style.flex = storedValue || defaultFlexRef.current;\n        }\n      }\n    };\n    if (hiddenElement === 'first') {\n      hide('first');\n    } else {\n      show('first');\n    }\n    if (hiddenElement === 'second') {\n      hide('second');\n    } else {\n      show('second');\n    }\n  }, [hiddenElement, storage, storageKey]);\n\n  useEffect(() => {\n    if (!dragBarRef.current || !firstRef.current || !secondRef.current) {\n      return;\n    }\n    const dragBarContainer = dragBarRef.current;\n    const firstContainer = firstRef.current;\n    const wrapper = firstContainer.parentElement!;\n\n    const eventProperty = direction === 'horizontal' ? 'clientX' : 'clientY';\n    const rectProperty = direction === 'horizontal' ? 'left' : 'top';\n    const adjacentRectProperty =\n      direction === 'horizontal' ? 'right' : 'bottom';\n    const sizeProperty =\n      direction === 'horizontal' ? 'clientWidth' : 'clientHeight';\n\n    function handleMouseDown(downEvent: MouseEvent) {\n      downEvent.preventDefault();\n\n      // Distance between the start of the drag bar and the exact point where\n      // the user clicked on the drag bar.\n      const offset =\n        downEvent[eventProperty] -\n        dragBarContainer.getBoundingClientRect()[rectProperty];\n\n      function handleMouseMove(moveEvent: MouseEvent) {\n        if (moveEvent.buttons === 0) {\n          return handleMouseUp();\n        }\n\n        const firstSize =\n          moveEvent[eventProperty] -\n          wrapper.getBoundingClientRect()[rectProperty] -\n          offset;\n        const secondSize =\n          wrapper.getBoundingClientRect()[adjacentRectProperty] -\n          moveEvent[eventProperty] +\n          offset -\n          dragBarContainer[sizeProperty];\n\n        if (firstSize < sizeThresholdFirst) {\n          // Hide the first display\n          setHiddenElementWithCallback('first');\n          store(HIDE_FIRST);\n        } else if (secondSize < sizeThresholdSecond) {\n          // Hide the second display\n          setHiddenElementWithCallback('second');\n          store(HIDE_SECOND);\n        } else {\n          // Show both and adjust the flex value of the first one (the flex\n          // value for the second one is always `1`)\n          setHiddenElementWithCallback(null);\n          const newFlex = `${firstSize / secondSize}`;\n          firstContainer.style.flex = newFlex;\n          store(newFlex);\n        }\n      }\n\n      function handleMouseUp() {\n        document.removeEventListener('mousemove', handleMouseMove);\n        document.removeEventListener('mouseup', handleMouseUp);\n      }\n\n      document.addEventListener('mousemove', handleMouseMove);\n      document.addEventListener('mouseup', handleMouseUp);\n    }\n\n    dragBarContainer.addEventListener('mousedown', handleMouseDown);\n\n    function reset() {\n      if (firstRef.current) {\n        firstRef.current.style.flex = defaultFlexRef.current;\n      }\n      store(defaultFlexRef.current);\n      setHiddenElementWithCallback(null);\n    }\n\n    dragBarContainer.addEventListener('dblclick', reset);\n\n    return () => {\n      dragBarContainer.removeEventListener('mousedown', handleMouseDown);\n      dragBarContainer.removeEventListener('dblclick', reset);\n    };\n  }, [\n    direction,\n    setHiddenElementWithCallback,\n    sizeThresholdFirst,\n    sizeThresholdSecond,\n    store,\n  ]);\n\n  return {\n    dragBarRef,\n    hiddenElement,\n    firstRef,\n    setHiddenElement,\n    secondRef,\n  };\n}\n\nconst DEFAULT_FLEX = 1;\nconst HIDE_FIRST = 'hide-first';\nconst HIDE_SECOND = 'hide-second';\n","import { forwardRef, MouseEventHandler, useState } from 'react';\nimport { clsx } from 'clsx';\nimport { Tooltip, UnStyledButton } from '../ui';\n\nimport './button.css';\n\ntype ToolbarButtonProps = {\n  label: string;\n};\n\nexport const ToolbarButton = forwardRef<\n  HTMLButtonElement,\n  ToolbarButtonProps & JSX.IntrinsicElements['button']\n>(({ label, onClick, ...props }, ref) => {\n  const [error, setError] = useState<Error | null>(null);\n  const handleClick: MouseEventHandler<HTMLButtonElement> = event => {\n    try {\n      // Optional chaining inside try-catch isn't supported yet by react-compiler\n      if (onClick) {\n        onClick(event);\n      }\n      setError(null);\n    } catch (err) {\n      setError(\n        err instanceof Error\n          ? err\n          : new Error(`Toolbar button click failed: ${err}`),\n      );\n    }\n  };\n\n  return (\n    <Tooltip label={label}>\n      <UnStyledButton\n        {...props}\n        ref={ref}\n        type=\"button\"\n        className={clsx(\n          'graphiql-toolbar-button',\n          error && 'error',\n          props.className,\n        )}\n        onClick={handleClick}\n        aria-label={error ? error.message : label}\n        aria-invalid={error ? 'true' : props['aria-invalid']}\n      />\n    </Tooltip>\n  );\n});\nToolbarButton.displayName = 'ToolbarButton';\n","import { useEditorContext } from '../editor';\nimport { useExecutionContext } from '../execution';\nimport { PlayIcon, StopIcon } from '../icons';\nimport { DropdownMenu, Tooltip } from '../ui';\n\nimport './execute.css';\n\nexport function ExecuteButton() {\n  const { queryEditor, setOperationName } = useEditorContext({\n    nonNull: true,\n    caller: ExecuteButton,\n  });\n  const { isFetching, isSubscribed, operationName, run, stop } =\n    useExecutionContext({\n      nonNull: true,\n      caller: ExecuteButton,\n    });\n\n  const operations = queryEditor?.operations || [];\n  const hasOptions = operations.length > 1 && typeof operationName !== 'string';\n  const isRunning = isFetching || isSubscribed;\n\n  const label = `${isRunning ? 'Stop' : 'Execute'} query (Ctrl-Enter)`;\n  const buttonProps = {\n    type: 'button' as const,\n    className: 'graphiql-execute-button',\n    children: isRunning ? <StopIcon /> : <PlayIcon />,\n    'aria-label': label,\n  };\n\n  return hasOptions && !isRunning ? (\n    <DropdownMenu>\n      <Tooltip label={label}>\n        <DropdownMenu.Button {...buttonProps} />\n      </Tooltip>\n\n      <DropdownMenu.Content>\n        {operations.map((operation, i) => {\n          const opName = operation.name\n            ? operation.name.value\n            : `<Unnamed ${operation.operation}>`;\n          return (\n            <DropdownMenu.Item\n              key={`${opName}-${i}`}\n              onSelect={() => {\n                const selectedOperationName = operation.name?.value;\n                if (\n                  queryEditor &&\n                  selectedOperationName &&\n                  selectedOperationName !== queryEditor.operationName\n                ) {\n                  setOperationName(selectedOperationName);\n                }\n                run();\n              }}\n            >\n              {opName}\n            </DropdownMenu.Item>\n          );\n        })}\n      </DropdownMenu.Content>\n    </DropdownMenu>\n  ) : (\n    <Tooltip label={label}>\n      <button\n        {...buttonProps}\n        onClick={() => {\n          if (isRunning) {\n            stop();\n          } else {\n            run();\n          }\n        }}\n      />\n    </Tooltip>\n  );\n}\n","import { ReactNode } from 'react';\nimport { clsx } from 'clsx';\nimport { DropdownMenu, Tooltip } from '../ui';\nimport { createComponentGroup } from '../utility/component-group';\n\nimport './menu.css';\nimport { DropdownMenuProps } from '@radix-ui/react-dropdown-menu';\n\ntype ToolbarMenuProps = {\n  button: ReactNode;\n  label: string;\n};\n\nconst ToolbarMenuRoot = ({\n  button,\n  children,\n  label,\n  ...props\n}: ToolbarMenuProps & {\n  children: ReactNode;\n  className?: string;\n} & DropdownMenuProps) => {\n  return (\n    <DropdownMenu {...props}>\n      <Tooltip label={label}>\n        <DropdownMenu.Button\n          className={clsx(\n            'graphiql-un-styled graphiql-toolbar-menu',\n            props.className,\n          )}\n          aria-label={label}\n        >\n          {button}\n        </DropdownMenu.Button>\n      </Tooltip>\n      <DropdownMenu.Content>{children}</DropdownMenu.Content>\n    </DropdownMenu>\n  );\n};\n\nexport const ToolbarMenu = createComponentGroup(ToolbarMenuRoot, {\n  Item: DropdownMenu.Item,\n});\n"],"names":["createNullableContext","name","context","createContext","displayName","createContextHook","useGivenContext","options","value","useContext","nonNull","Error","caller","defineProperty","StorageContext","StorageContextProvider","props","$","_c","isInitialRender","useRef","t0","storage","StorageAPI","setStorage","useState","t1","t2","current","useEffect","t3","children","useStorageContext","ArgumentIcon","generateIcon","_ArgumentIcon","ChevronDownIcon","_ChevronDownIcon","ChevronLeftIcon","_ChevronLeftIcon","ChevronUpIcon","_ChevronUpIcon","CloseIcon","_CloseIcon","CopyIcon","_CopyIcon","DeprecatedArgumentIcon","_DeprecatedArgumentIcon","DeprecatedEnumValueIcon","_DeprecatedEnumValueIcon","DeprecatedFieldIcon","_DeprecatedFieldIcon","DirectiveIcon","_DirectiveIcon","DocsFilledIcon","_DocsFilledIcon","DocsIcon","_DocsIcon","EnumValueIcon","_EnumValueIcon","FieldIcon","_FieldIcon","HistoryIcon","_HistoryIcon","ImplementsIcon","_ImplementsIcon","KeyboardShortcutIcon","_KeyboardShortcutIcon","MagnifyingGlassIcon","_MagnifyingGlassIcon","MergeIcon","_MergeIcon","PenIcon","_PenIcon","PlayIcon","_PlayIcon","PlusIcon","_PlusIcon","PrettifyIcon","_PrettifyIcon","ReloadIcon","_ReloadIcon","RootTypeIcon","_RootTypeIcon","SettingsIcon","_SettingsIcon","StarFilledIcon","_StarFilledIcon","StarIcon","_StarIcon","StopIcon","_StopIcon","TrashIcon","_TrashIcon","TypeIcon","_TypeIcon","RawComponent","title","replace","replaceAll","trimStart","toLowerCase","IconComponent","UnStyledButton","forwardRef","ref","className","clsx","Button","state","success","error","ButtonGroup","createComponentGroup","root","Object","entries","reduce","r","key","DialogClose","Symbol","for","VisuallyHidden","DialogRoot","Dialog","Close","Title","D","Trigger","Description","Content","align","sideOffset","undefined","t4","RadixContent","Item","RadixItem","DropdownMenu","Root","markdown","MarkdownIt","breaks","linkify","MarkdownContent","onlyShowFirstChild","type","render","t5","__html","t6","Spinner","TooltipRoot","side","label","Tooltip","Provider","T","TabRoot","isActive","TabButton","TabClose","Tab","Tabs","onReorder","values","HistoryContext","HistoryContextProvider","maxHistoryLength","DEFAULT_HISTORY_LENGTH","HistoryStore","historyStore","queries","items","setItems","addToHistory","operation","updateHistory","editLabel","operation_0","index","toggleFavorite","operation_1","setActive","_temp","deleteFromHistory","item_0","clearFavorites","deleteHistory","item","useHistoryContext","History","all","slice","map","i","reverse","favorites","filter","favorite","length","clearStatus","setClearStatus","setTimeout","handleClearStatus","Boolean","HistoryItem","headerEditor","queryEditor","variableEditor","useEditorContext","inputRef","buttonRef","isEditable","setIsEditable","focus","operationName","query","formatQuery","handleSave","handleClose","t7","e","stopPropagation","handleEditLabel","t8","variables","headers","setValue","handleHistoryItemClick","t9","e_0","handleDeleteItemFromHistory","t10","e_1","handleToggleFavorite","t11","t12","t13","e_2","currentTarget","t14","split","line","join","ExecutionContext","ExecutionContextProvider","fetcher","getDefaultFieldNames","TypeError","externalFragments","responseEditor","updateActiveTabValues","history","autoCompleteLeafs","useAutoCompleteLeafs","isFetching","setIsFetching","subscription","setSubscription","queryIdRef","unsubscribe","stop","setResponse","response","queryId","getValue","variablesString","errorMessageParse","errorMessageType","message","headersString","fragmentDependencies","documentAST","getFragmentDependenciesForAST","opName","_headers","fullResponse","handleResponse","result","maybeMultipart","Array","isArray","part","mergeIncrementalResult","formatResult","fetch","value_0","Promise","resolve","isObservable","subscribe","next","result_0","error_2","formatError","complete","isAsyncIterable","asyncIterator","return","handleAsyncResults","run","isSubscribed","value_1","node","print","onResponse","useExecutionContext","tryParseJsonObject","json","parsed","trim","JSON","parse","isObject","pathsMap","WeakMap","executionResult","incrementalResult","path","pending","paths","get","Map","set","id","pendingPath","list","push","data","subPath","merge","errors","extensions","incremental","incrementalSubResult","completed","delete","isMacOs","navigator","userAgent","includes","DEFAULT_EDITOR_THEME","DEFAULT_KEY_MAP","commonKeys","importCodeMirror","addons","CodeMirror","then","c","default","useCommonAddons","printDefault","ast","DefaultValue","field","defaultValue","astFromValue","bb0","SchemaContext","SchemaContextProvider","onSchemaChange","initialHeaders","schema","setSchema","fetchError","setFetchError","counterRef","isSchema","headersRef","inputValueDeprecation","introspectionQueryName","schemaDescription","introspectionQuery","introspectionQuerySansSubscriptions","useIntrospectionQuery","counter","maybeIntrospectionData","fetchIntrospectionData","parsedHeaders","parseHeaderString","isValidJSON","fetcherOpts","fetcherReturnToPromise","isPromise","fetch2","responseString","introspectionData","newSchema","buildClientSchema","catch","error_0","introspect","triggerIntrospection","event","ctrlKey","addEventListener","removeEventListener","dangerouslyAssumeSchemaIsValid","validateSchema","validationErrors","useSchemaContext","queryName","getIntrospectionQuery","querySansSubscriptions","initialNavStackItem","ExplorerContext","ExplorerContextProvider","navStack","setNavStack","currentState","lastItem","at","def","pop","_temp2","reset","oldNavStack","newNavStack","lastEntity","isNamedType","newType","getType","isObjectType","isInputObjectType","getFields","isScalarType","isEnumType","isInterfaceType","isUnionType","field_0","arg","args","find","a","explorerNavStack","currentState_1","currentState_0","useExplorerContext","renderType","renderNamedType","isNonNullType","ofType","isListType","TypeLink","namedType","preventDefault","Argument","showDefaultValue","inline","definition","description","deprecationReason","DeprecationReason","preview","Directive","directive","ExplorerSection","Icon","TYPE_TO_ICON","Arguments","Directives","Fields","Implements","Implementations","Type","FieldDocumentation","showDeprecated","setShowDeprecated","handleShowDeprecated","deprecatedArgs","argument","arg_0","astNode","directives","_temp3","SchemaDocumentation","getQueryType","queryType","getMutationType","mutationType","getSubscriptionType","subscriptionType","T0","typeMap","getTypeMap","ignoreTypesInAllSchema","startsWith","debounce","duration","fn","timeout","window","clearTimeout","Search","getSearchResults","useSearchResults","searchValue","setSearchValue","results","setResults","debouncedGetSearchResults","useMemo","search","handleKeyDown","metaKey","navItem","onSelect","useCallback","isFocused","handleFocus","shouldSearchBoxAppear","target","within","types","fields","Field","_useSearchResults","matches","withinType","typeNames","keys","n","unshift","typeName","isMatch","fieldName","matchingArgs","sourceText","escaped","ch","RegExp","FieldLink","TypeDocumentation","ImplementsInterfaces","getInterfaces","interfaces","implementedInterface","deprecatedFields","fieldMap","field_1","_temp4","EnumValues","deprecatedValues","getValues","_temp5","_temp6","EnumValue","PossibleTypes","isAbstractType","getPossibleTypes","_temp7","possibleType","DocExplorer","content","isType","prevName","DOC_EXPLORER_PLUGIN","icon","pluginContext","usePluginContext","visiblePlugin","HISTORY_PLUGIN","PluginContext","PluginContextProvider","explorerContext","historyContext","hasExplorerContext","hasHistoryContext","pluginList","plugins","pluginTitles","plugin","storedValue","STORAGE_KEY","pluginForStoredValue","plugin_0","plugin_1","internalSetVisiblePlugin","onTogglePluginVisibility","plugin_2","newVisiblePlugin","p","setVisiblePlugin","onHasCompletion","_cm","explorer","callback","information","typeNamePill","typeNamePrefix","typeNameSuffix","deprecation","on","ctx","el","hintsUl","parentNode","document","createElement","append","header","href","onClickHintInformation","deprecationLabel","textContent","defaultInformationPadding","parseInt","getComputedStyle","paddingBottom","defaultInformationMaxHeight","maxHeight","handleScroll","style","paddingTop","scrollTop","onRemoveFn","text","display","innerHTML","HTMLElement","useSynchronizeValue","editor","useSynchronizeOption","option","setOption","useChangeHandler","storageKey","tabProperty","store","updateTab","handleChange","editorInstance","changeObj","newValue","off","useCompletion","handleCompletion","instance","kind","useKeyMap","removeKeyMap","keyMap","key_0","addKeyMap","_useCopyQuery","useCopyQuery","_useMergeQuery","useMergeQuery","_usePrettifyEditors","usePrettifyEditors","_useAutoCompleteLeafs","onCopyQuery","copyToClipboard","mergeAst","variableEditorContent","prettifiedVariableEditorContent","stringify","headerEditorContent","prettifiedHeaderEditorContent","editorContent","prettifiedEditorContent","insertions","fillLeafs","cursor","getCursor","cursorIndex","indexFromPos","added","markers","string","markText","posFromIndex","clearOnEnter","marker","clear","newCursorIndex","index_0","string_0","setCursor","useEditorState","valueString","editorValue","handleEditorValue","useOperationsEditorState","useVariablesEditorState","useHeadersEditorState","useOptimisticState","upstreamState","upstreamSetState","last","lastStateRef","setOperationsText","newState","setState","importCodeMirrorImports","_useHeaderEditor","useHeaderEditor","editorTheme","onEdit","readOnly","setHeaderEditor","shouldPersistHeaders","executionContext","prettify","container","newEditor","lineNumbers","tabSize","mode","theme","autoCloseBrackets","matchBrackets","showCursorWhenSelecting","foldGutter","gutters","extraKeys","showHint","completeSingle","t15","code","shiftKey","isLetter","isNumber","execCommand","invalidCharacters","from","_","String","fromCharCode","concat","sanitizeRegex","normalizeWhitespace","_useQueryEditor","useQueryEditor","updateVariableEditor","operationFacts","lint","linterOptions","variableToType","hintOptions","updateEditorSchema","info","jump","updateEditorValidationRules","validationRules","updateEditorExternalFragments","externalFragmentList","onClickReference","initialQuery","setOperationName","setQueryEditor","copy","codeMirrorRef","onClickReferenceRef","t16","reference","bb47","t17","t18","closeOnUnfocus","autocompleteOptions","GraphQLDocumentMode","EXECUTABLE","renderDescription","onClick","reference_0","reference_1","showingHints","editorInstance_0","event_0","operations","t19","t20","getAndUpdateOperationFacts","editorInstance_2","getOperationFacts","getSelectedOperationName","signal","editorInstance_3","STORAGE_KEY_QUERY","currentOperationName","operationFacts_0","STORAGE_KEY_OPERATION_NAME","t21","hasFocus","loc","start","end","runAtCursor","t22","t23","t24","t25","editorInstance_1","change","origin","text_0","update","to","AUTO_COMPLETE_AFTER_KEY","test","useSynchronizeSchema","didChange","useSynchronizeValidationRules","useSynchronizeExternalFragments","getDefaultTabState","defaultQuery","defaultHeaders","defaultTabs","storedState","headersForHash","isTabsState","expectedHash","hashFromTabContents","matchingTabIndex","tabs","tab","hash","activeTabIndex","fuzzyExtractOperationName","guid","DEFAULT_TITLE","createTab","obj","hasNumberKey","every","isTabState","hasStringKey","hasStringOrNullKey","useSynchronizeActiveTabValues","setPropertiesInActiveTab","serializeTabState","tabState","useStoreTabs","useSetEditorValues","partialTab","newTab","s4","Math","floor","random","toString","str","regex","match","exec","clearHeadersFromTabs","persistedTabs","parsedTabs","_useVariableEditor","useVariableEditor","initialVariables","setVariableEditor","EditorContext","EditorContextProvider","setResponseEditor","isStored","PERSIST_HEADERS_STORAGE_KEY","setShouldPersistHeadersInternal","storeTabs","STORAGE_KEY_VARIABLES","STORAGE_KEY_HEADERS","DEFAULT_QUERY","initialState","tabState_0","setTabState","persist","serializedTabs","STORAGE_KEY_TABS","setShouldPersistHeaders","lastShouldPersistHeadersProp","propValue","synchronizeActiveTabValues","onTabChange","setEditorValues","updatedValues","updated","addTab","current_0","updated_0","changeTab","newOrder","current_1","activeTab","updated_1","indexOf","moveTab","current_2","updated_2","_tab","max","closeTab","current_3","updated_3","onEditOperationName","updateQueryEditor","fragment","visit","FragmentDefinition","fragment_0","initialResponse","HeaderEditor","hookArgs","isHidden","refresh","ImagePreview","width","height","dimensions","setDimensions","mime","setMime","src","tokenToURL","token","method","dims","naturalWidth","naturalHeight","shouldRender","url","isImageURL","location","URL","protocol","host","pathname","QueryEditor","_useResponseEditor","useResponseEditor","responseTooltip","responseTooltipRef","tooltipDiv","registerHelper","_options","pos","infoElements","ResponseTooltipComponent","ReactDOM","unmountComponentAtNode","lineWrapping","ResponseEditor","VariableEditor","GraphiQLProvider","useTheme","defaultTheme","storageContext","stored","setThemeInternal","body","classList","remove","add","useLayoutEffect","newTheme","setTheme","useDragResize","defaultSizeRelation","direction","initiallyHidden","onHiddenElementChange","sizeThresholdFirst","sizeThresholdSecond","DEFAULT_FLEX","HIDE_FIRST","HIDE_SECOND","hiddenElement","setHiddenElement","element","setHiddenElementWithCallback","firstRef","dragBarRef","secondRef","defaultFlexRef","storedValue_0","flex","hide","resizableElement","element_0","left","position","opacity","parseFloat","Number","isFinite","show","resizableElement_0","element_1","storedValue_1","dragBarContainer","firstContainer","wrapper","parentElement","eventProperty","rectProperty","adjacentRectProperty","sizeProperty","handleMouseDown","downEvent","offset","getBoundingClientRect","handleMouseMove","moveEvent","buttons","handleMouseUp","firstSize","secondSize","newFlex","ToolbarButton","setError","err","handleClick","ExecuteButton","hasOptions","isRunning","buttonProps","selectedOperationName","ToolbarMenuRoot","button","ToolbarMenu"],"mappings":"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"}