Version Packages (alpha)#4251
Open
github-actions[bot] wants to merge 1 commit into
Open
Conversation
github-actions
Bot
force-pushed
the
changeset-release/graphiql-6
branch
28 times, most recently
from
May 19, 2026 02:55
db22dbf to
5f978cc
Compare
github-actions
Bot
force-pushed
the
changeset-release/graphiql-6
branch
2 times, most recently
from
May 20, 2026 21:52
feabe2e to
0360381
Compare
github-actions
Bot
force-pushed
the
changeset-release/graphiql-6
branch
4 times, most recently
from
June 20, 2026 18:43
a8e109c to
a08ae35
Compare
github-actions
Bot
force-pushed
the
changeset-release/graphiql-6
branch
5 times, most recently
from
June 28, 2026 21:24
de74520 to
829e527
Compare
github-actions
Bot
force-pushed
the
changeset-release/graphiql-6
branch
12 times, most recently
from
July 10, 2026 15:56
a96628d to
418c874
Compare
hanminhtet31
approved these changes
Jul 10, 2026
hanminhtet31
approved these changes
Jul 10, 2026
hanminhtet31
approved these changes
Jul 10, 2026
hanminhtet31
approved these changes
Jul 10, 2026
github-actions
Bot
force-pushed
the
changeset-release/graphiql-6
branch
4 times, most recently
from
July 11, 2026 05:53
c55bdba to
cdf756d
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to graphiql-6, this PR will be updated.
graphiql-6is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, runchangeset pre exitongraphiql-6.Releases
graphiql@6.0.0-alpha.0
Major Changes
#4425
ff2e4caThanks @trevor-scheer! - Remove the composableGraphiQL.ToolbarandGraphiQL.Logoslots. Editor actions are now contributed through a plugin'ssessionActions, and branding is customized through thebrandprop passed to<GraphiQL>(or<TopBar>directly).GraphiQL.Footeris unchanged. See the migration guide for before/after examples.#4411
b6f8dc6Thanks @trevor-scheer! - A ground-up visual redesign for v6. A new OKLCH-based design-token system brings first-class light and dark themes, driven by adata-themeattribute on the GraphiQL container. The layout is rebuilt around a top bar (endpoint and Run action), a left activity rail for plugins, a resizable side panel, a slim status bar, a flattened editor workspace, and a Variables/Headers tab strip. Every built-in component and both Monaco editor themes are restyled to match, and the doc explorer and history panels are rebuilt on the new chrome.GraphQL syntax coloring is unified across the doc explorer, history, and query builder, with type names colored by category. The mapping is public API for retheming: the
--type-scalar,--type-enum,--type-input, and--type-compositeCSS tokens, plus thetypeCategoryhelper exported from@graphiql/react.Custom CSS that overrides GraphiQL's internal class names may need updating; only the CSS custom properties (design tokens) are supported theming API. The build now targets the
defaultsbrowserslist preset, which covers the modern browsers the OKLCH color system requires. See the migration guide atdocs/migration/graphiql-6.0.0.md. Refs GraphiQL Modernization #4219.Minor Changes
#4411
b6f8dc6Thanks @trevor-scheer! - New@graphiql/plugin-collectionsplugin for saving named operations into folder collections and reusing them later, default-installed in thegraphiqlmeta-package so a Collections rail icon appears out of the box (passing thepluginsprop opts out of the default set as before).MIXpill when a saved document holds more than one operation).storageoption (defaults tolocalStorage), plusreadOnly,allowImportExport, andallowReplacefor governed deployments.To support this without the core depending on any specific plugin,
@graphiql/reactgains a save API:registerSaveHandler(handler)(⌘S and the Save button fan out to every registered handler plus theonSaveQueryprop, and the dirty-state affordance only appears when at least one is registered), theonSaveQuery(tab)prop withmarkTabSaved(tabId)for deferred saves, andGraphiQLPlugin.sessionActions, an always-mounted plugin slot for toolbar buttons, dialogs, or behavior registration. The dirty-state dot now means "a saved operation has unsaved edits" and survives a reload, so a tab that was never saved reads clean.#4352
f8a9445Thanks @trevor-scheer! - The active operation now follows the editor cursor. As you move the cursor between operations in a multi-operation document,operationNameupdates to the operation the cursor sits in, so the operation dropdown and operation-aware plugins all reflect where you are editing. PreviouslyoperationNameonly changed on run-at-cursor or via the operation dropdown.Two consequences if you embed GraphiQL: the
onEditOperationNamecallback now fires when the cursor crosses into a different named operation, and a tab containing multiple operations shows the active operation name with a+Ncount of the others. Pinning an operation with theoperationNameprop still overrides cursor tracking.The Run button now offers an operation picker: in a document with multiple named operations, a dropdown on the Run button lets you choose which operation to run, and the menu marks which operation is currently active. The active operation still follows the editor cursor by default.
#4352
f8a9445Thanks @trevor-scheer! - Add@graphiql/plugin-query-builder, a first-party visual query builder. It renders the schema's root types as a collapsible tree; checking a field adds it to the current operation and unchecking removes it, with the document parsed, mutated, and reprinted through thegraphqlpackage's AST utilities. Fields expose argument inputs (scalars, enums, lists, and input objects, including lists of input objects), scalar arguments can be promoted to variables, named fragments can be extracted from a field's selection and edited in place, and union/interface fields offer inline-fragment type-condition selectors.The query builder is default-installed in the
graphiqlmeta-package, so it is available with no extra setup.#4411
b6f8dc6Thanks @trevor-scheer! - Add aSettingsDialogwith theme, density, font-size, and persist-headers controls, backed by a newuseGraphiQLSettings()hook that persists preferences tolocalStorageand applies them to the GraphiQL container viadata-*attributes. Density and font-size presets fill in concrete token values for the[data-density]and[data-font-size]blocks intokens.css; Monaco editor font size, the status bar, and UI icon sizes follow the active font-size preset. TheforcedThemeandshowPersistHeadersSettingsprops continue to work, withforcedThemehiding the theme control.#4333
093cb10Thanks @trevor-scheer! - Add a structuredTransportAPI alongside the existingFetcher.createTransport({...})performs the GraphQL request and returns aTransportResponsecarrying the real HTTP wire metadata (status, headers, timing, size) for queries, mutations, subscriptions, and incremental delivery, so the response pane can surface those values directly instead of fabricating them.<GraphiQL>accepts a newtransportprop, mutually exclusive withfetcherat the type level.Transports support GET, POST, and the HTTP
QUERYmethod per the GraphQL over HTTP spec. Passmethod/supportedMethodsto choose; GET encodes the query into the URL with no body,QUERYsends a JSON body but is safe and idempotent, and mutations are always sent over POST (or blocked when POST is unavailable).Transportexposesurl,method,supportedMethods, and an optionalsetMethod, and the top bar shows the active method and endpoint with an inline switcher that cycles through the supported methods. Subscriptions require an explicitsubscriptionClientsatisfying a smallSubscriptionClientcontract: a single.subscribe(request, sink)method thatgraphql-wsandgraphql-sseclients meet directly. The low-levelsimpleHttpTransportandmultipartHttpTransportprimitives also accept an optionalmethod.Plugins can observe and transform traffic through
transport.onBeforeSendandtransport.onResponse, available viauseGraphiQLPluginContext()(both return a cleanup function; thetransportfield isundefinedunder the legacyfetcherpath, so guard with optional chaining).createGraphiQLFetcher, theFetchertype and its companions, and<GraphiQL fetcher={...}>are deprecated but continue to work unchanged. Consumers on the deprecated path see a one-time dismissible banner in the response pane pointing atdocs/migration/graphiql-6.0.0.mdrather than fabricated status/timing/size values. The CDN bundle exposesGraphiQL.createTransportandGraphiQL.createWsClientso script-tag consumers can adopt without a bundler.Patch Changes
#4409
0f96193Thanks @trevor-scheer! - Tighten keyboard navigation: the settings dialog now restores focus to the gear button that opened it (Escape, the close button, and clicking outside all worked before but silently dropped focus to the page). History label edits can now be canceled with Escape and return focus to the row instead of the page.#4414
df03c92Thanks @trevor-scheer! - Polish the response pane: the loading spinner is now a centered overlay, so the view picker and results no longer jump when a query runs; the JSON, Tree, and Table views share a consistent 16px inset; and Table view rows get their bottom divider back.Updated dependencies [
0f96193,1919f6a,b6f8dc6,d4f0268,c25bfd5,f8a9445,1ce71e4,f8a9445,f45e26b,827da62,df03c92,b6f8dc6,a0fe11a,b6f8dc6,093cb10,b6f8dc6]:@graphiql/plugin-doc-explorer@1.0.0-alpha.0
Major Changes
827da62Thanks @trevor-scheer! - Remove deprecated hooks:useEditorContext,useExecutionContext,usePluginContext,useSchemaContext,useTheme,useStorage,useStorageContext,usePrettifyEditors,useCopyQuery,useMergeQuery, the*Storealiases (in@graphiql/react);useExplorerContext(in@graphiql/plugin-doc-explorer); anduseHistoryContext(in@graphiql/plugin-history). Replacements were available since v5 — see the v6 migration guide for one-line replacements.Minor Changes
#4411
b6f8dc6Thanks @trevor-scheer! - A ground-up visual redesign for v6. A new OKLCH-based design-token system brings first-class light and dark themes, driven by adata-themeattribute on the GraphiQL container. The layout is rebuilt around a top bar (endpoint and Run action), a left activity rail for plugins, a resizable side panel, a slim status bar, a flattened editor workspace, and a Variables/Headers tab strip. Every built-in component and both Monaco editor themes are restyled to match, and the doc explorer and history panels are rebuilt on the new chrome.GraphQL syntax coloring is unified across the doc explorer, history, and query builder, with type names colored by category. The mapping is public API for retheming: the
--type-scalar,--type-enum,--type-input, and--type-compositeCSS tokens, plus thetypeCategoryhelper exported from@graphiql/react.Custom CSS that overrides GraphiQL's internal class names may need updating; only the CSS custom properties (design tokens) are supported theming API. The build now targets the
defaultsbrowserslist preset, which covers the modern browsers the OKLCH color system requires. See the migration guide atdocs/migration/graphiql-6.0.0.md. Refs GraphiQL Modernization #4219.Patch Changes
#4413
1919f6aThanks @trevor-scheer! - Add a global keyboard focus ring and fill in a few missing screen-reader labels. Every control now shows a clearly visible blue outline when focused with the keyboard, with enough contrast against the canvas in both light and dark themes. Decorative icons that sit next to a text label no longer announce a redundant name, the doc explorer search box shows a focus ring while typing, and the cancel button on a history label edit now has an accessible name.Updated dependencies [
0f96193,1919f6a,b6f8dc6,d4f0268,c25bfd5,f8a9445,1ce71e4,f45e26b,827da62,df03c92,b6f8dc6,a0fe11a,b6f8dc6,093cb10,b6f8dc6]:@graphiql/plugin-history@1.0.0-alpha.0
Major Changes
827da62Thanks @trevor-scheer! - Remove deprecated hooks:useEditorContext,useExecutionContext,usePluginContext,useSchemaContext,useTheme,useStorage,useStorageContext,usePrettifyEditors,useCopyQuery,useMergeQuery, the*Storealiases (in@graphiql/react);useExplorerContext(in@graphiql/plugin-doc-explorer); anduseHistoryContext(in@graphiql/plugin-history). Replacements were available since v5 — see the v6 migration guide for one-line replacements.Patch Changes
#4409
0f96193Thanks @trevor-scheer! - Tighten keyboard navigation: the settings dialog now restores focus to the gear button that opened it (Escape, the close button, and clicking outside all worked before but silently dropped focus to the page). History label edits can now be canceled with Escape and return focus to the row instead of the page.#4413
1919f6aThanks @trevor-scheer! - Add a global keyboard focus ring and fill in a few missing screen-reader labels. Every control now shows a clearly visible blue outline when focused with the keyboard, with enough contrast against the canvas in both light and dark themes. Decorative icons that sit next to a text label no longer announce a redundant name, the doc explorer search box shows a focus ring while typing, and the cancel button on a history label edit now has an accessible name.#4411
b6f8dc6Thanks @trevor-scheer! - A ground-up visual redesign for v6. A new OKLCH-based design-token system brings first-class light and dark themes, driven by adata-themeattribute on the GraphiQL container. The layout is rebuilt around a top bar (endpoint and Run action), a left activity rail for plugins, a resizable side panel, a slim status bar, a flattened editor workspace, and a Variables/Headers tab strip. Every built-in component and both Monaco editor themes are restyled to match, and the doc explorer and history panels are rebuilt on the new chrome.GraphQL syntax coloring is unified across the doc explorer, history, and query builder, with type names colored by category. The mapping is public API for retheming: the
--type-scalar,--type-enum,--type-input, and--type-compositeCSS tokens, plus thetypeCategoryhelper exported from@graphiql/react.Custom CSS that overrides GraphiQL's internal class names may need updating; only the CSS custom properties (design tokens) are supported theming API. The build now targets the
defaultsbrowserslist preset, which covers the modern browsers the OKLCH color system requires. See the migration guide atdocs/migration/graphiql-6.0.0.md. Refs GraphiQL Modernization #4219.Updated dependencies [
0f96193,1919f6a,b6f8dc6,26ae143,d4f0268,c25bfd5,f8a9445,1ce71e4,f45e26b,827da62,df03c92,b6f8dc6,a0fe11a,b6f8dc6,093cb10,b6f8dc6]:@graphiql/react@1.0.0-alpha.0
Major Changes
#4423
f45e26bThanks @trevor-scheer! -cnis no longer exported from@graphiql/react; importclsxdirectly.#4393
827da62Thanks @trevor-scheer! - Remove deprecated hooks:useEditorContext,useExecutionContext,usePluginContext,useSchemaContext,useTheme,useStorage,useStorageContext,usePrettifyEditors,useCopyQuery,useMergeQuery, the*Storealiases (in@graphiql/react);useExplorerContext(in@graphiql/plugin-doc-explorer); anduseHistoryContext(in@graphiql/plugin-history). Replacements were available since v5 — see the v6 migration guide for one-line replacements.Minor Changes
#4411
b6f8dc6Thanks @trevor-scheer! - New@graphiql/plugin-collectionsplugin for saving named operations into folder collections and reusing them later, default-installed in thegraphiqlmeta-package so a Collections rail icon appears out of the box (passing thepluginsprop opts out of the default set as before).MIXpill when a saved document holds more than one operation).storageoption (defaults tolocalStorage), plusreadOnly,allowImportExport, andallowReplacefor governed deployments.To support this without the core depending on any specific plugin,
@graphiql/reactgains a save API:registerSaveHandler(handler)(⌘S and the Save button fan out to every registered handler plus theonSaveQueryprop, and the dirty-state affordance only appears when at least one is registered), theonSaveQuery(tab)prop withmarkTabSaved(tabId)for deferred saves, andGraphiQLPlugin.sessionActions, an always-mounted plugin slot for toolbar buttons, dialogs, or behavior registration. The dirty-state dot now means "a saved operation has unsaved edits" and survives a reload, so a tab that was never saved reads clean.#4277
d4f0268Thanks @trevor-scheer! - Add aKeycapHintprimitive for displaying inline keyboard shortcuts (e.g.⌘K,⌘⏎), available for general consumer use. It takes semantic modifier names via theMODIFIERconstant:MODIFIER.Metarenders as⌘on macOS andCtrlelsewhere;Ctrl/Alt/Shiftrender as Mac glyphs (⌃/⌥/⇧) on macOS and plain text on other platforms;Enterrenders as⏎everywhere.#4285
c25bfd5Thanks @trevor-scheer! - Add aMethodPillprimitive: a small colored pill labeling an operation as QRY (query), MUT (mutation), or SUB (subscription).#4352
f8a9445Thanks @trevor-scheer! - The active operation now follows the editor cursor. As you move the cursor between operations in a multi-operation document,operationNameupdates to the operation the cursor sits in, so the operation dropdown and operation-aware plugins all reflect where you are editing. PreviouslyoperationNameonly changed on run-at-cursor or via the operation dropdown.Two consequences if you embed GraphiQL: the
onEditOperationNamecallback now fires when the cursor crosses into a different named operation, and a tab containing multiple operations shows the active operation name with a+Ncount of the others. Pinning an operation with theoperationNameprop still overrides cursor tracking.The Run button now offers an operation picker: in a document with multiple named operations, a dropdown on the Run button lets you choose which operation to run, and the menu marks which operation is currently active. The active operation still follows the editor cursor by default.
#4284
1ce71e4Thanks @trevor-scheer! - Add aPanelHeaderprimitive for side panels. Renders a title, optional subtitle, and optional action-icon row.#4411
b6f8dc6Thanks @trevor-scheer! - Add a response pane header with real status, elapsed time, and response size from the active transport, a copy button, and a JSON / Tree / Table view toggle (the selection is persisted and restored on reload).test.person.friends); sibling and aliased lists each get a table, nested objects and arrays show as shorthand summaries, and non-list responses show an empty state.#4282
a0fe11aThanks @trevor-scheer! - Add aSegmentedControlprimitive for selecting one option from a small set inline, used by the response view toggle and several settings controls. It is built on native radio inputs, so keyboard navigation (arrow keys, Home / End) and screen-reader semantics come from the browser and the group is a single tab stop.#4411
b6f8dc6Thanks @trevor-scheer! - Add aSettingsDialogwith theme, density, font-size, and persist-headers controls, backed by a newuseGraphiQLSettings()hook that persists preferences tolocalStorageand applies them to the GraphiQL container viadata-*attributes. Density and font-size presets fill in concrete token values for the[data-density]and[data-font-size]blocks intokens.css; Monaco editor font size, the status bar, and UI icon sizes follow the active font-size preset. TheforcedThemeandshowPersistHeadersSettingsprops continue to work, withforcedThemehiding the theme control.#4333
093cb10Thanks @trevor-scheer! - Add a structuredTransportAPI alongside the existingFetcher.createTransport({...})performs the GraphQL request and returns aTransportResponsecarrying the real HTTP wire metadata (status, headers, timing, size) for queries, mutations, subscriptions, and incremental delivery, so the response pane can surface those values directly instead of fabricating them.<GraphiQL>accepts a newtransportprop, mutually exclusive withfetcherat the type level.Transports support GET, POST, and the HTTP
QUERYmethod per the GraphQL over HTTP spec. Passmethod/supportedMethodsto choose; GET encodes the query into the URL with no body,QUERYsends a JSON body but is safe and idempotent, and mutations are always sent over POST (or blocked when POST is unavailable).Transportexposesurl,method,supportedMethods, and an optionalsetMethod, and the top bar shows the active method and endpoint with an inline switcher that cycles through the supported methods. Subscriptions require an explicitsubscriptionClientsatisfying a smallSubscriptionClientcontract: a single.subscribe(request, sink)method thatgraphql-wsandgraphql-sseclients meet directly. The low-levelsimpleHttpTransportandmultipartHttpTransportprimitives also accept an optionalmethod.Plugins can observe and transform traffic through
transport.onBeforeSendandtransport.onResponse, available viauseGraphiQLPluginContext()(both return a cleanup function; thetransportfield isundefinedunder the legacyfetcherpath, so guard with optional chaining).createGraphiQLFetcher, theFetchertype and its companions, and<GraphiQL fetcher={...}>are deprecated but continue to work unchanged. Consumers on the deprecated path see a one-time dismissible banner in the response pane pointing atdocs/migration/graphiql-6.0.0.mdrather than fabricated status/timing/size values. The CDN bundle exposesGraphiQL.createTransportandGraphiQL.createWsClientso script-tag consumers can adopt without a bundler.#4411
b6f8dc6Thanks @trevor-scheer! - A ground-up visual redesign for v6. A new OKLCH-based design-token system brings first-class light and dark themes, driven by adata-themeattribute on the GraphiQL container. The layout is rebuilt around a top bar (endpoint and Run action), a left activity rail for plugins, a resizable side panel, a slim status bar, a flattened editor workspace, and a Variables/Headers tab strip. Every built-in component and both Monaco editor themes are restyled to match, and the doc explorer and history panels are rebuilt on the new chrome.GraphQL syntax coloring is unified across the doc explorer, history, and query builder, with type names colored by category. The mapping is public API for retheming: the
--type-scalar,--type-enum,--type-input, and--type-compositeCSS tokens, plus thetypeCategoryhelper exported from@graphiql/react.Custom CSS that overrides GraphiQL's internal class names may need updating; only the CSS custom properties (design tokens) are supported theming API. The build now targets the
defaultsbrowserslist preset, which covers the modern browsers the OKLCH color system requires. See the migration guide atdocs/migration/graphiql-6.0.0.md. Refs GraphiQL Modernization #4219.Patch Changes
#4409
0f96193Thanks @trevor-scheer! - Tighten keyboard navigation: the settings dialog now restores focus to the gear button that opened it (Escape, the close button, and clicking outside all worked before but silently dropped focus to the page). History label edits can now be canceled with Escape and return focus to the row instead of the page.#4413
1919f6aThanks @trevor-scheer! - Add a global keyboard focus ring and fill in a few missing screen-reader labels. Every control now shows a clearly visible blue outline when focused with the keyboard, with enough contrast against the canvas in both light and dark themes. Decorative icons that sit next to a text label no longer announce a redundant name, the doc explorer search box shows a focus ring while typing, and the cancel button on a history label edit now has an accessible name.#4414
df03c92Thanks @trevor-scheer! - Polish the response pane: the loading spinner is now a centered overlay, so the view picker and results no longer jump when a query runs; the JSON, Tree, and Table views share a consistent 16px inset; and Table view rows get their bottom divider back.Updated dependencies [
26ae143,093cb10]:@graphiql/toolkit@1.0.0-alpha.0
Major Changes
26ae143Thanks @trevor-scheer! - Remove the deprecatedlegacyClientalias fromCreateFetcherOptions. It duplicatedlegacyWsClient— passlegacyWsClientinstead.Minor Changes
#4333
093cb10Thanks @trevor-scheer! - Add a structuredTransportAPI alongside the existingFetcher.createTransport({...})performs the GraphQL request and returns aTransportResponsecarrying the real HTTP wire metadata (status, headers, timing, size) for queries, mutations, subscriptions, and incremental delivery, so the response pane can surface those values directly instead of fabricating them.<GraphiQL>accepts a newtransportprop, mutually exclusive withfetcherat the type level.Transports support GET, POST, and the HTTP
QUERYmethod per the GraphQL over HTTP spec. Passmethod/supportedMethodsto choose; GET encodes the query into the URL with no body,QUERYsends a JSON body but is safe and idempotent, and mutations are always sent over POST (or blocked when POST is unavailable).Transportexposesurl,method,supportedMethods, and an optionalsetMethod, and the top bar shows the active method and endpoint with an inline switcher that cycles through the supported methods. Subscriptions require an explicitsubscriptionClientsatisfying a smallSubscriptionClientcontract: a single.subscribe(request, sink)method thatgraphql-wsandgraphql-sseclients meet directly. The low-levelsimpleHttpTransportandmultipartHttpTransportprimitives also accept an optionalmethod.Plugins can observe and transform traffic through
transport.onBeforeSendandtransport.onResponse, available viauseGraphiQLPluginContext()(both return a cleanup function; thetransportfield isundefinedunder the legacyfetcherpath, so guard with optional chaining).createGraphiQLFetcher, theFetchertype and its companions, and<GraphiQL fetcher={...}>are deprecated but continue to work unchanged. Consumers on the deprecated path see a one-time dismissible banner in the response pane pointing atdocs/migration/graphiql-6.0.0.mdrather than fabricated status/timing/size values. The CDN bundle exposesGraphiQL.createTransportandGraphiQL.createWsClientso script-tag consumers can adopt without a bundler.@graphiql/plugin-collections@0.1.0-alpha.1
Minor Changes
#4411
b6f8dc6Thanks @trevor-scheer! - New@graphiql/plugin-collectionsplugin for saving named operations into folder collections and reusing them later, default-installed in thegraphiqlmeta-package so a Collections rail icon appears out of the box (passing thepluginsprop opts out of the default set as before).MIXpill when a saved document holds more than one operation).storageoption (defaults tolocalStorage), plusreadOnly,allowImportExport, andallowReplacefor governed deployments.To support this without the core depending on any specific plugin,
@graphiql/reactgains a save API:registerSaveHandler(handler)(⌘S and the Save button fan out to every registered handler plus theonSaveQueryprop, and the dirty-state affordance only appears when at least one is registered), theonSaveQuery(tab)prop withmarkTabSaved(tabId)for deferred saves, andGraphiQLPlugin.sessionActions, an always-mounted plugin slot for toolbar buttons, dialogs, or behavior registration. The dirty-state dot now means "a saved operation has unsaved edits" and survives a reload, so a tab that was never saved reads clean.Patch Changes
0f96193,1919f6a,b6f8dc6,d4f0268,c25bfd5,f8a9445,1ce71e4,f45e26b,827da62,df03c92,b6f8dc6,a0fe11a,b6f8dc6,093cb10,b6f8dc6]:@graphiql/plugin-code-exporter@5.1.3-alpha.0
Patch Changes
0f96193,1919f6a,b6f8dc6,d4f0268,c25bfd5,f8a9445,1ce71e4,f45e26b,827da62,df03c92,b6f8dc6,a0fe11a,b6f8dc6,093cb10,b6f8dc6]:@graphiql/plugin-query-builder@0.1.0-alpha.1
Patch Changes
#4352
f8a9445Thanks @trevor-scheer! - Add@graphiql/plugin-query-builder, a first-party visual query builder. It renders the schema's root types as a collapsible tree; checking a field adds it to the current operation and unchecking removes it, with the document parsed, mutated, and reprinted through thegraphqlpackage's AST utilities. Fields expose argument inputs (scalars, enums, lists, and input objects, including lists of input objects), scalar arguments can be promoted to variables, named fragments can be extracted from a field's selection and edited in place, and union/interface fields offer inline-fragment type-condition selectors.The query builder is default-installed in the
graphiqlmeta-package, so it is available with no extra setup.Updated dependencies [
0f96193,1919f6a,b6f8dc6,d4f0268,c25bfd5,f8a9445,1ce71e4,f45e26b,827da62,df03c92,b6f8dc6,a0fe11a,b6f8dc6,093cb10,b6f8dc6]:vscode-graphql-syntax@1.3.12-alpha.0
Patch Changes
bd73a95Thanks @glen-84! - Highlight GraphQL string values — including single-line and block (triple-quoted) strings in directive and field arguments, list items, and default values — as strings instead of comments. Descriptions are now scoped as documentation (comment.block.documentation/comment.line.documentation) so themes can style them distinctly while still defaulting to comment colors.