Skip to content

Conversation

istvan-ujjmeszaros
Copy link
Owner

Summary

Fixes critical bug where published renderer packages contained invalid workspace:* dependencies, preventing external consumers from installing them.

Changes Made

Renderer Packages (all 5):

  • ✅ Fixed "@touchspin/core": "workspace:*""5.0.1-alpha.0" in:
    • @touchspin/renderer-bootstrap3
    • @touchspin/renderer-bootstrap4
    • @touchspin/renderer-bootstrap5
    • @touchspin/renderer-tailwind
    • @touchspin/renderer-vanilla
  • ✅ Bumped versions: 5.0.1-alpha.0 → 5.0.1-alpha.1
  • ✅ Build verified: all packages pass npm pack --dry-run

Adapter Packages:

  • ✅ Bumped versions to 5.0.1-alpha.1 (dependency cascade from renderer fixes)
  • ✅ Marked React adapter as private: true (will publish from extracted repo)
  • ✅ Angular adapter already private: true

Config Updates:

  • Updated Angular tsconfig.json (removed redundant paths)
  • Updated playwright.config.ts (exclude entire Angular adapter, not just tests)

Packages to Publish (via CI)

When merged to main, CI will publish these packages at 5.0.1-alpha.1:

  • @touchspin/renderer-bootstrap3
  • @touchspin/renderer-bootstrap4
  • @touchspin/renderer-bootstrap5
  • @touchspin/renderer-tailwind
  • @touchspin/renderer-vanilla
  • @touchspin/jquery
  • @touchspin/standalone
  • @touchspin/webcomponent

NOT published (marked private): @touchspin/react, @touchspin/angular

Problem Context

Published renderers at 5.0.1-alpha.0 had:

{
  "@touchspin/core": "workspace:*"
}

This caused extracted React and Angular repos to fail with:

Error: @touchspin/core@workspace:*: Workspace not found

Resolution Path

  1. ✅ Fix renderers in main monorepo (this PR)
  2. ✅ CI publishes renderers at alpha.1
  3. ⏳ Update extracted React repo to alpha.1 → publish from there
  4. ⏳ Update extracted Angular repo to alpha.1 → publish from there

Test Plan

  • All renderer package.json files updated with explicit versions
  • Changeset created and applied (bumped to alpha.1)
  • Build passes: yarn build:test (2m 26s)
  • Pack verification passes for all 5 renderers
  • No workspace:* in packed manifests
  • React marked as private (verified in package.json)
  • Angular already private (verified)
  • Pre-commit hooks passed (Gherkin guard, Biome formatting)
  • Pre-push hooks passed (comprehensive validation, lexicon regen)
  • CI publish workflow completes successfully
  • Verify published packages on npm: npm view @touchspin/renderer-bootstrap5@alpha dependencies
  • Test React repo installation after publish
  • Test Angular repo installation after publish

Verification Commands

After merge and CI publish:

# Verify dist-tag
npm view @touchspin/renderer-bootstrap5 dist-tags --json

# Verify dependencies (should NOT have workspace:*)
npm view @touchspin/renderer-bootstrap5@alpha dependencies --json

# Test in extracted React repo
cd /apps/touchspin-frameworks/touchspin-react
yarn install
yarn build
yarn test

# Test in extracted Angular repo
cd /apps/touchspin-frameworks/touchspin-angular
yarn install
yarn build
yarn test

Related Issues

Unblocks:

  • React adapter extraction and independent publishing
  • Angular adapter extraction and independent publishing

🤖 Generated with Claude Code

istvan-ujjmeszaros and others added 25 commits October 13, 2025 00:54
Implements @touchspin/angular adapter with full Angular 17+ support:

Features:
- Standalone component (no NgModule required)
- ControlValueAccessor for Template-driven and Reactive Forms
- Per-renderer subpaths (bootstrap3/4/5, tailwind, vanilla)
- Imperative API via component reference (increment, decrement, etc.)
- SSR-friendly with isPlatformBrowser guards
- Full TypeScript type safety

Implementation:
- Core component in src/touch-spin.component.ts
- Per-renderer components extending core with specific renderers
- Build system using TypeScript + tsup (matches React adapter)
- Comprehensive README with usage examples
- ACCEPTANCE_REPORT documenting implementation

API Parity with React:
- All inputs (min, max, step, decimals, prefix, suffix, etc.)
- valueChange output event
- Imperative methods (focus, blur, increment, decrement, getValue, setValue)
- Hidden input for form submission

Status: Alpha-ready for publishing

Deferred to Phase 2:
- Playwright tests (non-blocking)
- Angular example app (non-blocking)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Update Package Matrix workflow to build Angular adapter with renderer deps
- Add Angular section to root README with template/reactive/imperative examples
- Add changeset for @touchspin/angular minor bump
- All 5 renderer subpaths (bootstrap3/4/5, tailwind, vanilla)
- ControlValueAccessor integration for Angular forms
- SSR-safe with isPlatformBrowser guards

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Separates Angular unit tests (Vitest) from Playwright E2E tests to allow
different import patterns. Unit tests can import from /src/ for component
testing, while E2E tests continue to enforce /dist/ imports.

Changes:
- Split test commands: `test` (E2E only), `test:unit` (Angular), `test:unit:all` (all workspaces)
- Updated test:ci to run both unit and E2E tests
- Excluded Angular unit tests from guard-no-src-in-tests check

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Configures Vitest coverage using V8 provider to collect coverage metrics
from Angular unit tests. Current coverage: 66.79% of touch-spin.component.ts.

Changes:
- Added @vitest/coverage-v8 dependency
- Configured coverage in vitest.config.ts (V8, HTML/JSON/text reporters)
- Added test:coverage and test:coverage:open scripts
- Excluded coverage/ directories from git

Usage:
  yarn workspace @touchspin/angular test:coverage

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Updates coverage-open.mjs to accept an optional path argument, enabling
it to be used for both Playwright E2E coverage and Angular unit test coverage.
This provides robust cross-platform browser opening (WSL, Windows, macOS, Linux)
for all coverage reports instead of the basic open/xdg-open fallback.

Changes:
- scripts/coverage-open.mjs: Accept optional path argument (defaults to Playwright coverage)
- Angular package.json: Use shared script instead of inline open/xdg-open command

Benefits:
- Consistent cross-platform support across all coverage types
- WSL path conversion and multiple fallback commands
- Better error messages
- Maintains backward compatibility

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Fixes conflict where Angular unit tests (Vitest) and Playwright E2E tests
couldn't coexist in the same workspace due to competing expect() matchers.

Changes:
- Renamed Angular unit tests from .spec.ts to .test.ts extension
- Removed coverage setup/teardown from main Playwright config (coverage-only feature)
- Added Angular tests to Playwright tsconfig exclusion
- Added Angular tests to Playwright testIgnore pattern
- Disabled Vitest globals to prevent global namespace pollution
- Updated Vitest config to match .test.ts files instead of .spec.ts

File extension conventions:
- .spec.ts = Playwright E2E tests (use Playwright's expect)
- .test.ts = Vitest unit tests (use Vitest's expect)

This ensures clean separation between test frameworks without conflicts.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Excludes the root workspace from `yarn workspaces foreach` to avoid running
the root package's test script, which executes all 1042 Playwright E2E tests
redundantly before running individual package tests.

Changes:
- Updated test:unit:all to use --exclude bootstrap-touchspin flag
- Now only runs tests from child workspaces (Angular unit tests + individual package E2E tests)
- Root `yarn test` still runs full test suite as expected

Result: Eliminates duplicate test execution, significantly reduces test time.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Install ng-packagr v18.2.1 for Angular-native compilation
- Configure ng-package.json for main entry point
- Restructure secondary entry points (bootstrap3/4/5, tailwind, vanilla)
  to follow ng-packagr conventions (moved to root with src/ subdirectories)
- Update imports to use @touchspin/angular path mapping
- Update build scripts to use ng-packagr instead of tsc+tsup
- Add TypeScript path mappings for cross-entry-point imports

Build now generates proper Angular Ivy metadata (ɵcmp, ɵfac) in all entry
points, making the package usable in Angular AOT compilation.

Fixes Codex P0 review feedback about missing Ivy metadata.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Replace Vitest mocked tests with Jest using jest-preset-angular to enable real Angular component testing via TestBed.

**Changes:**
- Add Jest dependencies: jest, jest-preset-angular, jsdom
- Remove Vitest dependencies: vitest, @vitest/coverage-v8, happy-dom
- Create jest.config.ts with proper Angular configuration
- Create setup-jest.ts to initialize Zone.js test environment
- Update tsconfig.spec.json for CommonJS and Jest types
- Convert tests from Jasmine to Jest syntax (jasmine.createSpy → jest.fn)
- Add Yarn PnP packageExtensions for zone.js and @angular/compiler
- Add moduleNameMapper for workspace packages resolution
- Delete old Vitest test file and config
- Add Jest globals to biome.json for linting

**Test Results:**
All 16 tests passing with real Angular TestBed:
✓ Component initialization
✓ Default value handling
✓ Controlled value input
✓ ControlValueAccessor implementation
✓ Imperative methods
✓ Disabled state management

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Add 29 new tests covering previously untested areas:
- Input options (min, max, step, decimals, prefix, suffix, coreOptions)
- ngOnChanges dynamic property updates
- Imperative methods (focus, blur, getCore)
- ControlValueAccessor edge cases (registerOnTouched, null/undefined)
- Property getters (value, defaultValue, inputTestId)
- Edge cases (null handling, controlled mode precedence)

Coverage improved significantly:
- Statements: 64.96% → 94.9% (+29.94%)
- Branches: 36.2% → 87.06% (+50.86%)
- Functions: 67.74% → 93.54% (+25.8%)
- Lines: 68.24% → 95.27% (+27.03%)

All 45 tests passing with Jest and Angular TestBed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Add 4 targeted edge case tests for uncovered code paths:
- NaN input validation in writeValue
- value getter when never set (null coalescing)
- defaultValue getter when never set (null coalescing)
- default onTouched behavior before registration

Coverage improvements:
- Statements: 94.9% → 95.54% (+0.64%)
- Branches: 87.06% → 91.37% (+4.31%)
- Functions: 93.54% → 96.77% (+3.23%)
- Lines: 95.27% → 95.94% (+0.67%)

Total tests: 49 (was 45)

Remaining ~4% uncovered code consists of:
- Angular framework code (forwardRef DI provider)
- SSR guard (platform-specific)
- Defensive edge cases (race conditions)

All acceptable and documented in investigation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Replace exact version and wildcard in packageExtensions with semver ranges to prevent duplicate lockfile entries that CI's hardened mode rejects.

Changes:
- zone.js: "*" → "^0.14.0" (consolidates with existing 0.14.10)
- @angular/compiler: "18.2.14" → "^18.2.0" (matches existing range)

This eliminates duplicate entries for @angular/compiler and zone.js that caused lockfile validation failures in CI.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…ture

- Add NaN validation in useTouchSpin hook to prevent state corruption
- Set up complete Jest unit test infrastructure with 24 comprehensive tests
- Add test coverage for controlled/uncontrolled behavior, edge cases, and form integration
- Create detailed documentation comparing React vs Angular implementations
- Install all required testing dependencies (@testing-library/react, jest, ts-jest)
- Fix type safety by using RendererConstructor type instead of any

Note: Tests are written but blocked by ESM module resolution issue in Jest.
The NaN validation fix itself is production-ready and critical.

Related to commit 105210a which fixed similar issue in Angular adapter.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
BREAKING THROUGH: All 24 unit tests now passing!

Critical Fixes:
- Fixed Jest ESM module resolution with custom Babel plugin
- Added 'input' event listener (in addition to 'change') for proper test support
- Fixed getValue test timing with async/await
- Replaced all 'any' types with proper RendererConstructor types

Test Infrastructure:
- Jest + Babel configuration with custom .js extension stripping plugin
- babel-plugin-module-resolver for package aliases
- React Testing Library setup
- 24 comprehensive unit tests covering all functionality

Coverage Results:
- 97.82% statement coverage
- 92.98% branch coverage
- 100% function coverage
- 97.67% line coverage (exceeds Angular's 95.94%!)

Tests Verify:
✅ NaN validation fix (critical bug fix)
✅ Controlled/uncontrolled value behavior
✅ Input options (min/max/step/decimals/prefix/suffix)
✅ Imperative methods (focus/blur/getValue/setValue)
✅ Disabled and readonly states
✅ Edge cases (NaN, transitions, rapid updates)
✅ Form integration
✅ Styling

The NaN fix is production-critical and now fully verified by tests.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Remove analysis and planning documents that were temporary working notes:
- React: REACT_VS_ANGULAR_ANALYSIS.md (temporary analysis)
- React: UNIT_TESTING_STATUS.md (temporary status doc)
- React: TODO.md (outdated planning doc)
- Angular: TODO.md (outdated planning doc)

These were useful during development but don't belong in the committed codebase.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Remove temporary completion/acceptance reports that were useful during
development but don't belong in the committed codebase:
- FINALIZATION_SUMMARY.md
- REACT_ADAPTER_ACCEPTANCE_REPORT.md
- packages/adapters/angular/ACCEPTANCE_REPORT.md

These were useful for documenting completion milestones but are not
ongoing documentation that should be maintained in the repo.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
FIXES CI BUILD ERROR - TypeScript type mismatch between CoreFacade and RendererCoreBridge

Problem:
- RendererConstructor used loose CoreFacade type
- Actual renderers expect strict RendererCoreBridge type
- Type mismatch caused "Type 'typeof Bootstrap3Renderer' is not assignable" errors in CI

Solution:
- Export RendererCoreBridge from AbstractRendererBase
- Update RendererConstructor to use RendererCoreBridge
- Keep CoreFacade as type alias for backward compatibility

This ensures proper type checking without using 'any' escape hatches.
All 24 React unit tests still passing.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Changed zone.js version in Angular adapter from exact "0.14.10" to
range "^0.14.0" to deduplicate lockfile entries. This resolves CI
hardened mode errors where the lockfile would have been modified.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Changed touchSpinOptions from Record<string, unknown> to
Partial<UseTouchSpinOptions> to preserve type safety for the renderer
property. This ensures TypeScript properly validates the renderer type
(RendererConstructor | null | undefined) throughout the component.

Addresses Codex review feedback about type safety regression.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Added experimentalDecorators compiler option to tsconfig files to fix
Angular decorator compilation in Jest tests. This resolves the error:
"Standard Angular field decorators are not supported in JIT mode"

All 49 Angular Jest tests now pass successfully.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
- Document React and Angular repos moved to separate locations
- Add installation instructions with alpha tag
- List repository URLs for both adapters
- Note independent versioning at v5.0.1-alpha.0

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Published renderer packages contained invalid workspace:* references for
@touchspin/core dependency, preventing external consumers from installing
them. This fixes all 5 renderers to reference the published version
5.0.1-alpha.0 instead.

Changes:
- Fixed workspace:* → 5.0.1-alpha.0 in all renderer dependencies
- Bumped renderers to 5.0.1-alpha.1 via changesets
- Bumped adapters to 5.0.1-alpha.1 (workspace dependency updates)
- Marked React adapter as private (will publish from extracted repo)
- Angular adapter already private

Packages ready to publish (via CI):
- @touchspin/renderer-bootstrap3@5.0.1-alpha.1
- @touchspin/renderer-bootstrap4@5.0.1-alpha.1
- @touchspin/renderer-bootstrap5@5.0.1-alpha.1
- @touchspin/renderer-tailwind@5.0.1-alpha.1
- @touchspin/renderer-vanilla@5.0.1-alpha.1
- @touchspin/jquery@5.0.1-alpha.1
- @touchspin/standalone@5.0.1-alpha.1
- @touchspin/webcomponent@5.0.1-alpha.1

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

"dependencies": {
"@touchspin/core": "workspace:*",
"@touchspin/renderer-bootstrap3": "workspace:*",
"@touchspin/renderer-bootstrap4": "workspace:*",
"@touchspin/renderer-bootstrap5": "workspace:*",
"@touchspin/renderer-tailwind": "workspace:*",
"@touchspin/renderer-vanilla": "workspace:*"

P1 Badge Replace workspace deps in web component package

The @touchspin/webcomponent package is being bumped to 5.0.1-alpha.1 and listed for publication, yet its manifest still declares all core renderer dependencies as "workspace:*". Those placeholders are stripped only during workspace installs; when this package is published to npm they remain unresolved strings and external consumers will see npm ERR! Unsupported URL Type "workspace:*" on install. If the goal of this release is to provide consumable artifacts, these dependencies need real semver ranges (e.g. 5.0.1-alpha.1) before publishing.


"@touchspin/core": "workspace:*",
"@touchspin/renderer-bootstrap3": "workspace:*",
"@touchspin/renderer-bootstrap4": "workspace:*",
"@touchspin/renderer-bootstrap5": "workspace:*",
"@touchspin/renderer-tailwind": "workspace:*",
"@touchspin/renderer-vanilla": "workspace:*"

P1 Badge Standalone adapter still publishes workspace dependencies

The standalone adapter is also slated for publication at 5.0.1-alpha.1, but its dependencies block still references @touchspin/core and all renderers using "workspace:*". Published packages cannot depend on workspace:*; consumers outside the monorepo will be unable to install the adapter because npm does not understand workspace protocol. These entries should be replaced with the corresponding alpha versions (or peer dependencies) before shipping.


"dependencies": {
"@touchspin/standalone": "workspace:*"

P1 Badge jQuery adapter publishes invalid workspace dependency

The jQuery wrapper’s only runtime dependency is @touchspin/standalone, but it continues to specify that dependency as "workspace:*" while bumping the package version for release. Once this package is published, consumers will hit an install error because npm cannot resolve workspace:*. The dependency must be replaced with the actual version of @touchspin/standalone that will be published (e.g. 5.0.1-alpha.1).

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting

istvan-ujjmeszaros and others added 4 commits October 15, 2025 00:17
Fixes missed workspace:* dependencies in adapter packages:
- standalone: @touchspin/core + all 5 renderers
- webcomponent: @touchspin/core + all 5 renderers
- jquery: @touchspin/standalone

These packages are being published at 5.0.1-alpha.1 but had invalid
workspace:* references that would cause npm install errors for external
consumers.

Now using:
- @touchspin/core: "5.0.1-alpha.0"
- @touchspin/renderer-*: "5.0.1-alpha.1" (all 5 renderers)
- @touchspin/standalone: "5.0.1-alpha.1"

Addresses Codex feedback from PR #175.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
React and Angular adapters have been extracted to separate repositories:
- /apps/touchspin-frameworks/touchspin-react
- /apps/touchspin-frameworks/touchspin-angular

Keeping them in the monorepo was causing lockfile conflicts in CI
because they reference workspace packages but are marked as private
(won't be published from here).

These adapters will be published from their extracted repos instead.

Fixes CI yarn install failures in hardened mode.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Updates lockfile to reflect:
- Changed workspace:* to explicit versions in renderers/adapters
- Removed React and Angular adapter packages from workspace

This fixes CI hardened mode failures where Yarn detected lockfile
modifications and refused to proceed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
React and Angular adapters have been extracted to separate repos
and removed from the monorepo. Updated the package-matrix workflow to:
- Remove @touchspin/react and @touchspin/angular from build matrix
- Remove React/Angular-specific build dependency steps
- Remove React/Angular-specific pack validation logic

Fixes CI build failures where workflow tried to build non-existent packages.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@istvan-ujjmeszaros istvan-ujjmeszaros marked this pull request as draft October 14, 2025 22:48
@istvan-ujjmeszaros istvan-ujjmeszaros marked this pull request as ready for review October 14, 2025 22:48
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting

package.json Outdated
Comment on lines 99 to 102
"test": "node scripts/pre-test.mjs && PLAYWRIGHT_TSCONFIG=tsconfig.playwright.json TS_BUILD_TARGET=dev playwright test --project=chromium --reporter=list",
"test:ci": "yarn build:test && yarn guard:all && PLAYWRIGHT_TSCONFIG=tsconfig.playwright.json TS_BUILD_TARGET=dev playwright test --project=chromium --reporter=list",
"test:unit": "yarn workspace @touchspin/angular test",
"test:unit:all": "yarn workspaces foreach -A --exclude bootstrap-touchspin run test",
"test:ci": "yarn build:test && yarn guard:all && yarn test:unit && PLAYWRIGHT_TSCONFIG=tsconfig.playwright.json TS_BUILD_TARGET=dev playwright test --project=chromium --reporter=list",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Remove test:unit reference to deleted Angular workspace

test:ci now runs yarn test:unit, but test:unit invokes yarn workspace @touchspin/angular test. The entire Angular adapter workspace was deleted in this commit (packages/adapters/angular no longer exists), so both yarn test:unit and any CI job calling yarn test:ci will fail with “Unknown workspace @touchspin/angular”. Either drop this script or point it at an existing workspace to keep the test pipeline runnable.

Useful? React with 👍 / 👎.

The test:unit script was calling `yarn workspace @touchspin/angular test`
but Angular was removed from the monorepo. Also removed the call to
test:unit from test:ci to fix CI test pipeline.

Addresses Codex review feedback.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@istvan-ujjmeszaros istvan-ujjmeszaros marked this pull request as draft October 14, 2025 22:56
@istvan-ujjmeszaros istvan-ujjmeszaros marked this pull request as ready for review October 14, 2025 22:56
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting

Comment on lines 1 to 17
---
"@touchspin/angular": minor
---

feat(angular): add Angular adapter with ControlValueAccessor support

Implements a comprehensive Angular 17+ adapter with:
- Standalone component architecture (no NgModule required)
- ControlValueAccessor for Template-driven and Reactive Forms integration
- Per-renderer subpaths (bootstrap3, bootstrap4, bootstrap5, tailwind, vanilla)
- Imperative API (focus, blur, increment, decrement, getValue, setValue, getCore)
- SSR-safe with isPlatformBrowser guards for Angular Universal
- Full TypeScript types with TouchSpinInputs, TouchSpinOutputs, TouchSpinHandle interfaces
- Angular lifecycle hooks (ngAfterViewInit, ngOnChanges, ngOnDestroy)
- Hidden native input for form submission
- Comprehensive README with usage examples

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Drop changesets for removed adapters

This changeset still schedules a release for @touchspin/angular, and .changeset/pre.json now references it as an active prerelease change set even though the Angular (and React) packages were deleted in this commit. Running yarn changeset version will fail because Changesets cannot find the referenced packages to bump, blocking the release pipeline. Remove or move these change files to the new repositories before publishing.

Useful? React with 👍 / 👎.

Comprehensive cleanup after extracting React and Angular to separate repos:

Changesets:
- Deleted .changeset/angular-adapter.md (referenced non-existent package)
- Removed @touchspin/react from v5-alpha-release.md
- Removed Angular/React from .changeset/pre.json initialVersions
- Removed "angular-adapter" from pre.json changesets array

Documentation:
- Removed React/Angular from main package table in README.md
- Updated README.md to link to separate repos instead of local paths
- Updated packages/README.md "Future Development" → "Framework Adapters"
- Updated docs/architecture/package-requirements.md to note separate repos

All remaining references now correctly point to the separate repositories:
- https://github.com/istvan-ujjmeszaros/touchspin-react
- https://github.com/istvan-ujjmeszaros/touchspin-angular

Addresses Codex review feedback about stale changesets blocking release.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@istvan-ujjmeszaros istvan-ujjmeszaros marked this pull request as draft October 14, 2025 23:11
@istvan-ujjmeszaros istvan-ujjmeszaros marked this pull request as ready for review October 14, 2025 23:11
@istvan-ujjmeszaros istvan-ujjmeszaros merged commit 34131a6 into main Oct 15, 2025
13 checks passed
@istvan-ujjmeszaros istvan-ujjmeszaros deleted the docs/framework-split branch October 15, 2025 00:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant