<feed xmlns='http://www.w3.org/2005/Atom'>
<title>eol/graphiql.git/source, branch primary</title>
<subtitle>GraphiQL with Svelte</subtitle>
<id>https://code.webb.page/eol/graphiql.git/atom?h=primary</id>
<link rel='self' href='https://code.webb.page/eol/graphiql.git/atom?h=primary'/>
<link rel='alternate' type='text/html' href='https://code.webb.page/eol/graphiql.git/'/>
<updated>2026-04-25T00:57:26+00:00</updated>
<entry>
<title>Push value prop changes into Editor's CodeMirror state</title>
<updated>2026-04-25T00:57:26+00:00</updated>
<author>
<name>netop://ウィビ</name>
<email>paul@webb.page</email>
</author>
<published>2026-04-25T00:57:26+00:00</published>
<link rel='alternate' type='text/html' href='https://code.webb.page/eol/graphiql.git/commit/?id=41eef08bc409ba2a5a49e7d785bd113da51bab23'/>
<id>urn:sha1:41eef08bc409ba2a5a49e7d785bd113da51bab23</id>
<content type='text'>
Editor read the value prop once at mount and never reconciled later
mutations into the CodeMirror doc. Result viewer never showed query
output, format button output never reached the editor, and history
loads stayed invisible. Add an effect that diffs the doc against the
incoming value and dispatches a replacement transaction when they
differ — guard against the user-typing echo by skipping when they
already match.
</content>
</entry>
<entry>
<title>Clear svelte-check warnings</title>
<updated>2026-04-24T23:41:18+00:00</updated>
<author>
<name>netop://ウィビ</name>
<email>paul@webb.page</email>
</author>
<published>2026-04-24T23:41:18+00:00</published>
<link rel='alternate' type='text/html' href='https://code.webb.page/eol/graphiql.git/commit/?id=85c05927989c712015ee82cea9b2917485a3f0e8'/>
<id>urn:sha1:85c05927989c712015ee82cea9b2917485a3f0e8</id>
<content type='text'>
- Splitter exposes aria-label/valuemin/valuemax/valuenow for screen
  readers; suppress the noninteractive-role lints since role=separator is
  legitimately interactive per WAI-ARIA but svelte-check uses a fixed
  role list
- Suppress state_referenced_locally on storage/namespace/initialQuery in
  GraphiQL.svelte — these are one-shot init props, not reactive inputs
</content>
</entry>
<entry>
<title>Migrate from Deno/JSR to npm publishing</title>
<updated>2026-04-24T23:37:49+00:00</updated>
<author>
<name>netop://ウィビ</name>
<email>paul@webb.page</email>
</author>
<published>2026-04-24T23:37:49+00:00</published>
<link rel='alternate' type='text/html' href='https://code.webb.page/eol/graphiql.git/commit/?id=c013ed57bf3d7dd83bd59a9b984d87aebde6003c'/>
<id>urn:sha1:c013ed57bf3d7dd83bd59a9b984d87aebde6003c</id>
<content type='text'>
- @sveltejs/package builds dist/ for @eeeooolll/graphiql with three entry
  points (./, ./component, ./splitter)
- Vitest + svelte-check replace Deno test/check; runes shim no longer
  needed since the Svelte plugin compiles .svelte.ts at runtime
- Drop $app/environment dep in Editor.svelte to support non-SvelteKit
  consumers
- Refactor TabBar tab element from nested &lt;button&gt; to role=tab &lt;div&gt; per
  PLAN.md gotcha; svelte-check flagged the invalid HTML
- README now documents npm install, integration patterns for Yoga,
  Apollo, graphql-modules, Hono/Bun/Deno, plus APQ + keyboard table
</content>
</entry>
<entry>
<title>Implement v0.6-1.0: shortcuts, format, export/import, splitter, timing, APQ</title>
<updated>2026-04-24T23:37:33+00:00</updated>
<author>
<name>netop://ウィビ</name>
<email>paul@webb.page</email>
</author>
<published>2026-04-24T23:37:33+00:00</published>
<link rel='alternate' type='text/html' href='https://code.webb.page/eol/graphiql.git/commit/?id=510fd8cbe53abb39cba2c7cbaaefcf2783dc0066'/>
<id>urn:sha1:510fd8cbe53abb39cba2c7cbaaefcf2783dc0066</id>
<content type='text'>
- v0.6: matchShortcut + format(); Cmd+Shift+Enter/W/F + Cmd+Alt+arrows
- v0.7: SessionStore.exportAll/importTabs with version-1 validator
- v0.8: Splitter component + four resize handles persisted under layout.*
- v0.10: createApqFetcher (HTTP-only) wrapping shared http-body helpers
- Drop .svelte re-exports from index.ts for multi-entry JSR/npm publishing
</content>
</entry>
<entry>
<title>Implement v0.4 subscriptions + v0.5 theming and plugin slots</title>
<updated>2026-04-24T21:17:38+00:00</updated>
<author>
<name>netop://ウィビ</name>
<email>paul@webb.page</email>
</author>
<published>2026-04-24T21:17:38+00:00</published>
<link rel='alternate' type='text/html' href='https://code.webb.page/eol/graphiql.git/commit/?id=261f3bdb77799009344aab4a60686b7186ebd3b0'/>
<id>urn:sha1:261f3bdb77799009344aab4a60686b7186ebd3b0</id>
<content type='text'>
- SSE and WebSocket fetchers via graphql-sse and graphql-ws,
  returning AsyncIterable results
- SessionStore.run consumes AsyncIterable streams with
  subscriptionMode "append" (timestamped) or "replace" and
  honors an AbortSignal for cancellation
- Chrome CSS variables documented in styles/theme.scss with
  prefers-color-scheme light/dark gating and .graphiql-light override
- Svelte 5 snippet slots on GraphiQL: toolbarExtras, tabExtras,
  resultFooter
</content>
</entry>
<entry>
<title>Initial commit: @eol/graphiql v0.3</title>
<updated>2026-04-24T18:33:25+00:00</updated>
<author>
<name>netop://ウィビ</name>
<email>paul@webb.page</email>
</author>
<published>2026-04-24T18:33:25+00:00</published>
<link rel='alternate' type='text/html' href='https://code.webb.page/eol/graphiql.git/commit/?id=8a59f92d031963e23ecc84b75feecf43eb4dd146'/>
<id>urn:sha1:8a59f92d031963e23ecc84b75feecf43eb4dd146</id>
<content type='text'>
Svelte 5 GraphiQL alternative for JSR. Covers:
- HTTP fetcher with injectable fetch; SSE/WS stubs
- Session store with tabs, auto-titling, persistence, rename
- Operation detection via graphql parse(); Toolbar picker
- CodeMirror 6 editor via cm6-graphql with theme prop
- Light theme preset (hand-rolled EditorView.theme)
- Doc explorer with breadcrumb nav and type guards
- History panel with 100-entry cap, favorite pinning
- Deno tests for operations, storage, and history eviction
</content>
</entry>
</feed>
