Files
metabuilder/dbal/development/package.json
johndoe6345789 bb17f395fe feat: complete fakemui accessibility integration with data-testid and ARIA
Complete implementation of accessibility utilities across fakemui components:

**New Files**:
- src/utils/accessibility.ts - Core accessibility utilities (moved from legacy)
- src/utils/accessibility.module.scss - Accessibility SCSS styles
- src/utils/useAccessible.ts - React hooks for accessibility:
  * useAccessible() - Generate test IDs and ARIA attributes
  * useKeyboardNavigation() - Handle keyboard events
  * useFocusManagement() - Programmatic focus control
  * useLiveRegion() - Screen reader announcements
  * useFocusTrap() - Focus trapping for modals

**Component Updates**:
- Button.tsx - Added data-testid and ARIA support via useAccessible hook
- TextField.tsx - Added data-testid, aria-invalid, aria-describedby support

**Documentation**:
- docs/ACCESSIBILITY_INTEGRATION.md - Complete integration guide with examples

**Features**:
- 50+ preset test ID generators (form, canvas, settings, navigation, etc.)
- ARIA attribute patterns for buttons, toggles, dialogs, tabs, live regions
- Keyboard navigation helpers (Enter, Escape, Arrow keys, Tab)
- Accessibility validators (hasLabel, isKeyboardAccessible, etc.)
- Fully typed TypeScript with AccessibilityFeature, Component, Action types

All components now support reliable testing via data-testid and screen reader access via ARIA attributes.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-23 17:25:48 +00:00

57 lines
1.8 KiB
JSON

{
"name": "@metabuilder/dbal",
"version": "1.0.0",
"description": "Database Abstraction Layer for MetaBuilder",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"type": "module",
"scripts": {
"build": "tsc",
"dev": "tsc --watch",
"test": "vitest",
"test:unit": "vitest run --coverage",
"test:integration": "vitest run --config vitest.integration.config.ts",
"test:conformance": "tsx tests/conformance/runner.ts",
"lint": "eslint src/**/*.ts",
"format": "prettier --write src/**/*.ts",
"codegen": "tsx ../shared/tools/codegen/gen_types.ts",
"codegen:prisma": "node ../shared/tools/codegen/gen_prisma_schema.js",
"generate-types": "node ../shared/tools/codegen/generate-types.js",
"db:generate": "prisma generate --schema=../shared/prisma/schema.prisma",
"db:push": "prisma db push --schema=../shared/prisma/schema.prisma",
"db:migrate": "prisma migrate deploy --schema=../shared/prisma/schema.prisma",
"db:studio": "prisma studio --schema=../shared/prisma/schema.prisma"
},
"keywords": [
"database",
"abstraction",
"orm",
"prisma",
"sqlite",
"security"
],
"author": "MetaBuilder Contributors",
"license": "MIT",
"dependencies": {
"@aws-sdk/client-s3": "^3.743.0",
"@aws-sdk/lib-storage": "^3.743.0",
"@aws-sdk/s3-request-presigner": "^3.743.0",
"@prisma/adapter-better-sqlite3": "^7.3.0",
"@prisma/client": "^7.3.0",
"better-sqlite3": "^12.5.0",
"dotenv": "^17.2.3",
"prisma": "^7.3.0",
"yaml": "^2.8.2",
"zod": "^4.3.5"
},
"devDependencies": {
"@types/node": "^22.10.5",
"@vitest/coverage-v8": "^4.0.16",
"eslint": "^9.41.0",
"prettier": "^3.4.2",
"tsx": "^4.21.0",
"typescript": "^5.9.3",
"vitest": "^4.0.16"
}
}