diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 56bd851..db52271 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,7 +12,7 @@ name: Release (npm publish) # distinct, ordered jobs. Publication only runs if everything before # it passed. # - Uses pnpm for the workspace release so `workspace:*` specifiers are -# rewritten to concrete versions (1.0.0) in the published tarballs. +# rewritten to concrete versions (1.0.1) in the published tarballs. # - Least-privilege GitHub permissions; `id-token: write` is granted # only to the publish job that actually needs OIDC. # @@ -30,9 +30,9 @@ on: workflow_dispatch: inputs: release_tag: - description: "Release tag/version to validate against (e.g. 1.0.0). Must match every publishable package version." + description: "Release tag/version to validate against (e.g. 1.0.1). Must match every publishable package version." required: true - default: "1.0.0" + default: "1.0.1" dry_run: description: "Dry run only (pack + publish --dry-run, no upload)." type: boolean @@ -76,7 +76,7 @@ jobs: - name: Verify workspace resolution run: pnpm list --recursive --depth=0 - - name: Validate package metadata (19 packages @ 1.0.0) + - name: Validate package metadata (19 packages @ 1.0.1) run: node scripts/ci-validate-packages.js - name: Verify requested release tag matches package versions diff --git a/CHANGELOG.md b/CHANGELOG.md index e76e7ae..804c4f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,20 @@ All notable changes to WaysNX UI Kit are documented in this file. The project follows [Semantic Versioning](https://semver.org/). -For the initial public release, the WaysNX UI Kit packages are being released as version `1.0.0`. +--- + +## [1.0.1] — 2026-09-10 + +### Added +- **LLM.md AI agent integration guides** for all 19 packages with structured exports, TypeScript interfaces, usage examples, and integration notes optimized for AI code generation +- AI agent callout section in all package README.md files pointing to LLM.md + +### Changed +- **Repository references updated** from `waysnx-tech/waysnx-ui-kit` → `waysnx/ui-kit` across all packages, documentation, and tooling +- Updated release workflow and validation for 1.0.1 + +### Fixed +- Repository URLs in package.json files now point to correct `waysnx/ui-kit` repository --- @@ -150,4 +163,5 @@ Detailed release procedures, package publishing, validation gates, and release w --- -[1.0.0]: https://github.com/waysnx/waysnx-ui-kit/releases/tag/v1.0.0 \ No newline at end of file +[1.0.1]: https://github.com/waysnx/ui-kit/releases/tag/v1.0.1 +[1.0.0]: https://github.com/waysnx/ui-kit/releases/tag/v1.0.0 \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2bf4042..019f8aa 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -50,8 +50,8 @@ WaysNX UI Kit uses a pnpm workspace. Clone the repository and install dependencies: ```bash -git clone https://github.com/waysnx/waysnx-ui-kit.git -cd waysnx-ui-kit +git clone https://github.com/waysnx/ui-kit.git +cd ui-kit pnpm install ``` diff --git a/RELEASE_CHECKLIST.md b/RELEASE_CHECKLIST.md index 975d0a2..028d8a3 100644 --- a/RELEASE_CHECKLIST.md +++ b/RELEASE_CHECKLIST.md @@ -1,6 +1,6 @@ # Public Release Checklist -Release: 1.0.0 +Release: 1.0.1 Status: Release Candidate ## Build & API @@ -9,12 +9,14 @@ Status: Release Candidate - [x] CSS/design tokens validated ## Documentation -- [x] Generated documentation (WDG) integration in place +- [x] Existing generated documentation (WDG output) included - [x] WDG P0.6 — PASS -- [ ] WDG P0.7 — props-resolution issue documented/deferred to 1.0.1 +- [x] WDG P0.7 — props-resolution issue documented/deferred to future backlog - [x] WDG P0.8 — PASS - [x] WDG P0.9 — PASS - [x] Primary package READMEs complete +- [x] LLM.md AI agent guides added to all 19 packages +- [ ] WDG local integration/regeneration intentionally deferred to future backlog ## Quality & Validation - [x] Storybook production build passes @@ -36,6 +38,8 @@ Status: Release Candidate --- Notes: -- `@waysnx/ui-diagnostics` is released at `1.0.0` (functional/API library; zero standalone components by design). -- `@waysnx/ui-kit` aggregate is `1.0.0` and remains the curated 5-library package. -- WDG P0.7 (props resolution) is deferred to `1.0.1`; the committed WDG artifact under `docs/generated/wdg/ai/` is accepted and will be regenerated by the WDG owner after this metadata commit. +- `@waysnx/ui-diagnostics` is released at `1.0.1` (functional/API library; zero standalone components by design). +- `@waysnx/ui-kit` aggregate is `1.0.1` and remains the curated 5-library package. +- WDG local integration/regeneration is intentionally deferred to a future backlog item. +- Repository references updated from `waysnx-tech/waysnx-ui-kit` to `waysnx/ui-kit`. +- LLM.md files provide AI agent integration guides with exact exports, props, and examples for all 19 packages. diff --git a/packages/ui-accessibility/LLM.md b/packages/ui-accessibility/LLM.md index 8734a76..fb4998a 100644 --- a/packages/ui-accessibility/LLM.md +++ b/packages/ui-accessibility/LLM.md @@ -12,7 +12,7 @@ User-facing accessibility settings center. Provides a centralized control panel ## Package info -- **npm:** `@waysnx/ui-accessibility` v1.0.0 (companion package — NOT in `@waysnx/ui-kit` meta) +- **npm:** `@waysnx/ui-accessibility` v1.0.1 (companion package — NOT in `@waysnx/ui-kit` meta) - **Install:** `npm install @waysnx/ui-accessibility` - **Peer deps:** `react >=18`, `react-dom >=18` - **CSS (required):** `import '@waysnx/ui-accessibility/dist/index.css'` diff --git a/packages/ui-accessibility/README.md b/packages/ui-accessibility/README.md index 7c90231..77e120f 100644 --- a/packages/ui-accessibility/README.md +++ b/packages/ui-accessibility/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-accessibility +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — AccessibilityProvider, preset profiles, and granular hooks. + Enterprise-grade accessibility control center for WaysNX UI Kit — centralized settings with real-time application across components. ## Installation diff --git a/packages/ui-accessibility/package.json b/packages/ui-accessibility/package.json index 91ac72f..b7369f9 100644 --- a/packages/ui-accessibility/package.json +++ b/packages/ui-accessibility/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-accessibility", - "version": "1.0.0", + "version": "1.0.1", "description": "Enterprise-grade accessibility control center for WaysNX UI Kit — centralized settings management with real-time application across all components", "type": "module", "main": "dist/index.cjs", @@ -41,5 +41,5 @@ } }, "sideEffects": ["*.css"], - "repository": { "type": "git", "url": "https://github.com/waysnx/waysnx-ui-kit", "directory": "packages/ui-accessibility" } + "repository": { "type": "git", "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-accessibility" } } diff --git a/packages/ui-communication/LLM.md b/packages/ui-communication/LLM.md index 03abd0b..a24634c 100644 --- a/packages/ui-communication/LLM.md +++ b/packages/ui-communication/LLM.md @@ -12,7 +12,7 @@ Networking-agnostic communication framework — provides UI components for chat/ ## Package info -- **npm:** `@waysnx/ui-communication` v1.0.0 (companion package — NOT in `@waysnx/ui-kit` meta) +- **npm:** `@waysnx/ui-communication` v1.0.1 (companion package — NOT in `@waysnx/ui-kit` meta) - **Install:** `npm install @waysnx/ui-communication` - **Peer deps:** `react >=18`, `react-dom >=18`, `@waysnx/ui-core >=1.0.0`, `@waysnx/ui-layout >=1.0.0`, `@waysnx/ui-feedback >=1.0.0` - **CSS (required):** `import '@waysnx/ui-communication/dist/index.css'` diff --git a/packages/ui-communication/README.md b/packages/ui-communication/README.md index 520ce22..3341444 100644 --- a/packages/ui-communication/README.md +++ b/packages/ui-communication/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-communication +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — messaging, threads, presence, reactions, and collaboration hooks. + Enterprise-grade communication components from WaysNX — messaging, threads, presence, reactions, mentions, and realtime collaboration. ## Installation diff --git a/packages/ui-communication/package.json b/packages/ui-communication/package.json index a22c977..335a1b8 100644 --- a/packages/ui-communication/package.json +++ b/packages/ui-communication/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-communication", - "version": "1.0.0", + "version": "1.0.1", "description": "Enterprise-grade communication components from WaysNX - messaging, threads, presence, reactions, mentions, and realtime collaboration", "type": "module", "main": "dist/index.cjs", @@ -46,5 +46,5 @@ } }, "sideEffects": ["*.css"], - "repository": { "type": "git", "url": "https://github.com/waysnx/waysnx-ui-kit", "directory": "packages/ui-communication" } + "repository": { "type": "git", "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-communication" } } diff --git a/packages/ui-core/LLM.md b/packages/ui-core/LLM.md index ba0e116..cea8095 100644 --- a/packages/ui-core/LLM.md +++ b/packages/ui-core/LLM.md @@ -14,7 +14,7 @@ Base UI primitives — 25+ components including Input, Button, Select, DatePicke ## Package info -- **npm:** `@waysnx/ui-core` v1.0.0 +- **npm:** `@waysnx/ui-core` v1.0.1 - **Peer deps:** `react >=18`, `react-dom >=18`, `react-datepicker ^8.0.0` - **CSS (required):** `import '@waysnx/ui-core/dist/index.css'` - **Also import:** `import 'react-datepicker/dist/react-datepicker.css'` (for DatePicker) diff --git a/packages/ui-core/README.md b/packages/ui-core/README.md index 6eb609e..217fb4d 100644 --- a/packages/ui-core/README.md +++ b/packages/ui-core/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-core +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide with exact exports, props, and examples. **Important:** Do NOT build forms from these primitives — use `DynamicForm` from `@waysnx/ui-form-builder` instead. + Core UI components from WaysNX — inputs, buttons, date pickers, and form controls. ## Installation diff --git a/packages/ui-core/package.json b/packages/ui-core/package.json index a16c5b8..84eabde 100644 --- a/packages/ui-core/package.json +++ b/packages/ui-core/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-core", - "version": "1.0.0", + "version": "1.0.1", "description": "Core UI components from WaysNX - includes inputs, buttons, date pickers, and form controls", "type": "module", "main": "dist/index.cjs", @@ -65,7 +65,7 @@ ], "repository": { "type": "git", - "url": "https://github.com/waysnx/waysnx-ui-kit", + "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-core" } } diff --git a/packages/ui-dashboard/LLM.md b/packages/ui-dashboard/LLM.md index db96d39..49a7f0c 100644 --- a/packages/ui-dashboard/LLM.md +++ b/packages/ui-dashboard/LLM.md @@ -12,7 +12,7 @@ Chart-agnostic dashboard framework. Provides widget containers, KPI/metric cards ## Package info -- **npm:** `@waysnx/ui-dashboard` v1.0.0 (companion package — NOT included in `@waysnx/ui-kit` meta) +- **npm:** `@waysnx/ui-dashboard` v1.0.1 (companion package — NOT included in `@waysnx/ui-kit` meta) - **Install:** `npm install @waysnx/ui-dashboard` - **Peer deps:** `react >=18`, `react-dom >=18` - **CSS (required):** `import '@waysnx/ui-dashboard/dist/index.css'` diff --git a/packages/ui-dashboard/README.md b/packages/ui-dashboard/README.md index 36aec04..516a77c 100644 --- a/packages/ui-dashboard/README.md +++ b/packages/ui-dashboard/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-dashboard +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — widgets, KPI cards, chart-agnostic layout, and persistence utilities. + Enterprise-grade dashboard framework from WaysNX — widgets, layout system, and dashboard infrastructure without opinion on chart libraries. ## Installation diff --git a/packages/ui-dashboard/package.json b/packages/ui-dashboard/package.json index 0cd88ec..4359a6d 100644 --- a/packages/ui-dashboard/package.json +++ b/packages/ui-dashboard/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-dashboard", - "version": "1.0.0", + "version": "1.0.1", "description": "Enterprise-grade dashboard framework from WaysNX - widgets, layout system, and dashboard infrastructure without opinion on chart libraries", "type": "module", "main": "dist/index.cjs", @@ -43,5 +43,5 @@ } }, "sideEffects": ["*.css"], - "repository": { "type": "git", "url": "https://github.com/waysnx/waysnx-ui-kit", "directory": "packages/ui-dashboard" } + "repository": { "type": "git", "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-dashboard" } } diff --git a/packages/ui-data/LLM.md b/packages/ui-data/LLM.md index 605e887..b9d7656 100644 --- a/packages/ui-data/LLM.md +++ b/packages/ui-data/LLM.md @@ -12,7 +12,7 @@ Data editing and viewing components — JSON editor, XML viewer, code editor/vie ## Package info -- **npm:** `@waysnx/ui-data` v1.0.0 (companion package — NOT in `@waysnx/ui-kit` meta) +- **npm:** `@waysnx/ui-data` v1.0.1 (companion package — NOT in `@waysnx/ui-kit` meta) - **Install:** `npm install @waysnx/ui-data` - **Peer deps:** `react >=18`, `react-dom >=18` - **CSS (required):** `import '@waysnx/ui-data/dist/index.css'` diff --git a/packages/ui-data/README.md b/packages/ui-data/README.md index e31cde8..7b3b4f2 100644 --- a/packages/ui-data/README.md +++ b/packages/ui-data/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-data +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — JSON, XML, code, and markdown editors/viewers. + Data editing and viewing components from WaysNX — JSON, XML, code, and markdown editors and viewers. ## Installation diff --git a/packages/ui-data/package.json b/packages/ui-data/package.json index 2642ba8..dd39a80 100644 --- a/packages/ui-data/package.json +++ b/packages/ui-data/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-data", - "version": "1.0.0", + "version": "1.0.1", "description": "Data editing and viewing components from WaysNX - JSON, XML, code, and markdown editors/viewers", "type": "module", "main": "dist/index.cjs", @@ -43,5 +43,5 @@ } }, "sideEffects": ["*.css"], - "repository": { "type": "git", "url": "https://github.com/waysnx/waysnx-ui-kit", "directory": "packages/ui-data" } + "repository": { "type": "git", "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-data" } } diff --git a/packages/ui-diagnostics/LLM.md b/packages/ui-diagnostics/LLM.md new file mode 100644 index 0000000..fc1b07c --- /dev/null +++ b/packages/ui-diagnostics/LLM.md @@ -0,0 +1,453 @@ +# @waysnx/ui-diagnostics — AI Agent Guide + +> **Part of the WaysNX UI Kit.** Full integration guide: see [`@waysnx/ui-kit` LLM.md](https://www.npmjs.com/package/@waysnx/ui-kit). + +--- + +## ⭐ What this package does + +Framework-agnostic client-side runtime diagnostics and UI error observability. Captures unexpected client-side failures, classifies errors (expected vs. unexpected), enriches with technical context, redacts sensitive data by default, and emits structured `DiagnosticEvent` to a provider-neutral reporter. + +> **No components.** This is a functional/API library — it provides programmatic capture, classification, and reporting, not UI components. React integration (hooks, providers, error boundaries) is available via `@waysnx/ui-diagnostics/react`. + +--- + +## Package info + +- **npm:** `@waysnx/ui-diagnostics` v1.0.1 +- **Install:** `npm install @waysnx/ui-diagnostics` +- **Peer deps:** `react >=18`, `react-dom >=18` (both optional — only required for `/react` entry point) +- **CSS:** None (this package ships no CSS) +- **Exports:** + - `@waysnx/ui-diagnostics` — framework-agnostic core + - `@waysnx/ui-diagnostics/react` — React integration (provider, error boundary, hooks) + +--- + +## Exported functions & utilities + +### Core (`@waysnx/ui-diagnostics`) + +| Export | Purpose | +|--------|---------| +| `createDiagnostics(config)` | Creates a diagnostics instance | +| `classifyError(error, context)` | Classifies error into a `DiagnosticCategory` | +| `classifyHttpStatus(status)` | Maps HTTP status to category | +| `computeFingerprint(event)` | Generates stable fingerprint for deduplication | +| `createConsoleReporter(options?)` | Reporter that logs to console (dev default) | +| `createHttpReporter(options)` | Reporter that POSTs to an HTTP endpoint | +| `createNoopReporter()` | No-op reporter (production default if no reporter provided) | +| `createMemoryReporter()` | In-memory reporter for testing | +| `composeReporters(...reporters)` | Combines multiple reporters | +| `captureFormSubmissionError(...)` | Captures form submission errors with form context | +| `captureFormValidationError(...)` | Captures validation errors | +| `captureRuleEngineError(...)` | Captures rule engine errors | +| `captureSchemaError(...)` | Captures JSON schema errors | +| `EXPECTED_CATEGORIES` | Array of expected error categories | + +### React integration (`@waysnx/ui-diagnostics/react`) + +Re-exports all core exports, plus: + +| Export | Purpose | +|--------|---------| +| `DiagnosticsProvider` | Context provider (wraps app) | +| `DiagnosticsErrorBoundary` | Error boundary for React component trees | +| `DiagnosticsContext` | React context (use via hook, not directly) | +| `useDiagnostics()` | Hook → `Diagnostics` instance | +| `useCaptureError()` | Hook → `(error, context?) => void` | + +--- + +## Key type interfaces + +### Diagnostics instance + +```ts +interface Diagnostics { + captureError(error: unknown, context?: DiagnosticContext): void; + captureEvent(event: Partial & { message: string }): void; + setContext(context: Partial): void; + setCorrelationId(correlationId: string | undefined): void; + installGlobalHandlers(): void; + removeGlobalHandlers(): void; + setReporter(reporter: DiagnosticReporter): void; + flush(): Promise; + shutdown(): Promise; +} +``` + +### DiagnosticsConfig + +```ts +interface DiagnosticsConfig { + application?: { + name?: string; + version?: string; + environment?: string; + release?: string; + }; + uiKit?: { + version?: string; + package?: string; + }; + reporter?: DiagnosticReporter; + capture?: { + globalErrors?: boolean; // default: true + unhandledRejections?: boolean; // default: true + formErrors?: boolean; // default: true + }; + privacy?: { + redactFields?: string[]; // fields to redact from metadata + sanitize?: (metadata: Record) => Record; + maxPayloadBytes?: number; + }; + sampling?: { + rate?: number; // 0..1, default: 1 (no sampling) + }; + dedupe?: { + windowMs?: number; // suppress identical fingerprints within window + }; + sessionId?: string; + environment?: string; + enabled?: boolean; // default: true + beforeReport?: (event: DiagnosticEvent) => DiagnosticEvent | null; + classify?: (error: unknown, context: DiagnosticContext) => DiagnosticCategory | undefined; +} +``` + +### DiagnosticContext + +```ts +interface DiagnosticContext { + category?: DiagnosticCategory; + severity?: DiagnosticSeverity; // 'debug' | 'info' | 'warning' | 'error' | 'fatal' + source?: string; + operation?: string; + component?: { name?: string; version?: string }; + form?: { formId?: string; schemaVersion?: string; operation?: string }; + route?: { path?: string; screen?: string }; + correlationId?: string; + metadata?: Record; + httpStatus?: number; // for classification hints +} +``` + +### DiagnosticCategory + +```ts +// Expected (application/API errors — not UI defects) +type ExpectedDiagnosticCategory = + | 'VALIDATION' + | 'BUSINESS_RULE' + | 'AUTHENTICATION' + | 'AUTHORIZATION' + | 'API_ERROR' + | 'NETWORK_ERROR' + | 'NOT_FOUND' + | 'CONFLICT'; + +// Unexpected (potential UI/runtime defects) +type UnexpectedDiagnosticCategory = + | 'UI_RUNTIME' + | 'COMPONENT' + | 'FORM' + | 'FORM_SUBMISSION' + | 'SCHEMA' + | 'RULE_ENGINE' + | 'RENDER' + | 'UNHANDLED_REJECTION' + | 'UNKNOWN'; + +type DiagnosticCategory = + | ExpectedDiagnosticCategory + | UnexpectedDiagnosticCategory; +``` + +### DiagnosticEvent (emitted to reporter) + +```ts +interface DiagnosticEvent { + id: string; // unique event ID + timestamp: string; // ISO 8601 + category: DiagnosticCategory; + severity: DiagnosticSeverity; + message: string; + errorName?: string; + stack?: string; + source?: string; + operation?: string; + application?: DiagnosticApplicationContext; + uiKit?: DiagnosticUiKitContext; + component?: DiagnosticComponentContext; + form?: DiagnosticFormContext; + route?: DiagnosticRouteContext; + runtime?: DiagnosticRuntimeContext; + correlationId?: string; + sessionId?: string; + fingerprint?: string; // for deduplication + metadata?: Record; +} +``` + +### DiagnosticReporter + +```ts +interface DiagnosticReporter { + report(event: DiagnosticEvent): void | Promise; + flush?(): Promise; + shutdown?(): void | Promise; +} +``` + +--- + +## Usage examples + +### Basic setup (framework-agnostic) + +```ts +import { createDiagnostics, createConsoleReporter } from '@waysnx/ui-diagnostics'; + +const diagnostics = createDiagnostics({ + application: { + name: 'My App', + version: '1.0.0', + environment: 'production', + }, + reporter: createConsoleReporter(), +}); + +// Install global error handlers +diagnostics.installGlobalHandlers(); +``` + +### Manual capture + +```ts +try { + await submitForm(); +} catch (error) { + diagnostics.captureError(error, { + category: 'FORM_SUBMISSION', + operation: 'submit', + form: { formId: 'customer-form' }, + }); + throw error; +} +``` + +### React integration + +```tsx +import { DiagnosticsProvider, DiagnosticsErrorBoundary } from '@waysnx/ui-diagnostics/react'; + +function App() { + return ( + + + + + + ); +} +``` + +### Using the hook + +```tsx +import { useDiagnostics } from '@waysnx/ui-diagnostics/react'; + +function MyComponent() { + const diagnostics = useDiagnostics(); + + const handleClick = async () => { + try { + await someOperation(); + } catch (error) { + diagnostics.captureError(error, { + category: 'COMPONENT', + component: { name: 'MyComponent' }, + }); + } + }; + + return ; +} +``` + +### HTTP reporter (send to backend) + +```ts +import { createHttpReporter } from '@waysnx/ui-diagnostics'; + +const diagnostics = createDiagnostics({ + application: { name: 'My App', version: '1.0.0', environment: 'production' }, + reporter: createHttpReporter({ + endpoint: 'https://api.example.com/diagnostics', + headers: { 'X-API-Key': 'your-key' }, + batchSize: 10, + flushInterval: 5000, + }), +}); +``` + +### Compose multiple reporters + +```ts +import { createConsoleReporter, createHttpReporter, composeReporters } from '@waysnx/ui-diagnostics'; + +const diagnostics = createDiagnostics({ + reporter: composeReporters( + createConsoleReporter({ verbose: true }), + createHttpReporter({ endpoint: 'https://api.example.com/diagnostics' }), + ), +}); +``` + +### Form diagnostics helpers + +```ts +import { captureFormSubmissionError, captureFormValidationError } from '@waysnx/ui-diagnostics'; + +try { + await submitForm(data); +} catch (error) { + captureFormSubmissionError(diagnostics, error, { + formId: 'customer-form', + schemaVersion: '1.0', + }); +} + +// Validation error +captureFormValidationError(diagnostics, validationErrors, { + formId: 'customer-form', + fieldName: 'email', +}); +``` + +### Privacy/redaction + +```ts +const diagnostics = createDiagnostics({ + privacy: { + redactFields: ['password', 'ssn', 'creditCard', 'token'], + maxPayloadBytes: 10000, + sanitize: (metadata) => { + // Custom sanitization logic + if (metadata.email) { + metadata.email = '[REDACTED]'; + } + return metadata; + }, + }, +}); +``` + +### Sampling and deduplication + +```ts +const diagnostics = createDiagnostics({ + sampling: { + rate: 0.1, // Keep 10% of events + }, + dedupe: { + windowMs: 60000, // Suppress identical fingerprints within 60s + }, +}); +``` + +### Custom classification + +```ts +const diagnostics = createDiagnostics({ + classify: (error, context) => { + if (error instanceof MyCustomError) { + return 'BUSINESS_RULE'; + } + if (context.httpStatus === 404) { + return 'NOT_FOUND'; + } + return undefined; // fall back to built-in classification + }, +}); +``` + +--- + +## Design principles + +1. **Diagnostics must be optional** — Apps work with or without diagnostics installed +2. **Privacy comes before observability** — Redaction by default, sanitization hooks +3. **Expected errors must not be confused with UI defects** — Category taxonomy separates application/API errors from runtime bugs +4. **The core must remain vendor-neutral** — Reporter interface is the only contract with receiving systems +5. **Reporting must never break the application** — All reporter failures are caught silently + +--- + +## React component props + +### DiagnosticsProvider + +```ts +interface DiagnosticsProviderProps { + diagnostics: Diagnostics; + children: ReactNode; +} +``` + +### DiagnosticsErrorBoundary + +```ts +interface DiagnosticsErrorBoundaryProps { + children: ReactNode; + component?: string; // component name for context + fallback?: ReactNode | ((error: Error) => ReactNode); + onError?: (error: Error, errorInfo: ErrorInfo) => void; +} +``` + +--- + +## Architecture + +``` +Detect → Classify → Enrich → Sanitize/Redact → DiagnosticEvent → Reporter +``` + +- **Capture:** Global handlers (`window.onerror`, `unhandledrejection`) + manual `captureError` calls +- **Classify:** Taxonomizes errors (expected vs. unexpected) using built-in rules + optional app override +- **Enrich:** Adds runtime context (browser, OS, route, component, form) +- **Privacy:** Redacts sensitive fields, applies custom sanitization, enforces payload limits +- **Dedupe & Sampling:** Fingerprint-based deduplication + probabilistic sampling +- **Emit:** Hands off structured `DiagnosticEvent` to the reporter + +--- + +## Reporter implementations + +| Reporter | Use Case | +|----------|----------| +| `createConsoleReporter()` | Development (default when `environment !== 'production'`) | +| `createHttpReporter(options)` | Production (POST to backend API) | +| `createNoopReporter()` | Disable reporting entirely | +| `createMemoryReporter()` | Testing (stores events in memory) | +| `composeReporters(...reporters)` | Send to multiple destinations | + +--- + +## Notes for AI agents + +- This package is **framework-agnostic** at its core — the base import works in any JS environment +- React integration is **opt-in** via the `/react` entry point +- **No UI components** — this is a functional/API library for observability +- Expected errors (VALIDATION, API_ERROR, etc.) are automatically classified as `info` or `warning`, not `error` +- Fingerprinting is automatic — used for deduplication and identifying repeat issues +- Privacy is enforced **before** the `beforeReport` hook, so apps cannot accidentally expose redacted data +- Reporters are fire-and-forget — failures are swallowed to prevent crashing the application + +--- + +## Full documentation + +https://uikit.waysnx.tech/components/ui-diagnostics diff --git a/packages/ui-diagnostics/README.md b/packages/ui-diagnostics/README.md index 8bef441..0411d58 100644 --- a/packages/ui-diagnostics/README.md +++ b/packages/ui-diagnostics/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-diagnostics +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — runtime diagnostics, error capture, classification, and reporting. + ## Purpose Framework-agnostic client-side runtime diagnostics, UI error observability, and form diagnostics for applications built with the WaysNX UI Kit. diff --git a/packages/ui-diagnostics/package.json b/packages/ui-diagnostics/package.json index 4d12a9d..159d480 100644 --- a/packages/ui-diagnostics/package.json +++ b/packages/ui-diagnostics/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-diagnostics", - "version": "1.0.0", + "version": "1.0.1", "description": "Framework-agnostic client-side runtime diagnostics, UI error observability, and form diagnostics for the WaysNX UI Kit", "type": "module", "main": "dist/index.cjs", @@ -62,7 +62,7 @@ "sideEffects": false, "repository": { "type": "git", - "url": "https://github.com/waysnx/waysnx-ui-kit", + "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-diagnostics" } } diff --git a/packages/ui-docs/LLM.md b/packages/ui-docs/LLM.md index 11f54f0..32e52ad 100644 --- a/packages/ui-docs/LLM.md +++ b/packages/ui-docs/LLM.md @@ -12,7 +12,7 @@ Metadata-driven documentation framework. Feed it structured JSON artifacts (comp ## Package info -- **npm:** `@waysnx/ui-docs` v1.0.0 (companion package — NOT in `@waysnx/ui-kit` meta) +- **npm:** `@waysnx/ui-docs` v1.0.1 (companion package — NOT in `@waysnx/ui-kit` meta) - **Install:** `npm install @waysnx/ui-docs` - **Peer deps:** `react >=18`, `react-dom >=18` - **Deps:** `prismjs`, `react-markdown`, `react-syntax-highlighter` diff --git a/packages/ui-docs/README.md b/packages/ui-docs/README.md index b057f51..d096fe9 100644 --- a/packages/ui-docs/README.md +++ b/packages/ui-docs/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-docs +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — API documentation components and viewers. + Enterprise-grade documentation framework from WaysNX — renders documentation from structured, JSON-driven metadata. ## Installation diff --git a/packages/ui-docs/package.json b/packages/ui-docs/package.json index 4e27a49..834f736 100644 --- a/packages/ui-docs/package.json +++ b/packages/ui-docs/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-docs", - "version": "1.0.0", + "version": "1.0.1", "description": "Enterprise-grade documentation framework for rendering documentation entirely from structured metadata — JSON driven, component based, and completely generic", "type": "module", "main": "dist/index.cjs", @@ -44,5 +44,5 @@ } }, "sideEffects": false, - "repository": { "type": "git", "url": "https://github.com/waysnx/waysnx-ui-kit", "directory": "packages/ui-docs" } + "repository": { "type": "git", "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-docs" } } diff --git a/packages/ui-feedback/LLM.md b/packages/ui-feedback/LLM.md index 0d54698..7f44de0 100644 --- a/packages/ui-feedback/LLM.md +++ b/packages/ui-feedback/LLM.md @@ -12,7 +12,7 @@ Overlay and feedback components — Modal, Toast, Drawer, Tooltip, Badge, Skelet ## Package info -- **npm:** `@waysnx/ui-feedback` v1.0.0 +- **npm:** `@waysnx/ui-feedback` v1.0.1 - **Peer deps:** `react >=18` - **CSS (required):** `import '@waysnx/ui-feedback/dist/index.css'` diff --git a/packages/ui-feedback/README.md b/packages/ui-feedback/README.md index 1e7453e..5917dae 100644 --- a/packages/ui-feedback/README.md +++ b/packages/ui-feedback/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-feedback +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — alerts, notifications, toasts, and user feedback components. + Feedback and overlay components from WaysNX — Modal, Toast, Drawer, Tooltip, Skeleton, Progress, Badge, and more. ## Installation diff --git a/packages/ui-feedback/package.json b/packages/ui-feedback/package.json index 9fec0e3..490c46d 100644 --- a/packages/ui-feedback/package.json +++ b/packages/ui-feedback/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-feedback", - "version": "1.0.0", + "version": "1.0.1", "description": "Feedback and overlay components from WaysNX - Modal, Toast, Drawer, Tooltip, Skeleton, Progress, Badge, and more", "type": "module", "main": "dist/index.cjs", @@ -39,5 +39,5 @@ } }, "sideEffects": ["*.css"], - "repository": { "type": "git", "url": "https://github.com/waysnx/waysnx-ui-kit", "directory": "packages/ui-feedback" } + "repository": { "type": "git", "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-feedback" } } diff --git a/packages/ui-files/LLM.md b/packages/ui-files/LLM.md index d8b3c75..0530222 100644 --- a/packages/ui-files/LLM.md +++ b/packages/ui-files/LLM.md @@ -12,7 +12,7 @@ File and document viewing — PDF viewer with pagination/zoom and smart document ## Package info -- **npm:** `@waysnx/ui-files` v1.0.0 (companion package — NOT in `@waysnx/ui-kit` meta) +- **npm:** `@waysnx/ui-files` v1.0.1 (companion package — NOT in `@waysnx/ui-kit` meta) - **Install:** `npm install @waysnx/ui-files` - **Peer deps:** `react >=18`, `react-dom >=18` - **CSS (required):** `import '@waysnx/ui-files/dist/index.css'` diff --git a/packages/ui-files/README.md b/packages/ui-files/README.md index 1ff3124..0fa09ba 100644 --- a/packages/ui-files/README.md +++ b/packages/ui-files/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-files +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — file management components and utilities. + File and document viewing components from WaysNX — PDF viewer and document preview. ## Installation diff --git a/packages/ui-files/package.json b/packages/ui-files/package.json index dfb5efa..e08eca6 100644 --- a/packages/ui-files/package.json +++ b/packages/ui-files/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-files", - "version": "1.0.0", + "version": "1.0.1", "description": "File and document viewing components from WaysNX - PDF viewer and document preview", "type": "module", "main": "dist/index.cjs", @@ -43,5 +43,5 @@ } }, "sideEffects": ["*.css"], - "repository": { "type": "git", "url": "https://github.com/waysnx/waysnx-ui-kit", "directory": "packages/ui-files" } + "repository": { "type": "git", "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-files" } } diff --git a/packages/ui-form-builder/LLM.md b/packages/ui-form-builder/LLM.md index a35dcde..ae0316f 100644 --- a/packages/ui-form-builder/LLM.md +++ b/packages/ui-form-builder/LLM.md @@ -17,7 +17,7 @@ When building ANY form in an application that uses this library, you MUST: ## Package info -- **npm:** `@waysnx/ui-form-builder` v1.0.0 +- **npm:** `@waysnx/ui-form-builder` v1.0.1 - **Peer deps:** `@waysnx/ui-core >=1.0.0`, `react >=18`, `react-dom >=18` - **CSS (required):** ```ts diff --git a/packages/ui-form-builder/README.md b/packages/ui-form-builder/README.md index 1c87b8b..77374a4 100644 --- a/packages/ui-form-builder/README.md +++ b/packages/ui-form-builder/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-form-builder +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — DynamicForm, JSON Schema to form, conditional logic, and form arrays. + Schema-driven form builder from WaysNX — renders forms from JSON Schema using `@waysnx/ui-core` components. ## Installation diff --git a/packages/ui-form-builder/package.json b/packages/ui-form-builder/package.json index 8e1620f..9885378 100644 --- a/packages/ui-form-builder/package.json +++ b/packages/ui-form-builder/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-form-builder", - "version": "1.0.0", + "version": "1.0.1", "description": "Schema-driven form builder from WaysNX - renders forms from JSON Schema using ui-core components", "type": "module", "main": "dist/index.cjs", @@ -54,7 +54,7 @@ ], "repository": { "type": "git", - "url": "https://github.com/waysnx/waysnx-ui-kit", + "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-form-builder" } } diff --git a/packages/ui-grid-builder/LLM.md b/packages/ui-grid-builder/LLM.md index 35e59b7..f4ba93e 100644 --- a/packages/ui-grid-builder/LLM.md +++ b/packages/ui-grid-builder/LLM.md @@ -12,7 +12,7 @@ Data grid with sorting, filtering, pagination, column types, row actions, and ro ## Package info -- **npm:** `@waysnx/ui-grid-builder` v1.0.0 +- **npm:** `@waysnx/ui-grid-builder` v1.0.1 - **Peer deps:** `@tanstack/react-table ^8.0.0`, `react >=18`, `react-dom >=18` - **CSS (required):** `import '@waysnx/ui-grid-builder/dist/index.css'` diff --git a/packages/ui-grid-builder/README.md b/packages/ui-grid-builder/README.md index eef95e6..2e9f45b 100644 --- a/packages/ui-grid-builder/README.md +++ b/packages/ui-grid-builder/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-grid-builder +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — dynamic grid layout builder with drag-drop. + Data grid component from WaysNX — sortable, filterable, paginated grid with column types and actions. ## Installation diff --git a/packages/ui-grid-builder/package.json b/packages/ui-grid-builder/package.json index 0a335f1..b2e5f5a 100644 --- a/packages/ui-grid-builder/package.json +++ b/packages/ui-grid-builder/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-grid-builder", - "version": "1.0.0", + "version": "1.0.1", "description": "Data grid component from WaysNX - sortable, filterable, paginated grid with column types and actions", "type": "module", "main": "dist/index.cjs", @@ -43,5 +43,5 @@ } }, "sideEffects": ["*.css"], - "repository": { "type": "git", "url": "https://github.com/waysnx/waysnx-ui-kit", "directory": "packages/ui-grid-builder" } + "repository": { "type": "git", "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-grid-builder" } } diff --git a/packages/ui-i18n/LLM.md b/packages/ui-i18n/LLM.md index f0a506f..57f4e47 100644 --- a/packages/ui-i18n/LLM.md +++ b/packages/ui-i18n/LLM.md @@ -12,7 +12,7 @@ Shared i18n provider for all WaysNX UI Kit packages. Wrap your app with `Transla ## Package info -- **npm:** `@waysnx/ui-i18n` v1.0.0 (companion package — NOT in `@waysnx/ui-kit` meta, but re-exported by `@waysnx/ui-core`) +- **npm:** `@waysnx/ui-i18n` v1.0.1 (companion package — NOT in `@waysnx/ui-kit` meta, but re-exported by `@waysnx/ui-core`) - **Install:** `npm install @waysnx/ui-i18n` (or get it via `@waysnx/ui-core` / `@waysnx/ui-kit`) - **Peer deps:** `react >=18` - **CSS:** None (this package ships no CSS) diff --git a/packages/ui-i18n/README.md b/packages/ui-i18n/README.md index 4e14686..ae97e75 100644 --- a/packages/ui-i18n/README.md +++ b/packages/ui-i18n/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-i18n +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — TranslationProvider and locale management. + Internationalization (i18n) provider for WaysNX UI Kit — shared translation context across all packages. ## Installation diff --git a/packages/ui-i18n/package.json b/packages/ui-i18n/package.json index 88de8bd..9d26df3 100644 --- a/packages/ui-i18n/package.json +++ b/packages/ui-i18n/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-i18n", - "version": "1.0.0", + "version": "1.0.1", "description": "Internationalization (i18n) provider for WaysNX UI Kit - shared translation context across all packages", "type": "module", "main": "dist/index.cjs", @@ -31,5 +31,5 @@ } }, "sideEffects": false, - "repository": { "type": "git", "url": "https://github.com/waysnx/waysnx-ui-kit", "directory": "packages/ui-i18n" } + "repository": { "type": "git", "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-i18n" } } diff --git a/packages/ui-kit-meta/LLM.md b/packages/ui-kit-meta/LLM.md index aebfeb8..f84f6cf 100644 --- a/packages/ui-kit-meta/LLM.md +++ b/packages/ui-kit-meta/LLM.md @@ -43,11 +43,11 @@ npm install @waysnx/ui-kit react-datepicker @tanstack/react-table These are **not** included in the meta-package. Each peer-depends on some of the core packages above. ```bash -npm install @waysnx/ui-navigation # v1.0.0 menus, sidebar, breadcrumbs, command palette -npm install @waysnx/ui-dashboard # v1.0.0 chart-agnostic dashboard framework -npm install @waysnx/ui-security # v1.0.0 auth, MFA, sessions, authorization gates -npm install @waysnx/ui-accessibility # v1.0.0 accessibility control center -npm install @waysnx/ui-i18n # v1.0.0 translations (no CSS) +npm install @waysnx/ui-navigation # v1.0.1 menus, sidebar, breadcrumbs, command palette +npm install @waysnx/ui-dashboard # v1.0.1 chart-agnostic dashboard framework +npm install @waysnx/ui-security # v1.0.1 auth, MFA, sessions, authorization gates +npm install @waysnx/ui-accessibility # v1.0.1 accessibility control center +npm install @waysnx/ui-i18n # v1.0.1 translations (no CSS) ``` --- @@ -112,7 +112,7 @@ import { Grid as DataGrid } from '@waysnx/ui-grid-builder'; ## 5. Package export reference -### 5.1 `@waysnx/ui-core` (v1.0.0) +### 5.1 `@waysnx/ui-core` (v1.0.1) **Peer:** `react`, `react-dom`, `react-datepicker ^8`. **CSS:** `@waysnx/ui-core/dist/index.css`. Each component ships alongside a `Props` type. Some also export option types. @@ -128,7 +128,7 @@ Key props: - **FileUpload:** `label?`, `accept?`, `multiple?`, `maxSize?` (bytes), `onChange?(files: File[] | string[])`, `onError?(error)`, `hint?`, `error?`, `disabled?`, `id?`, `className?`, `format?` (`'blob' | 'binary'`), `showPreview?`, `autoUpload?`, `browseButtonText?`, `uploadedFiles?: {name; url}[]`, `onUpload?(files)`, `onDelete?(file)`, `uploadStatus?` (`'idle' | 'uploading' | 'success' | 'error'`), `uploadProgress?` (0-100), `showLastModified?`, `testId?`. - **DatePicker:** `value?: Date | null`, `onChange?(date: Date | null)`, plus `label`/format options. -### 5.2 `@waysnx/ui-form-builder` (v1.0.0) +### 5.2 `@waysnx/ui-form-builder` (v1.0.1) **Peer:** `@waysnx/ui-core`, `react`, `react-dom`. **CSS:** `@waysnx/ui-form-builder/dist/index.css`. **Components:** `DynamicForm` (+`DynamicFormProps`), `FormArray` (+`FormArrayProps`). @@ -137,14 +137,14 @@ Key props: **DynamicForm props:** `schema?` (`JSONSchema | string`), `formLayout?` (`FormLayout | string`), `formLayoutId?` (string — loads schema+layout from the WaysNX API `https://api.apiformbuilder.com/pageLayouts/layout/{formLayoutId}`), `formData?`, `formClass?`, `isFormReadonly?`, `onSubmit?(data)`, `onBtnClick?(buttonName)`, `onFieldChange?(name, value, formData)`, `onFormReady?({ getData, reset, validate })`. -### 5.3 `@waysnx/ui-layout` (v1.0.0) +### 5.3 `@waysnx/ui-layout` (v1.0.1) **Peer:** `react`. **CSS:** `@waysnx/ui-layout/dist/index.css`. **Components (+`Props`):** `PageLayout`, `PageHeader`, `PageContent`, `SidebarLayout`, `Container`, `Section`, `Grid`, `Row`, `Column`, `Stack`, `Divider`, `Spacer`, `Card`, `Panel`, `Tabs` (+`TabList`, `Tab`, `TabPanels`, `TabPanel`), `Accordion` (+`AccordionItem`), `Collapsible`, `Breadcrumb` (+`BreadcrumbItem`), `Stepper` (+`StepItem`), `PageTabs` (+`PageTab`), `SplitLayout`, `Wizard` (+`WizardStep`). Sample props: `Container{ maxWidth?: 'sm'|'md'|'lg'|'xl'|'full' }`, `Grid{ columns?: number | string }`, `Stack{ direction?: 'vertical'|'horizontal' }`, `Card{ title?, className?, testId? }`, `Stepper{ steps: StepItem[]; currentStep }`. -### 5.4 `@waysnx/ui-feedback` (v1.0.0) +### 5.4 `@waysnx/ui-feedback` (v1.0.1) **Peer:** `react`. **CSS:** `@waysnx/ui-feedback/dist/index.css`. **Components (+`Props`):** `Modal`, `ConfirmDialog`, `Toast`, `Tooltip`, `Drawer`, `Skeleton`, `Progress`, `CircularProgress`, `Badge`, `Alert`, `Spinner`, `EmptyState`. @@ -152,7 +152,7 @@ Sample props: `Container{ maxWidth?: 'sm'|'md'|'lg'|'xl'|'full' }`, `Grid{ colum Key props: `Modal{ open (required), onClose (required), ... }`, `Drawer{ open (required), onClose (required), ... }`, `ConfirmDialog{ open, title?, ... }`, `ToastProvider{ position?, ... }`. -### 5.5 `@waysnx/ui-grid-builder` (v1.0.0) +### 5.5 `@waysnx/ui-grid-builder` (v1.0.1) **Peer:** `@tanstack/react-table ^8`, `react`, `react-dom`. **CSS:** `@waysnx/ui-grid-builder/dist/index.css`. **Component:** `Grid` (the data grid). **Function:** `schemaToGridConfig`. @@ -164,7 +164,7 @@ Key props: `Modal{ open (required), onClose (required), ... }`, `Drawer{ open (r **GridAction:** `label`, `icon?`, `onClick(row)`, `variant?` (`'primary'|'secondary'|'destructive'|'ghost'`), `hidden?(row)`. -### 5.6 `@waysnx/ui-navigation` (v1.0.0) — companion +### 5.6 `@waysnx/ui-navigation` (v1.0.1) — companion **Peer:** `react`, `react-dom`. **CSS:** `@waysnx/ui-navigation/dist/index.css`. **Provider:** `NavigationProvider` (+`NavigationContextType`). @@ -172,7 +172,7 @@ Key props: `Modal{ open (required), onClose (required), ... }`, `Drawer{ open (r **Hooks:** `useNavigation`, `useSidebar`, `useMenu`, `useTabs`, `useDrawer`, `useBreadcrumb`, `useWorkspace`, `useCommandPalette`. **Utils:** `createMenu`, `flattenMenu`, `findMenuItem`, `buildBreadcrumb`, `filterMenuByPermissions`, and related helpers. -### 5.7 `@waysnx/ui-dashboard` (v1.0.0) — companion +### 5.7 `@waysnx/ui-dashboard` (v1.0.1) — companion **Peer:** `react`, `react-dom`. **CSS:** `@waysnx/ui-dashboard/dist/index.css`. **Provider:** `DashboardProvider`, `DashboardContext`. @@ -183,7 +183,7 @@ Key props: `Modal{ open (required), onClose (required), ... }`, `Drawer{ open (r > This dashboard framework is **chart-agnostic** — bring your own chart library and render it inside `ChartWidget`. -### 5.8 `@waysnx/ui-security` (v1.0.0) — companion +### 5.8 `@waysnx/ui-security` (v1.0.1) — companion **Peer:** `react`, `react-dom`. **Deps:** `@waysnx/ui-core`, `@waysnx/ui-feedback`, `@waysnx/ui-layout`, `@waysnx/ui-i18n`. **CSS:** `@waysnx/ui-security/dist/index.css`. **Providers/hooks:** `AuthenticationProvider`/`useAuthentication`, `SessionProvider`/`useSession`, `AuthorizationProvider`/`useAuthorization`, `MFAProvider`/`useMFA`; plus `useAuth`, `useIdleDetection`, `usePasswordValidation`, `useSecureStorage`, `useBiometricAuth`, `useOTP`. @@ -205,12 +205,12 @@ Key props: `Modal{ open (required), onClose (required), ... }`, `Drawer{ open (r **Types:** `User`, `Session`, `Permission`, `Role`, `AuthorizationContext`, `AuditEvent`, `LoginCredentials`, `PasswordPolicy`, `SecurityPolicy`, `RiskScore`, and more. -### 5.9 `@waysnx/ui-i18n` (v1.0.0) — companion +### 5.9 `@waysnx/ui-i18n` (v1.0.1) — companion **Peer:** `react`. **No dependencies, no CSS.** **Exports:** `TranslationProvider`, `useTranslation`, `withTranslation`, `defaultMessages`; locale packs `esMessages`, `frMessages`, `arMessages`; types `TranslationMessages`, `TranslationConfig`, `AllMessages`, and per-package message types (`UICoreMessages`, `UIFormBuilderMessages`, etc.). -### 5.10 `@waysnx/ui-accessibility` (v1.0.0) — companion +### 5.10 `@waysnx/ui-accessibility` (v1.0.1) — companion **Peer:** `react`, `react-dom`. **CSS:** `@waysnx/ui-accessibility/dist/index.css`. **Context:** `AccessibilityProvider`, `AccessibilityContext`. @@ -528,4 +528,4 @@ npm view @waysnx/ui-kit dependencies npm view @waysnx/ui-core version ``` -If a version listed here differs from what `npm view` reports, trust `npm view` — this document reflects the versions at the time of writing (meta v1.0.0). +If a version listed here differs from what `npm view` reports, trust `npm view` — this document reflects the versions at the time of writing (meta v1.0.1). diff --git a/packages/ui-kit-meta/README.md b/packages/ui-kit-meta/README.md index 3f0e8ec..0306a7f 100644 --- a/packages/ui-kit-meta/README.md +++ b/packages/ui-kit-meta/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-kit +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — meta-package that installs all WaysNX UI libraries. + The aggregate WaysNX UI Kit package — install the primary libraries through one dependency. ## Installation diff --git a/packages/ui-kit-meta/package.json b/packages/ui-kit-meta/package.json index 829dfd7..81d6a89 100644 --- a/packages/ui-kit-meta/package.json +++ b/packages/ui-kit-meta/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-kit", - "version": "1.0.0", + "version": "1.0.1", "description": "WaysNX UI Kit aggregate - a curated core set of five libraries (ui-core, ui-form-builder, ui-layout, ui-feedback, ui-grid-builder) in one install; other libraries install directly", "license": "Apache-2.0", "keywords": ["react", "ui", "components", "form-builder", "layout", "feedback", "waysnx"], @@ -22,5 +22,5 @@ }, "main": "./index.js", "types": "./index.d.ts", - "repository": { "type": "git", "url": "https://github.com/waysnx/waysnx-ui-kit", "directory": "packages/ui-kit-meta" } + "repository": { "type": "git", "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-kit-meta" } } diff --git a/packages/ui-layout/LLM.md b/packages/ui-layout/LLM.md index a4144ee..7035852 100644 --- a/packages/ui-layout/LLM.md +++ b/packages/ui-layout/LLM.md @@ -12,7 +12,7 @@ Layout primitives for page structure and content organization — Grid, Tabs, Ac ## Package info -- **npm:** `@waysnx/ui-layout` v1.0.0 +- **npm:** `@waysnx/ui-layout` v1.0.1 - **Peer deps:** `react >=18` - **CSS (required):** `import '@waysnx/ui-layout/dist/index.css'` diff --git a/packages/ui-layout/README.md b/packages/ui-layout/README.md index 964fc15..b9d23f1 100644 --- a/packages/ui-layout/README.md +++ b/packages/ui-layout/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-layout +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — layout components and responsive utilities. + Comprehensive layout components from WaysNX — page structure, layout utilities, and content organization. ## Installation diff --git a/packages/ui-layout/package.json b/packages/ui-layout/package.json index 9d3ad85..7d7789c 100644 --- a/packages/ui-layout/package.json +++ b/packages/ui-layout/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-layout", - "version": "1.0.0", + "version": "1.0.1", "description": "Comprehensive layout components from WaysNX - page structure, layout utilities, content organization, and navigation", "type": "module", "main": "dist/index.cjs", @@ -39,5 +39,5 @@ } }, "sideEffects": ["*.css"], - "repository": { "type": "git", "url": "https://github.com/waysnx/waysnx-ui-kit", "directory": "packages/ui-layout" } + "repository": { "type": "git", "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-layout" } } diff --git a/packages/ui-maps/LLM.md b/packages/ui-maps/LLM.md index 10a16f4..aa2acdc 100644 --- a/packages/ui-maps/LLM.md +++ b/packages/ui-maps/LLM.md @@ -12,7 +12,7 @@ Provider-agnostic maps and location UI shells. Provides address search, map view ## Package info -- **npm:** `@waysnx/ui-maps` v1.0.0 (companion package — NOT in `@waysnx/ui-kit` meta) +- **npm:** `@waysnx/ui-maps` v1.0.1 (companion package — NOT in `@waysnx/ui-kit` meta) - **Install:** `npm install @waysnx/ui-maps` - **Peer deps:** `react >=18`, `react-dom >=18` - **CSS (required):** `import '@waysnx/ui-maps/dist/index.css'` diff --git a/packages/ui-maps/README.md b/packages/ui-maps/README.md index eb04f51..2b15d40 100644 --- a/packages/ui-maps/README.md +++ b/packages/ui-maps/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-maps +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — map components and geolocation utilities. + Maps and location components from WaysNX — address search, map views, route planning, and geolocation. ## Installation diff --git a/packages/ui-maps/package.json b/packages/ui-maps/package.json index 51e54cc..82eb171 100644 --- a/packages/ui-maps/package.json +++ b/packages/ui-maps/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-maps", - "version": "1.0.0", + "version": "1.0.1", "description": "Maps and location components from WaysNX - address search, map views, route planning, and geolocation", "type": "module", "main": "dist/index.cjs", @@ -43,5 +43,5 @@ } }, "sideEffects": ["*.css"], - "repository": { "type": "git", "url": "https://github.com/waysnx/waysnx-ui-kit", "directory": "packages/ui-maps" } + "repository": { "type": "git", "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-maps" } } diff --git a/packages/ui-media/LLM.md b/packages/ui-media/LLM.md index 17be2b3..fc41965 100644 --- a/packages/ui-media/LLM.md +++ b/packages/ui-media/LLM.md @@ -12,7 +12,7 @@ Media capture and display components — QR/barcode generation and scanning, sig ## Package info -- **npm:** `@waysnx/ui-media` v1.0.0 (companion package — NOT in `@waysnx/ui-kit` meta) +- **npm:** `@waysnx/ui-media` v1.0.1 (companion package — NOT in `@waysnx/ui-kit` meta) - **Install:** `npm install @waysnx/ui-media` - **Peer deps:** `react >=18`, `react-dom >=18` - **CSS (required):** `import '@waysnx/ui-media/dist/index.css'` diff --git a/packages/ui-media/README.md b/packages/ui-media/README.md index 7f49b78..bc10a98 100644 --- a/packages/ui-media/README.md +++ b/packages/ui-media/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-media +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — image, video, and media components. + Media and visual components from WaysNX — QR/barcode, signatures, image/video/audio, OCR, and color picker. ## Installation diff --git a/packages/ui-media/package.json b/packages/ui-media/package.json index 528c633..5d72666 100644 --- a/packages/ui-media/package.json +++ b/packages/ui-media/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-media", - "version": "1.0.0", + "version": "1.0.1", "description": "Media and visual components from WaysNX - QR/barcode, signatures, image/video/audio, OCR, and color picker", "type": "module", "main": "dist/index.cjs", @@ -45,5 +45,5 @@ } }, "sideEffects": ["*.css"], - "repository": { "type": "git", "url": "https://github.com/waysnx/waysnx-ui-kit", "directory": "packages/ui-media" } + "repository": { "type": "git", "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-media" } } diff --git a/packages/ui-navigation/LLM.md b/packages/ui-navigation/LLM.md index b76aa37..473d3fa 100644 --- a/packages/ui-navigation/LLM.md +++ b/packages/ui-navigation/LLM.md @@ -12,7 +12,7 @@ Enterprise navigation framework — menus, sidebars, breadcrumbs, command palett ## Package info -- **npm:** `@waysnx/ui-navigation` v1.0.0 (companion package — NOT included in `@waysnx/ui-kit` meta) +- **npm:** `@waysnx/ui-navigation` v1.0.1 (companion package — NOT included in `@waysnx/ui-kit` meta) - **Install:** `npm install @waysnx/ui-navigation` - **Peer deps:** `react >=18`, `react-dom >=18` - **CSS (required):** `import '@waysnx/ui-navigation/dist/index.css'` diff --git a/packages/ui-navigation/README.md b/packages/ui-navigation/README.md index ee7d375..d0900a4 100644 --- a/packages/ui-navigation/README.md +++ b/packages/ui-navigation/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-navigation +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — navigation components (menus, breadcrumbs, tabs). + Enterprise-grade navigation framework from WaysNX — menus, sidebars, breadcrumbs, and advanced navigation patterns. ## Installation diff --git a/packages/ui-navigation/package.json b/packages/ui-navigation/package.json index d883860..26c4845 100644 --- a/packages/ui-navigation/package.json +++ b/packages/ui-navigation/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-navigation", - "version": "1.0.0", + "version": "1.0.1", "description": "Enterprise-grade navigation framework from WaysNX - menus, sidebars, breadcrumbs, and advanced navigation patterns", "type": "module", "main": "dist/index.cjs", @@ -41,5 +41,5 @@ } }, "sideEffects": ["*.css"], - "repository": { "type": "git", "url": "https://github.com/waysnx/waysnx-ui-kit", "directory": "packages/ui-navigation" } + "repository": { "type": "git", "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-navigation" } } diff --git a/packages/ui-security/LLM.md b/packages/ui-security/LLM.md index 4b0311c..1797482 100644 --- a/packages/ui-security/LLM.md +++ b/packages/ui-security/LLM.md @@ -12,7 +12,7 @@ Enterprise-grade security components — pre-built auth UIs, MFA flows, session ## Package info -- **npm:** `@waysnx/ui-security` v1.0.0 (companion package — NOT included in `@waysnx/ui-kit` meta) +- **npm:** `@waysnx/ui-security` v1.0.1 (companion package — NOT included in `@waysnx/ui-kit` meta) - **Install:** `npm install @waysnx/ui-security` - **Deps:** `@waysnx/ui-core`, `@waysnx/ui-feedback`, `@waysnx/ui-layout`, `@waysnx/ui-i18n` - **Peer deps:** `react >=18`, `react-dom >=18` diff --git a/packages/ui-security/README.md b/packages/ui-security/README.md index d8d3f65..f3be3cf 100644 --- a/packages/ui-security/README.md +++ b/packages/ui-security/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-security +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — authentication, authorization, and security utilities. + Enterprise-grade security components from WaysNX — authentication, authorization, MFA, secure inputs, and session management. ## Installation diff --git a/packages/ui-security/package.json b/packages/ui-security/package.json index 00a586a..82755ce 100644 --- a/packages/ui-security/package.json +++ b/packages/ui-security/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-security", - "version": "1.0.0", + "version": "1.0.1", "description": "Enterprise-grade security components from WaysNX - authentication, authorization, MFA, secure inputs, and session management", "type": "module", "main": "dist/index.cjs", @@ -48,5 +48,5 @@ } }, "sideEffects": ["*.css"], - "repository": { "type": "git", "url": "https://github.com/waysnx/waysnx-ui-kit", "directory": "packages/ui-security" } + "repository": { "type": "git", "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-security" } } diff --git a/packages/ui-visualization/LLM.md b/packages/ui-visualization/LLM.md index 55fcf37..07e04bf 100644 --- a/packages/ui-visualization/LLM.md +++ b/packages/ui-visualization/LLM.md @@ -12,7 +12,7 @@ High-performance visualization engine for org charts, trees, and hierarchies. Su ## Package info -- **npm:** `@waysnx/ui-visualization` v1.0.0 (companion package — NOT in `@waysnx/ui-kit` meta) +- **npm:** `@waysnx/ui-visualization` v1.0.1 (companion package — NOT in `@waysnx/ui-kit` meta) - **Install:** `npm install @waysnx/ui-visualization` - **Peer deps:** `react >=18`, `react-dom >=18` - **CSS (required):** `import '@waysnx/ui-visualization/dist/index.css'` diff --git a/packages/ui-visualization/README.md b/packages/ui-visualization/README.md index fd9a36f..9c1ac43 100644 --- a/packages/ui-visualization/README.md +++ b/packages/ui-visualization/README.md @@ -1,5 +1,7 @@ # @waysnx/ui-visualization +> 🤖 **AI agents & LLMs:** See **LLM.md** (shipped with this package) for a structured integration guide — charts, graphs, and data visualization components. + Enterprise-grade visualization components for React — OrgChart, Tree, Hierarchy, and more. ## Installation diff --git a/packages/ui-visualization/package.json b/packages/ui-visualization/package.json index bd657f6..a1bc17f 100644 --- a/packages/ui-visualization/package.json +++ b/packages/ui-visualization/package.json @@ -1,6 +1,6 @@ { "name": "@waysnx/ui-visualization", - "version": "1.0.0", + "version": "1.0.1", "description": "Enterprise-grade visualization components for React — OrgChart, Tree, Hierarchy, and more. Built on a high-performance engine with virtualization, zoom/pan, and full accessibility.", "type": "module", "main": "dist/index.cjs", @@ -41,5 +41,5 @@ } }, "sideEffects": ["*.css"], - "repository": { "type": "git", "url": "https://github.com/waysnx/waysnx-ui-kit", "directory": "packages/ui-visualization" } + "repository": { "type": "git", "url": "https://github.com/waysnx/ui-kit", "directory": "packages/ui-visualization" } } diff --git a/scripts/ci-validate-packages.js b/scripts/ci-validate-packages.js index 68af8a6..a173f65 100644 --- a/scripts/ci-validate-packages.js +++ b/scripts/ci-validate-packages.js @@ -3,11 +3,11 @@ /** * WaysNX UI Kit Package Metadata Validation * - * Release-critical validation for Phase 1 (1.0.0 release gate). + * Release-critical validation for Phase 1 (1.0.1 release gate). * * Validates: * - Exactly 19 publishable packages are present - * - All packages are version 1.0.0 (1.0 release gate requirement) + * - All packages are version 1.0.1 (1.0 release gate requirement) * - No publishable package is marked private * - Package names follow @waysnx/* convention * - package.json files are valid JSON @@ -85,11 +85,11 @@ function getPackageDir(pkgName) { function validatePackageJson(pkg, pkgName, dir) { log(`\n Validating ${pkgName}...`); - // Check version is 1.0.0 (1.0 release gate requirement) - if (pkg.version !== '1.0.0') { - error(` ${pkgName}: version is ${pkg.version}, expected 1.0.0 (1.0 release gate)`); + // Check version is 1.0.1 (release gate requirement) + if (pkg.version !== '1.0.1') { + error(` ${pkgName}: version is ${pkg.version}, expected 1.0.1 (release gate)`); } else { - success(` version: 1.0.0 (1.0 release gate)`); + success(` version: 1.0.1 (release gate)`); } // Check not marked private @@ -134,7 +134,7 @@ function validatePackageJson(pkg, pkgName, dir) { // Main validation log('=== Package Metadata Validation ==='); -log(`\nExpected: ${PUBLISHABLE_PACKAGES.size} publishable packages at version 1.0.0`); +log(`\nExpected: ${PUBLISHABLE_PACKAGES.size} publishable packages at version 1.0.1`); log(`Validating...\n`); let foundCount = 0; @@ -166,7 +166,7 @@ if (foundCount !== PUBLISHABLE_PACKAGES.size) { } if (exitCode === 0) { - success(`All ${PUBLISHABLE_PACKAGES.size} packages valid for 1.0.0 release`); + success(`All ${PUBLISHABLE_PACKAGES.size} packages valid for 1.0.1 release`); } else { log('\n⚠ Package validation failed'); } diff --git a/storybook/stories/overview/libraries.ts b/storybook/stories/overview/libraries.ts index 13215f6..7b8625a 100644 --- a/storybook/stories/overview/libraries.ts +++ b/storybook/stories/overview/libraries.ts @@ -226,6 +226,6 @@ export const LIBRARIES: LibraryInfo[] = [ export const LINKS = { docs: 'https://uikit.waysnx.tech', - github: 'https://github.com/waysnx/waysnx-ui-kit', + github: 'https://github.com/waysnx/ui-kit', npm: 'https://www.npmjs.com/org/waysnx', }; diff --git a/tools/ui-kit-coverage/catalog/ui-kit-catalog.json b/tools/ui-kit-coverage/catalog/ui-kit-catalog.json index 6731c1e..2b12ace 100644 --- a/tools/ui-kit-coverage/catalog/ui-kit-catalog.json +++ b/tools/ui-kit-coverage/catalog/ui-kit-catalog.json @@ -14,7 +14,7 @@ "uiKit": { "name": "WaysNX UI Kit", "scope": "@waysnx", - "repository": "waysnx-tech/waysnx-ui-kit", + "repository": "waysnx/ui-kit", "version": "1.0.0" }, "catalogPolicy": { diff --git a/tools/ui-kit-coverage/docs/adr/0001-catalog-seed-source.md b/tools/ui-kit-coverage/docs/adr/0001-catalog-seed-source.md index d5ec2cb..a75df3e 100644 --- a/tools/ui-kit-coverage/docs/adr/0001-catalog-seed-source.md +++ b/tools/ui-kit-coverage/docs/adr/0001-catalog-seed-source.md @@ -69,7 +69,7 @@ properties: - Previously-flagged package gaps are now **resolved in the catalog**: `Modal` and `Tooltip` are under `@waysnx/ui-feedback`, and `Tabs` under `@waysnx/ui-layout`. -- `uiKit.repository` (`waysnx-tech/waysnx-ui-kit`) is **transfer-dependent** and +- `uiKit.repository` (`waysnx/ui-kit`) is **transfer-dependent** and is left as supplied (data, not a hard-coded source URL). - `wdgWillBeUsedLaterForCatalogGenerationOrValidation: true` records the intent to use WDG for future catalog generation/validation — still with **no runtime