From 11baa8c59d55d2044a22da2dd1b42bb79e0e9592 Mon Sep 17 00:00:00 2001 From: Jeff Repanich Date: Fri, 11 Sep 2026 16:17:43 -0400 Subject: [PATCH 1/5] release: prepare 0.3.0 breaking release --- README.md | 2 +- package-lock.json | 10 +++++----- package.json | 8 ++++---- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 022f5d5..82452c1 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ For the full surface and composition examples, start with the docs above. ## Themes catalog boundary -`@askrjs/themes` also publishes styling-only compatibility anatomy for Tabs, +`@askrjs/themes` also publishes styling-only catalog anatomy for Tabs, Combobox, Calendar/DatePicker, Command, NavigationMenu, Carousel, ResizablePanelGroup, and InputOTP. Those names are not `@askrjs/ui` primitives and do not provide widget state, keyboard interaction, focus diff --git a/package-lock.json b/package-lock.json index 8fd6ca5..67a86e2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,16 @@ { "name": "@askrjs/ui", - "version": "0.2.4", + "version": "0.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@askrjs/ui", - "version": "0.2.4", + "version": "0.3.0", "license": "Apache-2.0", "devDependencies": { - "@askrjs/askr": ">=0.2.3 <0.3.0", - "@askrjs/vite": ">=0.2.1 <0.3.0", + "@askrjs/askr": ">=0.3.0 <0.4.0", + "@askrjs/vite": ">=0.3.0 <0.4.0", "@playwright/test": "1.62.1", "@types/node": "^26.3.0", "axe-core": "^4.13.0", @@ -26,7 +26,7 @@ "node": ">=24.0.0" }, "peerDependencies": { - "@askrjs/askr": ">=0.2.3 <0.3.0" + "@askrjs/askr": ">=0.3.0 <0.4.0" } }, "node_modules/@asamuzakjp/css-color": { diff --git a/package.json b/package.json index 8d6c910..658dfc8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@askrjs/ui", - "version": "0.2.4", + "version": "0.3.0", "description": "Headless Askr components", "keywords": [ "accessible", @@ -243,8 +243,8 @@ "test:integrity": "vp test run -c vitest.test.integrity.config.ts" }, "devDependencies": { - "@askrjs/askr": ">=0.2.3 <0.3.0", - "@askrjs/vite": ">=0.2.1 <0.3.0", + "@askrjs/askr": ">=0.3.0 <0.4.0", + "@askrjs/vite": ">=0.3.0 <0.4.0", "@playwright/test": "1.62.1", "@types/node": "^26.3.0", "axe-core": "^4.13.0", @@ -257,7 +257,7 @@ "vite-plus": "^0.3.1" }, "peerDependencies": { - "@askrjs/askr": ">=0.2.3 <0.3.0" + "@askrjs/askr": ">=0.3.0 <0.4.0" }, "engines": { "node": ">=24.0.0" From c9b8f0a8ba8677b57c21d00d5a3b0061431252b1 Mon Sep 17 00:00:00 2001 From: Jeff Repanich Date: Fri, 11 Sep 2026 17:01:46 -0400 Subject: [PATCH 2/5] docs: record the 0.3.0 release in the changelog The 0.2.4 entry was the last one recorded; add the 0.3.0 range bump so the changelog covers the release being published. --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a1747a..10bb639 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.3.0] - 2026-09-11 + +### Changed + +- Move the `@askrjs/askr` peer range and the `@askrjs/vite` dependency to + `>=0.3.0 <0.4.0` for the coordinated 0.3.0 release. No component API changes. + ## [0.2.4] - 2026-08-28 ### Added From 823adec29526615378289efbf8c3e5e07755cd83 Mon Sep 17 00:00:00 2001 From: Jeff Repanich Date: Fri, 11 Sep 2026 18:55:07 -0400 Subject: [PATCH 3/5] build: regenerate the lockfile against published 0.3.0 dependencies The 0.3.0 prep bumped the declared ranges but left the resolved tree pinned at 0.2.x, so npm ci could not satisfy package.json. Re-resolve now that the upstream packages are on npm. --- package-lock.json | 84 ++++++++++++++++++++--------------------------- 1 file changed, 36 insertions(+), 48 deletions(-) diff --git a/package-lock.json b/package-lock.json index 67a86e2..9bb1f5d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,43 +63,43 @@ } }, "node_modules/@askrjs/askr": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/@askrjs/askr/-/askr-0.2.4.tgz", - "integrity": "sha512-GlXI724dyqlZz1OxVxxO3ZmR+uQ5E1iPBNZAkRbyvdztGSABMf4IFEOtHoOVoT5o7KeNU+XTppsG72TGojIqng==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@askrjs/askr/-/askr-0.3.0.tgz", + "integrity": "sha512-KfZWB+9biKrEgk4H3JD7m6ARTNDgbDGhAnwWQNhGFGtignPY7L0agDP4TJEowO/rog++0dFSYZ1Wss+tt8hDhw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@askrjs/auth": ">=0.2.1 <0.3.0", - "@askrjs/schema": ">=0.2.1 <0.3.0" + "@askrjs/auth": ">=0.3.0 <0.4.0", + "@askrjs/schema": ">=0.3.0 <0.4.0" }, "engines": { "node": ">=24.0.0" } }, "node_modules/@askrjs/auth": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@askrjs/auth/-/auth-0.2.1.tgz", - "integrity": "sha512-kGFIqQi0KTe1sv2KCiLaiQpISWNpxfvZcmmqsB3nyRUim4sEKuNW1vUrWR6ItDqKmwsaWPycjPU7yQ2ha9lPZg==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@askrjs/auth/-/auth-0.3.0.tgz", + "integrity": "sha512-1w88+zlOvwY8n7fQrQtOPH5WYoSSQHQpPpInkwlOihMDCOIBlAAo913vv1Qs+kXOKCMQLtc3BqMoL2YzpxnQrw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@xmldom/xmldom": "0.9.10", + "@xmldom/xmldom": "0.9.12", "xml-crypto": "6.1.2", - "xml-encryption": "5.0.0" + "xml-encryption": "6.0.1" }, "engines": { "node": ">=24.0.0" } }, "node_modules/@askrjs/node": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@askrjs/node/-/node-0.2.1.tgz", - "integrity": "sha512-3aFMYUgfM7cM50MfypwKgP3rJt1l6UrktZZj82mZ4eqzFkZBIWjbji4DHiY8OzYc0ZnEDiU1wUMNxuBX0UkvsQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@askrjs/node/-/node-0.3.0.tgz", + "integrity": "sha512-hnqtQcUdpshnaQDlqS/FHKmqfpM2G9Wq4YMQR5LLSeIdjzerI0l4Ua7Gqi2nzu7IEDWWdDUv/rTkP5rI+PqWcQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@askrjs/auth": ">=0.2.0 <0.3.0", - "@askrjs/server": ">=0.2.0 <0.3.0", + "@askrjs/auth": ">=0.3.0 <0.4.0", + "@askrjs/server": ">=0.3.0 <0.4.0", "@types/ws": "^8.18.1", "ws": "^8.21.3" }, @@ -108,9 +108,9 @@ } }, "node_modules/@askrjs/schema": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@askrjs/schema/-/schema-0.2.1.tgz", - "integrity": "sha512-2pd+CBpJomTYHQWajEyF5kVH3U9PrqtoEh1YsoGA0bBoDfERpYISdnrojX7OY5ue9cn2T2/33RnbLnvTv8AGvw==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@askrjs/schema/-/schema-0.3.0.tgz", + "integrity": "sha512-l7oVbZBQE91wPbQTPZU5wISnw8uIrms9OeZDEVdTlZg3JuTvxPuxB7D2WZt8kVj9d35jBLJcXRQkozsLPztR1Q==", "dev": true, "license": "Apache-2.0", "engines": { @@ -118,20 +118,20 @@ } }, "node_modules/@askrjs/server": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@askrjs/server/-/server-0.2.1.tgz", - "integrity": "sha512-Gk0nvYdm2OgbjvNFMZ2ooMUAvekqKfDhZ/RqBCWY0goalL5hd7V/yBdVw1uCssn7TLpCXgDowKv73HyONGV2hQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@askrjs/server/-/server-0.3.0.tgz", + "integrity": "sha512-Bk5ZmANnW45pgeHBgrWnGBz6xXkMQxtOgwGQXdzdCufed1w5IUQCvRvjNDkPQ2Rv/z3NofTF5IYqE/vQL+XPoQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@askrjs/auth": ">=0.2.0 <0.3.0", - "@askrjs/schema": ">=0.2.0 <0.3.0" + "@askrjs/auth": ">=0.3.0 <0.4.0", + "@askrjs/schema": ">=0.3.0 <0.4.0" }, "engines": { "node": ">=24.0.0" }, "peerDependencies": { - "@askrjs/askr": ">=0.2.0 <0.3.0" + "@askrjs/askr": ">=0.3.0 <0.4.0" }, "peerDependenciesMeta": { "@askrjs/askr": { @@ -140,13 +140,13 @@ } }, "node_modules/@askrjs/vite": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@askrjs/vite/-/vite-0.2.2.tgz", - "integrity": "sha512-xScTxWqftad3N/un9LL7yVjawPpxEKNZKG4qq2M0pi3dUWQv+1Tyy2oE+UgJN5e64Bkgq7gY1BYFfr8Th0HwSw==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@askrjs/vite/-/vite-0.3.0.tgz", + "integrity": "sha512-mXrF8uxmzn6VwAaHEKSabq98jYOQz+5+ir4+aFcabvnEbHT9ojS4goMIpg4INHm2AMxrZNbfWuskFHkoaGpS+Q==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@askrjs/node": ">=0.2.1 <0.3.0", + "@askrjs/node": ">=0.3.0 <0.4.0", "oxc-parser": "^0.147.0", "parse5": "^8.0.1" }, @@ -154,7 +154,7 @@ "node": ">=24.0.0" }, "peerDependencies": { - "@askrjs/askr": ">=0.2.3 <0.3.0", + "@askrjs/askr": ">=0.3.0 <0.4.0", "sharp": "^0.35.3", "vite": "^8.2.2", "vite-plus": "^0.3.1" @@ -2621,10 +2621,9 @@ } }, "node_modules/@xmldom/xmldom": { - "version": "0.9.10", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.10.tgz", - "integrity": "sha512-A9gOqLdi6cV4ibazAjcQufGj0B1y/vDqYrcuP6d/6x8P27gRS8643Dj9o1dEKtB6O7fwxb2FgBmJS2mX7gpvdw==", - "deprecated": "this version has critical issues, please update to the latest version", + "version": "0.9.12", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.9.12.tgz", + "integrity": "sha512-5AXjrcMClTryPe9LgZrygpB1lj7s0S9E0+W+AHaVKAVyHanafK86iPSvG5xHVSp/jC+VH1UXu0TAEmY279xH7A==", "dev": true, "license": "MIT", "engines": { @@ -4879,15 +4878,14 @@ } }, "node_modules/xml-encryption": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/xml-encryption/-/xml-encryption-5.0.0.tgz", - "integrity": "sha512-9XUEdUcXiim15WsQ37P+z0CD3uTytLoWoGL/PhRqA5ZqmDhKMtiyMJcn1pT1+kBBtCTSqBaiPs+ILdiD7nQuQA==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/xml-encryption/-/xml-encryption-6.0.1.tgz", + "integrity": "sha512-hQSkWsiOKXxYB8FbSJhe/BRwobEt/lVcxzV699CdH7KLNv2nLEtNvkGkw5UTxYUkPQ3XQs65BvXtRfujJ/1OFA==", "dev": true, "license": "MIT", "dependencies": { "@xmldom/xmldom": "^0.8.13", - "escape-html": "^1.0.3", - "xpath": "0.0.32" + "escape-html": "^1.0.3" } }, "node_modules/xml-encryption/node_modules/@xmldom/xmldom": { @@ -4900,16 +4898,6 @@ "node": ">=10.0.0" } }, - "node_modules/xml-encryption/node_modules/xpath": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.32.tgz", - "integrity": "sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/xml-name-validator": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", From 463a26c7627e6289ed6d80e8f8d374db2d2b88ef Mon Sep 17 00:00:00 2001 From: Jeff Repanich Date: Fri, 11 Sep 2026 19:00:05 -0400 Subject: [PATCH 4/5] test: follow the README rename in the docs contract The README moved from 'styling-only compatibility anatomy' to 'styling-only catalog anatomy' as part of dropping compatibility vocabulary, but the docs contract still asserted the old string. --- tests/integrity/docs/docs-contract.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integrity/docs/docs-contract.test.ts b/tests/integrity/docs/docs-contract.test.ts index e60c5d1..f86f920 100644 --- a/tests/integrity/docs/docs-contract.test.ts +++ b/tests/integrity/docs/docs-contract.test.ts @@ -200,7 +200,7 @@ describe('Docs contract', () => { expect(readme, family).toContain(family); } - expect(readme).toContain('styling-only compatibility anatomy'); + expect(readme).toContain('styling-only catalog anatomy'); expect(readme).toContain('do not provide widget state'); expect(readme).toContain('Themes may then compose'); expect(readme).toContain('rather than reproducing its state'); From 8bf52bafb4a4d76a97c5b75ece61eec93cacc5e8 Mon Sep 17 00:00:00 2001 From: Jeff Repanich Date: Fri, 11 Sep 2026 19:14:29 -0400 Subject: [PATCH 5/5] test: assert disabled as a boolean attribute, not a 'true' value @askrjs/askr 0.3.0 renders boolean attributes bare in real browsers, so a disabled textarea now serializes as