{"_id":"@anarchitects/common-angular-ui-composition","_rev":"6-13b83154b2b0315d70f04bef0cb85fb4","name":"@anarchitects/common-angular-ui-composition","dist-tags":{"latest":"0.1.1"},"versions":{"0.0.1":{"name":"@anarchitects/common-angular-ui-composition","version":"0.0.1","_id":"@anarchitects/common-angular-ui-composition@0.0.1","maintainers":[{"name":"vrxj81","email":"johan@anarchitects.dev"}],"dist":{"shasum":"14c632718b94988ef6b6329d1d92dc89aaae5825","tarball":"https://registry.npmjs.org/@anarchitects/common-angular-ui-composition/-/common-angular-ui-composition-0.0.1.tgz","fileCount":17,"integrity":"sha512-odXoda8hB6MeSeX9M9DTjfb3tSqz+S1UwD30Hwxub+pvTjhaY++9JVGdN9zwkIeq4mMIlaCh6dgTHSz3rRiLOg==","signatures":[{"sig":"MEUCIQCNuYeGbUKMALyXu55D/pDgWEP7VB+dWo+BnfcuV+LkkwIgZ9lEVaf1risp+pEvi1rTYEaYzP7j9TJvn1dgVqVCqr0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27966},"module":"fesm2022/anarchitects-common-angular-ui-composition.mjs","exports":{".":{"types":"./types/anarchitects-common-angular-ui-composition.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition.mjs"},"./contracts":{"types":"./types/anarchitects-common-angular-ui-composition-contracts.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition-contracts.mjs"},"./templates":{"types":"./types/anarchitects-common-angular-ui-composition-templates.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition-templates.mjs"},"./projection":{"types":"./types/anarchitects-common-angular-ui-composition-projection.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition-projection.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"ee887ca63337e863260838bd9ee22dc649dffbc8","typings":"types/anarchitects-common-angular-ui-composition.d.ts","_npmUser":{"name":"vrxj81","email":"johan@anarchitects.dev"},"_npmVersion":"10.9.4","description":"Shared UI composition contracts for Angular bricks.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/common-angular-ui-composition_0.0.1_1773588684819_0.9896238706351814","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.2":{"name":"@anarchitects/common-angular-ui-composition","version":"0.0.2","_id":"@anarchitects/common-angular-ui-composition@0.0.2","maintainers":[{"name":"vrxj81","email":"johan@anarchitects.dev"}],"homepage":"https://github.com/anarchitects/anarchitecture-bricks-3tier/tree/main/libs/common/angular/ui-composition","bugs":{"url":"https://github.com/anarchitects/anarchitecture-bricks-3tier/issues"},"dist":{"shasum":"b4bb36cd6651aebc430bfb4c59ef7b77025beab5","tarball":"https://registry.npmjs.org/@anarchitects/common-angular-ui-composition/-/common-angular-ui-composition-0.0.2.tgz","fileCount":17,"integrity":"sha512-YLCqdI5ZJMqs2QRmbbP++/Gk3NYogYq0D8M+ZXKi/mzzQCaYHTX7w5KctJNPW4cdzTOsAxJBPMgkg9v73jvvTw==","signatures":[{"sig":"MEYCIQD43nwsaUg3KsY1XwwPzi3hhSdQ8i/MHFK9KvCpPV3qaAIhALohZkuSljWElG92Xl0ODNZtwmw44kZkxk01VKIxJ3/7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anarchitects%2fcommon-angular-ui-composition@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29127},"module":"fesm2022/anarchitects-common-angular-ui-composition.mjs","exports":{".":{"types":"./types/anarchitects-common-angular-ui-composition.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition.mjs"},"./contracts":{"types":"./types/anarchitects-common-angular-ui-composition-contracts.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition-contracts.mjs"},"./templates":{"types":"./types/anarchitects-common-angular-ui-composition-templates.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition-templates.mjs"},"./projection":{"types":"./types/anarchitects-common-angular-ui-composition-projection.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition-projection.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"ec365290ab5f59c8b8d7190c1c92b4c8188041f6","typings":"types/anarchitects-common-angular-ui-composition.d.ts","_npmUser":{"name":"vrxj81","email":"johan@anarchitects.dev"},"repository":{"url":"git+https://github.com/anarchitects/anarchitecture-bricks-3tier.git","type":"git","directory":"libs/common/angular/ui-composition"},"_npmVersion":"10.9.4","description":"Shared UI composition contracts for Angular bricks.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.1","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/common-angular-ui-composition_0.0.2_1774607922407_0.3141053426611007","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.0.3":{"name":"@anarchitects/common-angular-ui-composition","version":"0.0.3","_id":"@anarchitects/common-angular-ui-composition@0.0.3","maintainers":[{"name":"vrxj81","email":"johan@anarchitects.dev"}],"homepage":"https://github.com/anarchitects/anarchitecture-bricks-3tier/tree/main/libs/common/angular/ui-composition","bugs":{"url":"https://github.com/anarchitects/anarchitecture-bricks-3tier/issues"},"dist":{"shasum":"7831d4f0a4cef4283f45ba884b57ba41b9d01b3f","tarball":"https://registry.npmjs.org/@anarchitects/common-angular-ui-composition/-/common-angular-ui-composition-0.0.3.tgz","fileCount":17,"integrity":"sha512-Xhwyn9FtQMRNNk6PAPrN2Qbz0MAJhUL8tQEehQxQryueo4/ysqOJcMS2pxiBPCXPloJsGLzXxMrx5Qf3mrUGYw==","signatures":[{"sig":"MEQCIGZ0blBkBSdAt3rZejgEgHcK+MiWWOHSi8vHkGNDmhBOAiBq0AFnBb+9ymF7jADfKJ7ibvxHb7FAcIpO/dnr4H3IxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anarchitects%2fcommon-angular-ui-composition@0.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29127},"module":"fesm2022/anarchitects-common-angular-ui-composition.mjs","exports":{".":{"types":"./types/anarchitects-common-angular-ui-composition.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition.mjs"},"./contracts":{"types":"./types/anarchitects-common-angular-ui-composition-contracts.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition-contracts.mjs"},"./templates":{"types":"./types/anarchitects-common-angular-ui-composition-templates.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition-templates.mjs"},"./projection":{"types":"./types/anarchitects-common-angular-ui-composition-projection.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition-projection.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"b517f35d18965302e17711e107bd16309abf3ef1","typings":"types/anarchitects-common-angular-ui-composition.d.ts","_npmUser":{"name":"vrxj81","email":"johan@anarchitects.dev"},"repository":{"url":"git+https://github.com/anarchitects/anarchitecture-bricks-3tier.git","type":"git","directory":"libs/common/angular/ui-composition"},"_npmVersion":"10.9.4","description":"Shared UI composition contracts for Angular bricks.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.1","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/common-angular-ui-composition_0.0.3_1774814843475_0.8267221696124238","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.0":{"name":"@anarchitects/common-angular-ui-composition","version":"0.1.0","_id":"@anarchitects/common-angular-ui-composition@0.1.0","maintainers":[{"name":"vrxj81","email":"johan@anarchitects.dev"}],"homepage":"https://github.com/anarchitects/anarchitecture-bricks-3tier/tree/main/libs/common/angular/ui-composition","bugs":{"url":"https://github.com/anarchitects/anarchitecture-bricks-3tier/issues"},"dist":{"shasum":"7ef969f5acb9bc5b3cf841b1a44e8dfda22e502e","tarball":"https://registry.npmjs.org/@anarchitects/common-angular-ui-composition/-/common-angular-ui-composition-0.1.0.tgz","fileCount":17,"integrity":"sha512-9MQbFT92wMDt+eAG/UdFwDqy4kPNfPjLwp/FX0S2t/xrFQROfRqOPvIrxdQzF+hXF6HNXDvg7J0JYKEBRY7TLg==","signatures":[{"sig":"MEUCIQDnkWA9gp2oiHUWBlxNgSG2PEQbUR/mwSe+uBCcLAT4QAIgET7THp6UhcJAn74YyZcfNQlIvQbCURLuoRK/vCd/SDE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anarchitects%2fcommon-angular-ui-composition@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29127},"module":"fesm2022/anarchitects-common-angular-ui-composition.mjs","exports":{".":{"types":"./types/anarchitects-common-angular-ui-composition.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition.mjs"},"./contracts":{"types":"./types/anarchitects-common-angular-ui-composition-contracts.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition-contracts.mjs"},"./templates":{"types":"./types/anarchitects-common-angular-ui-composition-templates.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition-templates.mjs"},"./projection":{"types":"./types/anarchitects-common-angular-ui-composition-projection.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition-projection.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"538b17d1113c2b6dd320d8faaeb9ecf2b835d6dd","typings":"types/anarchitects-common-angular-ui-composition.d.ts","_npmUser":{"name":"vrxj81","email":"johan@anarchitects.dev"},"repository":{"url":"git+https://github.com/anarchitects/anarchitecture-bricks-3tier.git","type":"git","directory":"libs/common/angular/ui-composition"},"_npmVersion":"10.9.4","description":"Shared UI composition contracts for Angular bricks.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.1","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^21.0.0"},"_npmOperationalInternal":{"tmp":"tmp/common-angular-ui-composition_0.1.0_1775031458961_0.5740263710058087","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."},"0.1.1":{"name":"@anarchitects/common-angular-ui-composition","version":"0.1.1","_id":"@anarchitects/common-angular-ui-composition@0.1.1","maintainers":[{"name":"vrxj81","email":"johan@anarchitects.dev"}],"homepage":"https://github.com/anarchitects/anarchitecture-bricks-3tier/tree/main/libs/common/angular/ui-composition","bugs":{"url":"https://github.com/anarchitects/anarchitecture-bricks-3tier/issues"},"dist":{"shasum":"73ebb53e8e1e7738efd7f90950d5688c50c7352c","tarball":"https://registry.npmjs.org/@anarchitects/common-angular-ui-composition/-/common-angular-ui-composition-0.1.1.tgz","fileCount":17,"integrity":"sha512-isnkjH+wzBwwD/RZ3cb+zFnQE9NkaFoQXR3MjodAiLOvN9Pqcu7EYi7hZbao/sErS9WDid6tgXdx+yaimeOq+Q==","signatures":[{"sig":"MEQCIFrfv0aZEZrnZ1pSdb8vKM/CSwTtcA0F6SYyOMaamQscAiBVRFZg8Ntuk1raO+DG95FAQJIFE5dJ05467P8d6b8FtA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anarchitects%2fcommon-angular-ui-composition@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":29703},"type":"module","module":"fesm2022/anarchitects-common-angular-ui-composition.mjs","exports":{".":{"types":"./types/anarchitects-common-angular-ui-composition.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition.mjs"},"./contracts":{"types":"./types/anarchitects-common-angular-ui-composition-contracts.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition-contracts.mjs"},"./templates":{"types":"./types/anarchitects-common-angular-ui-composition-templates.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition-templates.mjs"},"./projection":{"types":"./types/anarchitects-common-angular-ui-composition-projection.d.ts","default":"./fesm2022/anarchitects-common-angular-ui-composition-projection.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"2d6a4b3ada94f466ae25aa0f78c308f34f232b90","typings":"types/anarchitects-common-angular-ui-composition.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:e757f9f0-7a1b-4586-b2ee-5a798087337b"}},"repository":{"url":"git+https://github.com/anarchitects/anarchitecture-bricks-3tier.git","type":"git","directory":"libs/common/angular/ui-composition"},"_npmVersion":"11.17.0","description":"> Transition status: retained for the final compatibility line; do not adopt for new work. Domain-owned > Angular projection replaces this shared abstraction under > [ADR-0003](../../../../docs/adr/0003-adopt-tailwind-v4-frontend-foundation-and-retire-com","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^21.0.0 || ^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/common-angular-ui-composition_0.1.1_1788352848424_0.3163478787193854","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Package no longer supported. Contact Support at https://www.npmjs.com/support for more info."}},"time":{"created":"2026-03-15T15:31:24.688Z","modified":"2026-09-04T13:10:21.128Z","0.0.1":"2026-03-15T15:31:24.985Z","0.0.2":"2026-03-27T10:38:42.627Z","0.0.3":"2026-03-29T20:07:23.624Z","0.1.0":"2026-04-01T08:17:39.150Z","0.1.1":"2026-09-02T12:40:48.540Z"},"bugs":{"url":"https://github.com/anarchitects/anarchitecture-bricks-3tier/issues"},"homepage":"https://github.com/anarchitects/anarchitecture-bricks-3tier/tree/main/libs/common/angular/ui-composition","repository":{"url":"git+https://github.com/anarchitects/anarchitecture-bricks-3tier.git","type":"git","directory":"libs/common/angular/ui-composition"},"description":"> Transition status: retained for the final compatibility line; do not adopt for new work. Domain-owned > Angular projection replaces this shared abstraction under > [ADR-0003](../../../../docs/adr/0003-adopt-tailwind-v4-frontend-foundation-and-retire-com","maintainers":[{"name":"vrxj81","email":"johan@anarchitects.dev"}],"readme":"# @anarchitects/common-angular-ui-composition\n\n> Transition status: retained for the final compatibility line; do not adopt for new work. Domain-owned\n> Angular projection replaces this shared abstraction under\n> [ADR-0003](../../../../docs/adr/0003-adopt-tailwind-v4-frontend-foundation-and-retire-common-angular-ui-packages.md).\n> Published versions will not be unpublished.\n\nShared UI composition contracts for Angular bricks.\n\nThis package defines stable composition conventions between primitives,\ndomain UI components, and upcoming layout infrastructure.\n\n## Features\n\n- Canonical slot + template contracts for reusable Angular UI composition\n- Backward-compatible alias support while converging on canonical slot names\n- Shared schema tokens for future runtime layout discovery\n\n## Installation\n\n```bash\nnpm install @anarchitects/common-angular-ui-composition\n# or\nyarn add @anarchitects/common-angular-ui-composition\n```\n\n## Entry points\n\n- `@anarchitects/common-angular-ui-composition/contracts`\n- `@anarchitects/common-angular-ui-composition/projection`\n- `@anarchitects/common-angular-ui-composition/templates`\n\n## Composition model\n\n- Canonical slot names via `anxSlot=\"...\"`\n- Backward-compatible slot aliases for existing primitives\n- Template contracts via `ng-template[anxTemplate]`\n- Schema token (`ANX_COMPOSITION_SCHEMA`) for future layout discovery\n\n## Canonical slot usage\n\n```html\n<anarchitects-ui-card>\n  <div anxSlot=\"header\">Title</div>\n  <p anxSlot=\"content\">Body</p>\n  <div anxSlot=\"footer\">Actions</div>\n</anarchitects-ui-card>\n```\n\n## Template usage\n\n```html\n<ng-template anxTemplate=\"item\" let-item>{{ item.name }}</ng-template> <ng-template anxTemplate=\"empty\">No items</ng-template>\n```\n\n## Usage\n\nUse composition contracts inside domain UI components and shared primitives to keep projection APIs stable while allowing app-level template customisation.\n\n## Development notes\n\n- Add new slot/template names only when they are generic and reusable.\n- Keep legacy alias support non-breaking during migrations.\n- Treat this package as contract-only infrastructure; no domain behavior.\n","readmeFilename":"README.md"}