{"_id":"@abseed/spectra-web-lib","_rev":"6-845f09aa90c6a124f0ac2ad8a2965380","name":"@abseed/spectra-web-lib","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.0":{"name":"@abseed/spectra-web-lib","version":"0.1.0","keywords":["spectra","spec-driven","glossary","react","components"],"author":{"name":"Luke Pezet"},"license":"Apache-2.0","_id":"@abseed/spectra-web-lib@0.1.0","maintainers":[{"name":"lpezet-lp","email":"lpezet@gmail.com"}],"homepage":"https://github.com/lpezet/spectra/tree/main/packages/web-lib","bugs":{"url":"https://github.com/lpezet/spectra/issues"},"dist":{"shasum":"5d3ca5622bb87be65eb68cae667bdd32245c467c","tarball":"https://registry.npmjs.org/@abseed/spectra-web-lib/-/spectra-web-lib-0.1.0.tgz","fileCount":27,"integrity":"sha512-cCE0y5rx6UETn5LNQeEON/nuX8zREG1Z4BswshJXk+gjkJOFQXOyuthPFsj6qQ7rTnfWevVSPJrK1j3Ttrd2zw==","signatures":[{"sig":"MEYCIQC/3KXmB6hvbrqVnW4CLfi9i/OgIAeroolj4Bbgaw+iIgIhAJYOZzkZfdFmETUcke6DG3U+CTaYJtS2YS1B+Z1bdT6N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158313},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles.css"},"_npmUser":{"name":"lpezet-lp","email":"lpezet@gmail.com"},"repository":{"url":"git+https://github.com/lpezet/spectra.git","type":"git","directory":"packages/web-lib"},"_npmVersion":"10.9.2","description":"The reusable spec-tool UI: presentational components, transport-injected glossary behavior, and the chat subsystem.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.13.0","dependencies":{"@abseed/spectra-core":"^0.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/spectra-web-lib_0.1.0_1789096336546_0.15837363005359495","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@abseed/spectra-web-lib","version":"0.1.1","keywords":["spectra","spec-driven","glossary","react","components"],"author":{"name":"Luke Pezet"},"license":"Apache-2.0","_id":"@abseed/spectra-web-lib@0.1.1","maintainers":[{"name":"lpezet-lp","email":"lpezet@gmail.com"}],"homepage":"https://github.com/lpezet/spectra/tree/main/packages/web-lib","bugs":{"url":"https://github.com/lpezet/spectra/issues"},"dist":{"shasum":"e067f3196851bb396f1b4fc772ba7ddd9ee7e391","tarball":"https://registry.npmjs.org/@abseed/spectra-web-lib/-/spectra-web-lib-0.1.1.tgz","fileCount":27,"integrity":"sha512-0wZxPxs1BDwkw5/bWpUxNwxZSYoy5jKmJHXoJXlOm2G4oTLxWS6GZCcaj9mY5eykNTvv+Ms9OWjmkrM9dWiPbQ==","signatures":[{"sig":"MEYCIQCUgTXEIOMUnJCp47ZZAR6ApJIrh69lhyRf8QUGSEse0gIhALIwy/ybcza6sKP1q+O12DNgFO14j1LcgXf02SPRa2pn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158311},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles.css"},"_npmUser":{"name":"lpezet-lp","email":"lpezet@gmail.com"},"repository":{"url":"git+https://github.com/lpezet/spectra.git","type":"git","directory":"packages/web-lib"},"_npmVersion":"10.9.2","description":"The reusable spec-tool UI: presentational components, transport-injected glossary behavior, and the chat subsystem.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.13.0","dependencies":{"@abseed/spectra-core":"^0.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/spectra-web-lib_0.1.1_1789160090639_0.2804599797368894","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@abseed/spectra-web-lib","version":"0.1.2","keywords":["spectra","spec-driven","glossary","react","components"],"author":{"name":"Luke Pezet"},"license":"Apache-2.0","_id":"@abseed/spectra-web-lib@0.1.2","maintainers":[{"name":"lpezet-lp","email":"lpezet@gmail.com"}],"homepage":"https://github.com/lpezet/spectra/tree/main/packages/web-lib","bugs":{"url":"https://github.com/lpezet/spectra/issues"},"dist":{"shasum":"47e095686d7df432c72bec129693810bb5640d9f","tarball":"https://registry.npmjs.org/@abseed/spectra-web-lib/-/spectra-web-lib-0.1.2.tgz","fileCount":27,"integrity":"sha512-rdXBlyHbw8qqUlzNFK7ucSuOWgFzO9Gxd7ILwulR8nEFjUbhWU5zJdJmkPOn0jDLYBwbyma3+is/hChDQ/YSzA==","signatures":[{"sig":"MEYCIQCAFCxkMafkdGpopF6u7yDYdzOiRQbLFDPX2CCQ3rlnEAIhAMsEvF3Q/PNFjfsVYaeoEswqMJWzY5yfbI75m47/jBFs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":158564},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles.css"},"_npmUser":{"name":"lpezet-lp","email":"lpezet@gmail.com"},"repository":{"url":"git+https://github.com/lpezet/spectra.git","type":"git","directory":"packages/web-lib"},"_npmVersion":"10.9.2","description":"The reusable spec-tool UI: presentational components, transport-injected glossary behavior, and the chat subsystem.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.13.0","dependencies":{"@abseed/spectra-core":"^0.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/spectra-web-lib_0.1.2_1789164901456_0.9116363958139444","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@abseed/spectra-web-lib","version":"0.1.3","keywords":["spectra","spec-driven","glossary","react","components"],"author":{"name":"Luke Pezet"},"license":"Apache-2.0","_id":"@abseed/spectra-web-lib@0.1.3","maintainers":[{"name":"lpezet-lp","email":"lpezet@gmail.com"}],"homepage":"https://github.com/lpezet/spectra/tree/main/packages/web-lib","bugs":{"url":"https://github.com/lpezet/spectra/issues"},"dist":{"shasum":"2705ae2bef8a947479f49a50faa321c642149090","tarball":"https://registry.npmjs.org/@abseed/spectra-web-lib/-/spectra-web-lib-0.1.3.tgz","fileCount":27,"integrity":"sha512-BZwsKN4P8alONLQwC/Y9vP9AoFJndcR/4ZrBcAYvIDLtfImSshpHWE6A7agi1BdG9VBkGUN/f5+qbW25pAHyrQ==","signatures":[{"sig":"MEYCIQDeijEqccSySxHH+bMTflKRCA7ipDfcacNRQwNMBpRgUQIhAKkj9yG+nnyJd4/DpFZfbRwbmdSD1WrVoihYDiDXbhe9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abseed%2fspectra-web-lib@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":159828},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles.css"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52e3bda0-085c-451b-af3c-e8141ae0e3bc"}},"repository":{"url":"git+https://github.com/lpezet/spectra.git","type":"git","directory":"packages/web-lib"},"_npmVersion":"12.0.2","description":"The reusable spec-tool UI: presentational components, transport-injected glossary behavior, and the chat subsystem.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.23.2","dependencies":{"@abseed/spectra-core":"^0.1.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/spectra-web-lib_0.1.3_1789177166395_0.3699633601460013","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@abseed/spectra-web-lib","version":"0.1.4","keywords":["spectra","spec-driven","glossary","react","components"],"author":{"name":"Luke Pezet"},"license":"Apache-2.0","_id":"@abseed/spectra-web-lib@0.1.4","maintainers":[{"name":"lpezet-lp","email":"lpezet@gmail.com"}],"homepage":"https://github.com/ABSeedAI/spectra/tree/main/packages/web-lib","bugs":{"url":"https://github.com/ABSeedAI/spectra/issues"},"dist":{"shasum":"32eacb38827cde97d6dff081bc97e8e797deb6f4","tarball":"https://registry.npmjs.org/@abseed/spectra-web-lib/-/spectra-web-lib-0.1.4.tgz","fileCount":27,"integrity":"sha512-GS3wXzdtwbktmBEPvD5HDStBWWHXC9FqhiREuvRrWSutIJMexB+hhoQ2am8HVC/2yVAj4drnSEMnhiXi4koOlg==","signatures":[{"sig":"MEUCIQD3mTs6LalPvwFsq9PSPsuk35KD7Nf0ejle8ZuPyY81egIgWeel6nj2iDrWIJZ+o17FoUNZ6BjO//1IRCaScj+HdZ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abseed%2fspectra-web-lib@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":161012},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles.css"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:072b48ca-a70f-4851-a76f-839f86ac19e2"}},"repository":{"url":"git+https://github.com/ABSeedAI/spectra.git","type":"git","directory":"packages/web-lib"},"_npmVersion":"12.0.2","description":"The reusable spec-tool UI: presentational components, transport-injected glossary behavior, and the chat subsystem.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.23.2","dependencies":{"@abseed/spectra-core":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"_npmOperationalInternal":{"tmp":"tmp/spectra-web-lib_0.1.4_1789529065419_0.6047359230088065","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@abseed/spectra-web-lib","version":"0.1.5","description":"The reusable spec-tool UI: presentational components, transport-injected glossary behavior, and the chat subsystem.","license":"Apache-2.0","author":{"name":"Luke Pezet"},"homepage":"https://github.com/ABSeedAI/spectra/tree/main/packages/web-lib","repository":{"type":"git","url":"git+https://github.com/ABSeedAI/spectra.git","directory":"packages/web-lib"},"keywords":["spectra","spec-driven","glossary","react","components"],"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles.css":"./dist/styles.css"},"sideEffects":["**/*.css"],"dependencies":{"@abseed/spectra-core":"^0.2.0"},"peerDependencies":{"react":"^18.3.1","react-dom":"^18.3.1"},"publishConfig":{"access":"public"},"_id":"@abseed/spectra-web-lib@0.1.5","bugs":{"url":"https://github.com/ABSeedAI/spectra/issues"},"_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-m7F4mQyl8yJf0ZiXM6pdbKVnK3XLsFEo4X4GReO7mr+PQAaR6xicx0dSV2eIfphltAbRmfXT3iw3D8sy9ilElQ==","shasum":"550ed54aac5e9fca931a31f50444923a831c9d58","tarball":"https://registry.npmjs.org/@abseed/spectra-web-lib/-/spectra-web-lib-0.1.5.tgz","fileCount":27,"unpackedSize":161070,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@abseed%2fspectra-web-lib@0.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD0OJX6jQQNgzToXoUMiBHSN+pEWXTPRyhrjktRL3YXDgIhAJ+567FUGVBowjOFm6ulIffxJH4CUMpYG62M5G9QWsJ6"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:072b48ca-a70f-4851-a76f-839f86ac19e2"}},"directories":{},"maintainers":[{"name":"lpezet-lp","email":"lpezet@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/spectra-web-lib_0.1.5_1789529953944_0.2357640102963241"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-11T03:12:16.377Z","modified":"2026-09-16T03:39:14.426Z","0.1.0":"2026-09-11T03:12:16.690Z","0.1.1":"2026-09-11T20:54:50.774Z","0.1.2":"2026-09-11T22:15:01.615Z","0.1.3":"2026-09-12T01:39:26.538Z","0.1.4":"2026-09-16T03:24:25.570Z","0.1.5":"2026-09-16T03:39:14.078Z"},"bugs":{"url":"https://github.com/ABSeedAI/spectra/issues"},"author":{"name":"Luke Pezet"},"license":"Apache-2.0","homepage":"https://github.com/ABSeedAI/spectra/tree/main/packages/web-lib","keywords":["spectra","spec-driven","glossary","react","components"],"repository":{"type":"git","url":"git+https://github.com/ABSeedAI/spectra.git","directory":"packages/web-lib"},"description":"The reusable spec-tool UI: presentational components, transport-injected glossary behavior, and the chat subsystem.","maintainers":[{"name":"lpezet-lp","email":"lpezet@gmail.com"}],"readme":"# @abseed/spectra-web-lib\n\nThe reusable half of the Spectra spec-tool UI: the presentational React components, the\ntransport-injected glossary behavior (`useGlossary`), and the chat subsystem — everything a host\ncomposes into its own shell.\n\nNothing here reaches for a `fetch` of its own. The behavior depends only on a `GlossaryTransport`\ninterface, so the same flows (bootstrap, project selection, the commit/answer/expectation cycle) run\nagainst any backend a host implements. The components take data and callbacks as props. The chat\nsubsystem's live half (send, approve, stream) is swapped with `setChatTransport`; its static reads are\nsame-origin REST a host serves.\n\n```tsx\nimport { useGlossary, TermList, TermDetail, type GlossaryTransport } from '@abseed/spectra-web-lib'\nimport '@abseed/spectra-web-lib/styles.css'\n\nconst transport: GlossaryTransport = {\n  /* fetchGlossary, applyChangeset, … — one implementation per backend */\n}\n\nfunction Shell() {\n  const g = useGlossary(transport)\n  // lay the pieces out however this host wants\n}\n```\n\n`react` and `react-dom` are peer dependencies — the host brings its single copy.\n\nApache-2.0.\n","readmeFilename":"README.md"}