{"_id":"@angstroma/ng-a11y-sdk","_rev":"2-488e898ed2e054e1c946294bb890f2d5","name":"@angstroma/ng-a11y-sdk","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@angstroma/ng-a11y-sdk","version":"1.0.0","keywords":["accessibility","a11y","wcag","angular","ngx","sdk","angstroma"],"author":{"name":"Angstroma, Inc."},"license":"MIT","_id":"@angstroma/ng-a11y-sdk@1.0.0","maintainers":[{"name":"angstroma","email":"admin@angstroma.com"}],"homepage":"https://angstroma.com","bugs":{"url":"https://angstroma.com/support"},"dist":{"shasum":"683dcc1e3683745b57f8a60d74f774ebb6006904","tarball":"https://registry.npmjs.org/@angstroma/ng-a11y-sdk/-/ng-a11y-sdk-1.0.0.tgz","fileCount":8,"integrity":"sha512-TWnRKMx4SoY+Cq2ZQPp/egAPMTdJtQUzJRTkbsR4tNiXxraBn3gAAk8RNd249Mq5n+RjTG+m9BcTOu6xt1+xNw==","signatures":[{"sig":"MEUCIQDQ9zJ2l/dlqHjzFudJbaaNcR5lcaBnk1XUXrsfz9QihAIget/gBIyq5A/2RyP/bv0H+lA4/qyZjiZu75qcIpT6xiE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54073},"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"}},"gitHead":"700815125e204e5e597f50e85b9e3824c9d2d0ab","scripts":{"build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit","prepublishOnly":"npm run clean && npm run typecheck && npm run build"},"_npmUser":{"name":"angstroma","email":"admin@angstroma.com"},"repository":{"url":"git+https://github.com/angstroma/angstroma-frontend.git","type":"git","directory":"packages/ng-sdk"},"_npmVersion":"11.11.0","description":"Angular wrapper for the Angstroma accessibility SDK — Injectable service + standalone-friendly module for WCAG compliance in Angular apps","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"rxjs":"^7.8.2","tsup":"^8.4.0","zone.js":"^0.14.10","typescript":"^5.0.0","@angular/core":"^17.3.12","@angular/common":"^17.3.12","@angstroma/a11y-sdk":"^1.0.0"},"peerDependencies":{"rxjs":">=7.0.0","@angular/core":">=15.0.0","@angular/common":">=15.0.0","@angstroma/a11y-sdk":">=1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ng-a11y-sdk_1.0.0_1776368597609_0.7825671105533443","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@angstroma/ng-a11y-sdk","version":"1.0.1","description":"Angular wrapper for the Angstroma accessibility SDK — Injectable service + standalone-friendly module for WCAG compliance in Angular apps","license":"MIT","homepage":"https://angstroma.com","repository":{"type":"git","url":"git+https://github.com/angstroma/angstroma-frontend.git","directory":"packages/ng-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"}},"scripts":{"build":"tsup","typecheck":"tsc --noEmit","clean":"rm -rf dist","prepublishOnly":"npm run clean && npm run typecheck && npm run build"},"peerDependencies":{"@angstroma/a11y-sdk":">=1.0.0","@angular/common":">=15.0.0","@angular/core":">=15.0.0","rxjs":">=7.0.0"},"devDependencies":{"@angstroma/a11y-sdk":"^1.0.0","@angular/common":"^17.3.12","@angular/core":"^17.3.12","rxjs":"^7.8.2","tsup":"^8.4.0","typescript":"^5.0.0","zone.js":"^0.14.10"},"sideEffects":false,"keywords":["accessibility","a11y","wcag","angular","ngx","sdk","angstroma"],"gitHead":"700815125e204e5e597f50e85b9e3824c9d2d0ab","_id":"@angstroma/ng-a11y-sdk@1.0.1","_nodeVersion":"24.13.0","_npmVersion":"11.11.0","dist":{"integrity":"sha512-70gbYNaZK4wbKsbtJCPk/KU/lHRK0OsHoXq4Yxv7dwkGiT4iBS+hamuk7GFiddg2BwJIJhwZ2KgKaS21axrTRQ==","shasum":"91995a2694b5d1f18b06d04af01acad7e8ac7d9e","tarball":"https://registry.npmjs.org/@angstroma/ng-a11y-sdk/-/ng-a11y-sdk-1.0.1.tgz","fileCount":8,"unpackedSize":52661,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCajkLyYUqcEf3nMsA8eKXP9AidZJNI1+KKsGxqzAbr1AIgGqzxUebzBi6dmL1NPM7QNm5u51A4PpEBCu1/i7XDtAY="}]},"_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/ng-a11y-sdk_1.0.1_1776369353808_0.38819269816073754"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-16T19:43:17.536Z","modified":"2026-04-16T19:55:54.040Z","1.0.0":"2026-04-16T19:43:17.768Z","1.0.1":"2026-04-16T19:55:53.944Z"},"bugs":{"url":"https://angstroma.com/support"},"author":{"name":"Angstroma, Inc."},"license":"MIT","homepage":"https://angstroma.com","keywords":["accessibility","a11y","wcag","angular","ngx","sdk","angstroma"],"repository":{"type":"git","url":"git+https://github.com/angstroma/angstroma-frontend.git","directory":"packages/ng-sdk"},"description":"Angular wrapper for the Angstroma accessibility SDK — Injectable service + standalone-friendly module for WCAG compliance in Angular apps","maintainers":[{"name":"angstroma","email":"admin@angstroma.com"}],"readme":"# @angstroma/ng-a11y-sdk\n\nAngular wrapper for the [Angstroma](https://angstroma.com) accessibility SDK — a single injectable service that adds 112 WCAG 2.2 features (contrast, text zoom, dyslexia font, screen reader, and more) to your Angular app.\n\n---\n\n## Install\n\n```bash\nnpm install @angstroma/ng-a11y-sdk @angstroma/a11y-sdk\n```\n\nGet a publishable API key from the [Angstroma dashboard](https://app.angstroma.com).\n\n---\n\n## Quick start (standalone — Angular 16+)\n\n```ts\n// app.config.ts\nimport { ApplicationConfig } from '@angular/core';\nimport { provideAngstroma } from '@angstroma/ng-a11y-sdk';\n\nexport const appConfig: ApplicationConfig = {\n  providers: [\n    provideAngstroma({\n      apiKey: 'pk_live_...',\n      // optional:\n      // studentId: currentUser.id,\n      // autoMount: true,\n    }),\n  ],\n};\n```\n\n```ts\n// any.component.ts\nimport { Component, inject } from '@angular/core';\nimport { AngstromaService } from '@angstroma/ng-a11y-sdk';\n\n@Component({\n  selector: 'app-a11y-toolbar',\n  standalone: true,\n  template: `\n    <button (click)=\"a11y.toggle('contrast')\">Toggle contrast</button>\n    <button (click)=\"a11y.applyPreset('dyslexia-friendly')\">Dyslexia mode</button>\n    <p>Active: {{ (a11y.enabledFeatures$ | async)?.join(', ') }}</p>\n  `,\n})\nexport class A11yToolbarComponent {\n  protected readonly a11y = inject(AngstromaService);\n}\n```\n\n## Quick start (NgModule)\n\n```ts\n// app.module.ts\nimport { AngstromaModule } from '@angstroma/ng-a11y-sdk';\n\n@NgModule({\n  imports: [\n    AngstromaModule.forRoot({ apiKey: 'pk_live_...' }),\n  ],\n})\nexport class AppModule {}\n```\n\n---\n\n## API\n\n### `AngstromaService`\n\n| Member | Description |\n|--------|-------------|\n| `ready$: Observable<boolean>` | Emits `true` once the SDK is mounted. |\n| `enabledFeatures$: Observable<string[]>` | Emits the current list of enabled feature codes whenever it changes. |\n| `enable(code, value?)` | Turn on a feature. |\n| `disable(code)` | Turn off a feature. |\n| `toggle(code, value?)` | Flip a feature's state. |\n| `isEnabled(code)` | Returns a boolean. |\n| `getEnabledFeatures()` | Returns `string[]`. |\n| `applyPreset(presetCode)` | Apply a named preset — returns `Promise<void>`. |\n| `getPresets()` | List available presets — returns `Promise<Preset[]>`. |\n| `save()` | Persist current state to the API. |\n| `reset()` | Turn every feature off. |\n| `destroy()` | Unmount and release resources. |\n| `init(config)` | Manually initialize when config comes from a runtime fetch. |\n| `instance` | The underlying vanilla `AngstromaA11y` instance (advanced). |\n\n### AI content transforms\n\n```ts\nawait a11y.simplify(text, 5);                              // grade-5 reading level\nawait a11y.getHints(question, answer, { gradeLevel: 8 });\nawait a11y.generateAltText(imageUrl);\nawait a11y.rephrase(question, answer, 8);\nawait a11y.extractVocabulary(text, 8);\n```\n\nFull AI reference: <https://angstroma.com/docs/ai-module>\n\n---\n\n## Configuration\n\n```ts\ninterface AngstromaConfig {\n  apiKey: string;                 // required\n  apiUrl?: string;                // default: https://api.angstroma.com/api/v1\n  studentId?: string;             // for profile persistence\n  autoMount?: boolean;            // default: true\n  mountTarget?: string | HTMLElement;  // default: document.body\n}\n\n// For i18n, import setLocale from @angstroma/a11y-sdk directly:\n//   import { setLocale } from '@angstroma/a11y-sdk';\n//   setLocale('es');\n```\n\n---\n\n## Requirements\n\n- **Angular:** 15.0+ (tested through 17)\n- **RxJS:** 7.0+\n- **Peer:** `@angstroma/a11y-sdk` (installed separately)\n\n---\n\n## Links\n\n- Dashboard & API keys: <https://app.angstroma.com>\n- Docs: <https://angstroma.com/docs>\n- Support: <https://angstroma.com/support>\n\n## License\n\nMIT © Angstroma, Inc.\n","readmeFilename":"README.md"}