{"_id":"@angstroma/a11y-sdk","_rev":"2-c8581d6bafc7a8a507a1790c4939ddf9","name":"@angstroma/a11y-sdk","dist-tags":{"latest":"1.1.0"},"versions":{"1.0.0":{"name":"@angstroma/a11y-sdk","version":"1.0.0","keywords":["accessibility","a11y","wcag","react","sdk","angstroma"],"author":{"name":"Angstroma, Inc."},"license":"MIT","_id":"@angstroma/a11y-sdk@1.0.0","maintainers":[{"name":"angstroma","email":"admin@angstroma.com"}],"homepage":"https://angstroma.com","bugs":{"url":"https://angstroma.com/support"},"dist":{"shasum":"8c7e713799d9f079ac7a9af8614011056d94c245","tarball":"https://registry.npmjs.org/@angstroma/a11y-sdk/-/a11y-sdk-1.0.0.tgz","fileCount":31,"integrity":"sha512-IhtgaUfzJwn+ey/iTYVA04HZ0U2AqE79p903eIJYzCI15ZljS4r+WcbVpV7M7K8izjCYrqXD5b73AE+wA7dDRg==","signatures":[{"sig":"MEYCIQCzRjZpCRGnJBFYC8lxjUygGvl3Pyu7xOm73BK7jXbz3wIhANSFIxwnOwHCLXWhh/Q4fx1UO54D6UEgVoMNfIOn/VyZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2235083},"main":"./dist/index.cjs.js","types":"./dist/index.d.ts","module":"./dist/index.esm.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./ai":{"types":"./dist/ai.d.ts","import":"./dist/ai.esm.js","require":"./dist/ai.cjs.js"},"./vanilla":{"types":"./dist/vanilla.d.ts","import":"./dist/vanilla.esm.js","require":"./dist/vanilla.cjs.js"},"./features":{"types":"./dist/features.d.ts","import":"./dist/features.esm.js","require":"./dist/features.cjs.js"}},"gitHead":"700815125e204e5e597f50e85b9e3824c9d2d0ab","scripts":{"dev":"tsup --watch","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run typecheck && npm run build","build:with-portal-copy":"tsup && cp dist/widget.global.js ../../public/widget.js"},"_npmUser":{"name":"angstroma","email":"admin@angstroma.com"},"repository":{"url":"git+https://github.com/angstroma/angstroma-frontend.git","type":"git","directory":"packages/sdk"},"_npmVersion":"11.11.0","description":"Angstroma accessibility SDK — React components, vanilla JS API, and AI content transforms for WCAG compliance","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"preact":"^10.29.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","typescript":"^5","@types/react":"^19","@types/react-dom":"^19"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/a11y-sdk_1.0.0_1776367240056_0.2632225185238217","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@angstroma/a11y-sdk","version":"1.1.0","description":"Angstroma accessibility SDK — React components, vanilla JS API, and AI content transforms for WCAG compliance","license":"MIT","homepage":"https://angstroma.com","repository":{"type":"git","url":"git+https://github.com/angstroma/angstroma-frontend.git","directory":"packages/sdk"},"bugs":{"url":"https://angstroma.com/support"},"author":{"name":"Angstroma, Inc."},"publishConfig":{"access":"public"},"main":"./dist/index.cjs.js","module":"./dist/index.esm.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.cjs.js"},"./vanilla":{"types":"./dist/vanilla.d.ts","import":"./dist/vanilla.esm.js","require":"./dist/vanilla.cjs.js"},"./features":{"types":"./dist/features.d.ts","import":"./dist/features.esm.js","require":"./dist/features.cjs.js"},"./ai":{"types":"./dist/ai.d.ts","import":"./dist/ai.esm.js","require":"./dist/ai.cjs.js"}},"scripts":{"build":"tsup","build:with-portal-copy":"tsup && cp dist/widget.global.js ../../public/widget.js","dev":"tsup --watch","typecheck":"tsc --noEmit","test":"vitest run","test:wcag":"vitest run tests/verifiedToolsInvariants.test.ts","test:wcag:matrix":"tsx tests/generateWcagTestMatrix.ts","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","prepublishOnly":"npm run clean && npm run typecheck && npm run test && npm run build"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":true},"react-dom":{"optional":true}},"devDependencies":{"@types/react":"^19","@types/react-dom":"^19","jsdom":"^29.0.2","tsup":"^8.4.0","typescript":"^5","vitest":"^4.1.4"},"sideEffects":false,"keywords":["accessibility","a11y","wcag","react","sdk","angstroma"],"dependencies":{"preact":"^10.29.1"},"gitHead":"628dd7177aa564a3df6d5ecdb1a8f98cfc73b741","_id":"@angstroma/a11y-sdk@1.1.0","_nodeVersion":"24.13.0","_npmVersion":"11.11.0","dist":{"integrity":"sha512-NV+fktKkYcz6yTnwhzRiuzx4HDwdjsdBWK+lnVetpQBSxZN6A2UUumbFK3qP72n8E0ZSsmDEZaMOpop/4Z6P3g==","shasum":"2ab90c7ad067097e1207b6fa88831b5252120e5d","tarball":"https://registry.npmjs.org/@angstroma/a11y-sdk/-/a11y-sdk-1.1.0.tgz","fileCount":31,"unpackedSize":4080201,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDr7kFm5br4QEObnM5hsT/6wnZp/mpQGUfk0nQdanKW4AIhAMChrVOnjVXgd4w5PxqeeTw4NRfH8TUb7rynIRqQzGRz"}]},"_npmUser":{"name":"angstroma","email":"admin@angstroma.com"},"directories":{},"maintainers":[{"name":"angstroma","email":"admin@angstroma.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/a11y-sdk_1.1.0_1779460040051_0.2770652766508983"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-16T19:20:39.949Z","modified":"2026-05-22T14:27:20.342Z","1.0.0":"2026-04-16T19:20:40.266Z","1.1.0":"2026-05-22T14:27:20.236Z"},"bugs":{"url":"https://angstroma.com/support"},"author":{"name":"Angstroma, Inc."},"license":"MIT","homepage":"https://angstroma.com","keywords":["accessibility","a11y","wcag","react","sdk","angstroma"],"repository":{"type":"git","url":"git+https://github.com/angstroma/angstroma-frontend.git","directory":"packages/sdk"},"description":"Angstroma accessibility SDK — React components, vanilla JS API, and AI content transforms for WCAG compliance","maintainers":[{"name":"angstroma","email":"admin@angstroma.com"}],"readme":"# @angstroma/a11y-sdk\n\nProgrammatic accessibility SDK for WCAG compliance — React components, vanilla JS API, and AI-powered content transforms.\n\n**Widget themes:** four visual themes (`classic`, `smart-card`, `simple`, `industry-standard`). The tenant picks one in the Angstroma portal (`/integration → Widget appearance`); the SDK receives the chosen theme via `/widget/plan-features` and applies it at mount. Visitor-level tools (dark mode, high contrast, reduced motion, etc.) remain functional inside every theme — themes swap chrome, not behaviour. See `src/widget/themes.ts`.\n\n**Two ways to install Angstroma on your site — pick one:**\n\n| Option | Best for | Install |\n|--------|----------|---------|\n| **CDN script tag** | Static sites, CMS platforms, quickest integration | `<script src=\"https://cdn.angstroma.com/widget.js\" data-key=\"YOUR_KEY\"></script>` |\n| **npm SDK (this package)** | React/Vue/Angular apps, custom UI, AI transforms, per-user presets | `npm install @angstroma/a11y-sdk` |\n\nFull docs: <https://angstroma.com/docs>\n\n---\n\n## Install\n\n```bash\nnpm install @angstroma/a11y-sdk\n# or\npnpm add @angstroma/a11y-sdk\n# or\nyarn add @angstroma/a11y-sdk\n```\n\nGet a publishable API key from the [Angstroma dashboard](https://angstroma.com) → *API Keys*.\n\n---\n\n## Quick start — React\n\n```tsx\nimport { A11yProvider, A11yToolbar } from '@angstroma/a11y-sdk';\n\nexport default function App() {\n  return (\n    <A11yProvider apiKey={process.env.NEXT_PUBLIC_ANGSTROMA_KEY!}>\n      <YourApp />\n      <A11yToolbar position=\"bottom-right\" />\n    </A11yProvider>\n  );\n}\n```\n\nAccess the engine from any component:\n\n```tsx\nimport { useA11y } from '@angstroma/a11y-sdk';\n\nfunction FontSizeToggle() {\n  const { enable, disable, toggle, applyPreset } = useA11y();\n  return <button onClick={() => toggle('text-zoom')}>Bigger text</button>;\n}\n```\n\n## Quick start — Vanilla JS (no React)\n\n```html\n<script type=\"module\">\n  import { AngstromaA11y } from 'https://unpkg.com/@angstroma/a11y-sdk/dist/vanilla.esm.js';\n\n  const a11y = new AngstromaA11y({ apiKey: 'YOUR_KEY' });\n  await a11y.init();\n  a11y.enable('contrast');\n  a11y.applyPreset('dyslexia-friendly');\n</script>\n```\n\n## AI content transforms\n\n```ts\nimport { simplify, generateAltText, getHints } from '@angstroma/a11y-sdk';\n\nconst simpler = await simplify(client, { text, targetLevel: 'grade-5' });\nconst alt = await generateAltText(client, { imageUrl });\nconst hints = await getHints(client, { question, answer, gradeLevel: 8 });\n```\n\nFull AI reference: <https://angstroma.com/docs/ai-module>\n\n---\n\n## What's included\n\n| Category | Exports |\n|----------|---------|\n| **React components** | `A11yProvider`, `A11yToolbar`, `A11yReader`, `A11yPresetBar`, `A11yQuizToolbar` |\n| **React hook** | `useA11y()` |\n| **Vanilla JS** | `AngstromaA11y` class |\n| **AI module** | `simplify`, `rephrase`, `generateAltText`, `getHints`, `extractVocabulary`, `checkGrammar`, `extractImageText`, `summarize`, `translate` |\n| **Features (headless)** | `enableFeature`, `disableFeature`, `applyFeatureSet`, `disableAllFeatures` |\n| **Feature appliers** | `bionicReading`, `contrast`, `focusHighlight`, `fontSwap`, `largeCursor`, `largeTargets`, `readingMask`, `reducedMotion`, `textSpacing`, `textZoom`, `tts` |\n| **Profile management** | `ProfileManager`, `applyFeatureSet` |\n| **i18n** | `setLocale`, `getLocale`, `registerLocale`, `isRtl`, `t` |\n| **Error class** | `A11yApiError` |\n\n---\n\n## Subpath imports\n\nTree-shake by importing only what you need:\n\n```ts\nimport { simplify } from '@angstroma/a11y-sdk/ai';           // AI only (~1.5 KB)\nimport { AngstromaA11y } from '@angstroma/a11y-sdk/vanilla'; // Vanilla only (no React)\nimport { contrast } from '@angstroma/a11y-sdk/features';     // Feature appliers only\n```\n\n---\n\n## Requirements\n\n- **React (optional):** 18.0 or newer. Vanilla usage works without React.\n- **Node.js:** 18.0+ for build-time tools. No Node at runtime (browser-only).\n- **Browsers:** evergreen (Chrome, Edge, Firefox, Safari). No IE 11.\n\n---\n\n## Links\n\n- Dashboard & API keys: <https://angstroma.com>\n- Docs: <https://angstroma.com/docs>\n- SDK reference: <https://angstroma.com/docs/sdk>\n- Support: <https://angstroma.com/support>\n- Status: <https://angstroma.com/status>\n\n## License\n\nMIT © Angstroma, Inc.\n","readmeFilename":"README.md"}