{"_id":"@cool-ai/beach-a2ui","_rev":"17-6b78a916fb7bf9aceb67ff68f458974a","name":"@cool-ai/beach-a2ui","dist-tags":{"latest":"0.5.5"},"versions":{"0.0.1":{"name":"@cool-ai/beach-a2ui","version":"0.0.1","license":"Apache-2.0","_id":"@cool-ai/beach-a2ui@0.0.1","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"dist":{"shasum":"cffcab5640bc8259ae03d215bcc2a15ba9226c58","tarball":"https://registry.npmjs.org/@cool-ai/beach-a2ui/-/beach-a2ui-0.0.1.tgz","fileCount":51,"integrity":"sha512-K8jV2YHXPKdLxOZpIndU4c7n7CLIXC3IOo/ua86Rxyp2XmBkFTFlwK0PwNOmHM3aocgM5KoDTes8XAFofBqcdQ==","signatures":[{"sig":"MEUCIQCU/c/49GILw9cMyXxmbyntrFKycSGwyqK6M1o7Nf4e/wIgcj5FKQk0pHsFlK9IGNjYCfVcnDvQ4PWr32UmOa+W5ic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107336},"type":"module","_from":"file:cool-ai-beach-a2ui-0.0.1.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./builder":{"types":"./dist/builder/index.d.ts","import":"./dist/builder/index.js"},"./renderer":{"types":"./dist/renderer/index.d.ts","import":"./dist/renderer/index.js"}},"scripts":{"dev":"tsc --project tsconfig.json --watch","test":"vitest run","build":"tsc --project tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"_resolved":"/tmp/199cb8cde3153ed0daf78d2b762bb6f3/cool-ai-beach-a2ui-0.0.1.tgz","_integrity":"sha512-K8jV2YHXPKdLxOZpIndU4c7n7CLIXC3IOo/ua86Rxyp2XmBkFTFlwK0PwNOmHM3aocgM5KoDTes8XAFofBqcdQ==","_npmVersion":"10.9.7","description":"A2UI Basic Catalog types, server-side surface builder, and browser-side DOM renderer","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","happy-dom":"^15.0.0","typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/beach-a2ui_0.0.1_1776724577690_0.5001594485556049","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @cool-ai/beach-a2ui-renderer-lit."},"0.1.0":{"name":"@cool-ai/beach-a2ui","version":"0.1.0","license":"Apache-2.0","_id":"@cool-ai/beach-a2ui@0.1.0","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"dist":{"shasum":"a3df5ea408169a9c8cf19e8cbbeaf7d833f54eb2","tarball":"https://registry.npmjs.org/@cool-ai/beach-a2ui/-/beach-a2ui-0.1.0.tgz","fileCount":51,"integrity":"sha512-NnF41vf14bdkX3uN4DFiXw07vGb69Qj6l4SdGS+iT/el718W/qbqarc6iwYQaysFamP8Qk0ujmwqJlJN5TiT5Q==","signatures":[{"sig":"MEQCIBk5YVKu12IUptqvtGakl2pek9CxXfVPM1T2Lpt1QfzCAiBLybsJ07PgV/5ZckmeyjpSzMux2x8ZZdby1lmgqdmKHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":182105},"type":"module","_from":"file:cool-ai-beach-a2ui-0.1.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./builder":{"types":"./dist/builder/index.d.ts","import":"./dist/builder/index.js"},"./renderer":{"types":"./dist/renderer/index.d.ts","import":"./dist/renderer/index.js"}},"scripts":{"dev":"tsc --project tsconfig.json --watch","test":"vitest run","build":"tsc --project tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"_resolved":"/tmp/719a65f28a6e48c9c8c2bfef9523ada1/cool-ai-beach-a2ui-0.1.0.tgz","_integrity":"sha512-NnF41vf14bdkX3uN4DFiXw07vGb69Qj6l4SdGS+iT/el718W/qbqarc6iwYQaysFamP8Qk0ujmwqJlJN5TiT5Q==","_npmVersion":"10.9.7","description":"A2UI Basic Catalog types, server-side surface builder, and browser-side DOM renderer","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","happy-dom":"^15.0.0","typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/beach-a2ui_0.1.0_1776779785280_0.8993059602141145","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @cool-ai/beach-a2ui-renderer-lit."},"0.1.1":{"name":"@cool-ai/beach-a2ui","version":"0.1.1","license":"Apache-2.0","_id":"@cool-ai/beach-a2ui@0.1.1","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"dist":{"shasum":"0169fc44e7ae4325249babf1d77d13ad34234f4a","tarball":"https://registry.npmjs.org/@cool-ai/beach-a2ui/-/beach-a2ui-0.1.1.tgz","fileCount":63,"integrity":"sha512-A8U3DfeJgQ68CeeEcaDqfdozTFpuHma70lWONuL78mZvHEPu6seHCLS4C0Z3QqZw+8ilZv1DGBKqtwMDYct9cw==","signatures":[{"sig":"MEQCIBQa8aNOWN4QSGtHBtDL4IFcyvbQCCjoRI8Lb2UrjcvQAiAQq0RV193zDohhe3hQBkeMAuUWCOSJmJH8mwdF4NFwiw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":216827},"type":"module","_from":"file:cool-ai-beach-a2ui-0.1.1.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./html":{"types":"./dist/html.d.ts","import":"./dist/html.js"},"./builder":{"types":"./dist/builder/index.d.ts","import":"./dist/builder/index.js"},"./renderer":{"types":"./dist/renderer/index.d.ts","import":"./dist/renderer/index.js"}},"scripts":{"dev":"tsc --project tsconfig.json --watch","test":"vitest run","build":"tsc --project tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"_resolved":"/tmp/3836460eb86a994aacc34a0dc36114d1/cool-ai-beach-a2ui-0.1.1.tgz","_integrity":"sha512-A8U3DfeJgQ68CeeEcaDqfdozTFpuHma70lWONuL78mZvHEPu6seHCLS4C0Z3QqZw+8ilZv1DGBKqtwMDYct9cw==","_npmVersion":"10.9.7","description":"A2UI Basic Catalog types, server-side surface builder, and browser-side DOM renderer","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","happy-dom":"^15.0.0","typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/beach-a2ui_0.1.1_1776985212958_0.86470637315465","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @cool-ai/beach-a2ui-renderer-lit."},"0.1.2":{"name":"@cool-ai/beach-a2ui","version":"0.1.2","license":"Apache-2.0","_id":"@cool-ai/beach-a2ui@0.1.2","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"homepage":"https://gitlab.com/johncandrew/beach/-/tree/main/packages/a2ui#readme","bugs":{"url":"https://gitlab.com/johncandrew/beach/-/issues"},"dist":{"shasum":"426af58c9f81e99160f6d2a035c889ed394a9855","tarball":"https://registry.npmjs.org/@cool-ai/beach-a2ui/-/beach-a2ui-0.1.2.tgz","fileCount":76,"integrity":"sha512-Dz1B/M0l/Qktlf4q68BXQi9kmyRyFXYkx61JWEluLfprHIxNwbqvIJnK6VeRRE4VguqUP4okpXSxV2IM+HGq/g==","signatures":[{"sig":"MEYCIQC2ys1Fxm5Ci3CZ66DKPaeE+w2r9C6ZdRMLnEQbUIBRNAIhAKs19uS7Jts7TN0widHvwRlSQiWIptvMdiuVX351HFI+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":469529},"type":"module","_from":"file:cool-ai-beach-a2ui-0.1.2.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./html":{"types":"./dist/html.d.ts","import":"./dist/html.js"},"./builder":{"types":"./dist/builder/index.d.ts","import":"./dist/builder/index.js"},"./renderer":{"types":"./dist/renderer/index.d.ts","import":"./dist/renderer/index.js"}},"scripts":{"dev":"tsc --project tsconfig.json --watch","test":"vitest run","build":"tsc --project tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"_resolved":"/tmp/f5f3d2828f2261a3f3e7647820e7587b/cool-ai-beach-a2ui-0.1.2.tgz","_integrity":"sha512-Dz1B/M0l/Qktlf4q68BXQi9kmyRyFXYkx61JWEluLfprHIxNwbqvIJnK6VeRRE4VguqUP4okpXSxV2IM+HGq/g==","repository":{"url":"git+https://gitlab.com/johncandrew/beach.git","type":"git","directory":"packages/a2ui"},"_npmVersion":"10.9.7","description":"A2UI Basic Catalog and renderer for Beach applications — surface-capable outbound.","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","happy-dom":"^15.0.0","typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/beach-a2ui_0.1.2_1777054361942_0.7451804598378915","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @cool-ai/beach-a2ui-renderer-lit."},"0.1.3":{"name":"@cool-ai/beach-a2ui","version":"0.1.3","license":"Apache-2.0","_id":"@cool-ai/beach-a2ui@0.1.3","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"homepage":"https://cool-ai.org","bugs":{"url":"https://gitlab.com/johncandrew/beach/-/issues"},"dist":{"shasum":"f22c23a4fffd0338fd568643b3e8f6b5db178873","tarball":"https://registry.npmjs.org/@cool-ai/beach-a2ui/-/beach-a2ui-0.1.3.tgz","fileCount":88,"integrity":"sha512-zAM3c9imc+UZCs/Gx2FtCNYoCellZsdQvcNlxOF4mdwVizIx/PCdfU28fHvXP39MWJqQjrWpzrmRAgvTMDS3tA==","signatures":[{"sig":"MEQCIA7fGXM/nfpJxRTz8nK1rOBBOJInxgcm+U0aAdwX7RmnAiAhPf0aB/DqAFWHWODljHK9UkaKfTrXiBtnhhPwf0aL8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":485174},"type":"module","_from":"file:cool-ai-beach-a2ui-0.1.3.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./html":{"types":"./dist/html.d.ts","import":"./dist/html.js"},"./bridge":{"types":"./dist/bridge/index.d.ts","import":"./dist/bridge/index.js"},"./builder":{"types":"./dist/builder/index.d.ts","import":"./dist/builder/index.js"},"./renderer":{"types":"./dist/renderer/index.d.ts","import":"./dist/renderer/index.js"}},"scripts":{"dev":"tsc --project tsconfig.json --watch","test":"vitest run","build":"tsc --project tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"_resolved":"/tmp/d653e6554341e87a1deb73c82e6a678c/cool-ai-beach-a2ui-0.1.3.tgz","_integrity":"sha512-zAM3c9imc+UZCs/Gx2FtCNYoCellZsdQvcNlxOF4mdwVizIx/PCdfU28fHvXP39MWJqQjrWpzrmRAgvTMDS3tA==","repository":{"url":"git+https://gitlab.com/johncandrew/beach.git","type":"git","directory":"packages/a2ui"},"_npmVersion":"10.9.7","description":"A2UI Basic Catalog and renderer for Beach applications — surface-capable outbound.","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","happy-dom":"^15.0.0","typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/beach-a2ui_0.1.3_1777132126975_0.1739201872254721","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @cool-ai/beach-a2ui-renderer-lit."},"0.2.0":{"name":"@cool-ai/beach-a2ui","version":"0.2.0","license":"Apache-2.0","_id":"@cool-ai/beach-a2ui@0.2.0","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"homepage":"https://cool-ai.org","bugs":{"url":"https://gitlab.com/johncandrew/beach/-/issues"},"dist":{"shasum":"4aa0b37987fc829cc3cc2b9f1f2d2b4b47af2642","tarball":"https://registry.npmjs.org/@cool-ai/beach-a2ui/-/beach-a2ui-0.2.0.tgz","fileCount":103,"integrity":"sha512-lzW7c2UBJBdw4yNb2C9ptK0g1so/JibunqxYuoRC/wbAy4tM8wycgsADAXwD6pb0ht9p1Pdhesu31PMTA7xqpA==","signatures":[{"sig":"MEYCIQCzyWc0NCnaVkbVQmWRd3n7r4iqYYa+HAa5el3qb6S1BgIhAN+GBpxK+dO1ODpAOuIuVKDUHwsCrbETEYII2rr4A2fU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":538469},"type":"module","_from":"file:cool-ai-beach-a2ui-0.2.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./html":{"types":"./dist/html.d.ts","import":"./dist/html.js"},"./bridge":{"types":"./dist/bridge/index.d.ts","import":"./dist/bridge/index.js"},"./builder":{"types":"./dist/builder/index.d.ts","import":"./dist/builder/index.js"},"./host-fit":{"types":"./dist/host-fit/index.d.ts","import":"./dist/host-fit/index.js"},"./renderer":{"types":"./dist/renderer/index.d.ts","import":"./dist/renderer/index.js"}},"scripts":{"dev":"tsc --project tsconfig.json --watch","test":"vitest run","build":"tsc --project tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"_resolved":"/tmp/e43b26fecb427fe06b22fcafc10ede55/cool-ai-beach-a2ui-0.2.0.tgz","_integrity":"sha512-lzW7c2UBJBdw4yNb2C9ptK0g1so/JibunqxYuoRC/wbAy4tM8wycgsADAXwD6pb0ht9p1Pdhesu31PMTA7xqpA==","repository":{"url":"git+https://gitlab.com/johncandrew/beach.git","type":"git","directory":"packages/a2ui"},"_npmVersion":"10.9.7","description":"A2UI Basic Catalog and renderer for Beach applications — surface-capable outbound.","directories":{},"_nodeVersion":"22.22.2","dependencies":{},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","happy-dom":"^15.0.0","typescript":"^5.5.0"},"_npmOperationalInternal":{"tmp":"tmp/beach-a2ui_0.2.0_1777476724923_0.9734487491998185","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @cool-ai/beach-a2ui-renderer-lit."},"0.3.0":{"name":"@cool-ai/beach-a2ui","version":"0.3.0","license":"Apache-2.0","_id":"@cool-ai/beach-a2ui@0.3.0","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"homepage":"https://cool-ai.org","bugs":{"url":"https://gitlab.com/johncandrew/beach/-/issues"},"dist":{"shasum":"9bca2354df51bd11ee26086dbeedf940b9b199bf","tarball":"https://registry.npmjs.org/@cool-ai/beach-a2ui/-/beach-a2ui-0.3.0.tgz","fileCount":59,"integrity":"sha512-cpUNucuAigMbRCmTOH/eS7rRfqtgR61ttW7pg10IVeapIh+ryMC1vhpUscwE+ALAmcwWLSpSzelmrcAEcXLTEw==","signatures":[{"sig":"MEYCIQCKlmt0Gz6HwC9h9Y1TZQgDOzQ6LHgU0m6TkNjweNFKcAIhAKzMJoxh/Tf9bbQv3B8R1Rq8XZgJuEdUqeWCnehjga4p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":368167},"type":"module","_from":"file:cool-ai-beach-a2ui-0.3.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./bridge":{"types":"./dist/bridge/index.d.ts","import":"./dist/bridge/index.js"},"./host-fit":{"types":"./dist/host-fit/index.d.ts","import":"./dist/host-fit/index.js"}},"scripts":{"dev":"tsc --project tsconfig.json --watch","test":"vitest run","build":"tsc --project tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"_resolved":"/tmp/0b4d1d43f45d8c80edb720fbeb40bcbf/cool-ai-beach-a2ui-0.3.0.tgz","_integrity":"sha512-cpUNucuAigMbRCmTOH/eS7rRfqtgR61ttW7pg10IVeapIh+ryMC1vhpUscwE+ALAmcwWLSpSzelmrcAEcXLTEw==","repository":{"url":"git+https://gitlab.com/johncandrew/beach.git","type":"git","directory":"packages/a2ui"},"_npmVersion":"10.9.7","description":"A2UI v0.9 wire-type re-exports plus Beach-specific glue (id-order tracker, host-fit conventions). Authoring and rendering live in @a2ui/web_core / @a2ui/lit.","directories":{},"_nodeVersion":"22.22.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^2.0.0","@a2ui/lit":"^0.9.3","happy-dom":"^15.0.0","typescript":"^5.5.0","@a2ui/web_core":"^0.9.2"},"peerDependencies":{"@a2ui/web_core":"^0.9.0"},"_npmOperationalInternal":{"tmp":"tmp/beach-a2ui_0.3.0_1777662567764_0.4704407102877479","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @cool-ai/beach-a2ui-renderer-lit."},"0.4.0":{"name":"@cool-ai/beach-a2ui","version":"0.4.0","license":"Apache-2.0","_id":"@cool-ai/beach-a2ui@0.4.0","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"homepage":"https://cool-ai.org","bugs":{"url":"https://gitlab.com/johncandrew/beach/-/issues"},"dist":{"shasum":"3eaf7b82ebc63df5079714d3ffff16c31d4773f6","tarball":"https://registry.npmjs.org/@cool-ai/beach-a2ui/-/beach-a2ui-0.4.0.tgz","fileCount":79,"integrity":"sha512-XGkFbYNqLZleYypWsZQPlAFXKqYvJFOyIb+D1dpKFlFIQN+/aUEkiNsIt3C6zz9+kvQEsBYSEtVGV5GRahlyQA==","signatures":[{"sig":"MEUCIC828bp/uxFAPreLdhNuWiw4z5vrjkiszJF92kW6hXSbAiEAtOOy5tX7NBW3IzLgGJeGVL8I/EKCBu1t6A6ZLTf/Ov8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":412938},"type":"module","_from":"file:cool-ai-beach-a2ui-0.4.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./bridge":{"types":"./dist/bridge/index.d.ts","import":"./dist/bridge/index.js"},"./host-fit":{"types":"./dist/host-fit/index.d.ts","import":"./dist/host-fit/index.js"},"./render-server":{"types":"./dist/render-server/index.d.ts","import":"./dist/render-server/index.js"}},"scripts":{"dev":"tsc --project tsconfig.json --watch","test":"vitest run","build":"tsc --project tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"_resolved":"/tmp/4b3dfdddb1acce3758457550efa6ac2a/cool-ai-beach-a2ui-0.4.0.tgz","_integrity":"sha512-XGkFbYNqLZleYypWsZQPlAFXKqYvJFOyIb+D1dpKFlFIQN+/aUEkiNsIt3C6zz9+kvQEsBYSEtVGV5GRahlyQA==","repository":{"url":"git+https://gitlab.com/johncandrew/beach.git","type":"git","directory":"packages/a2ui"},"_npmVersion":"10.9.7","description":"A2UI v0.9 wire-type re-exports plus Beach-specific glue (id-order tracker, host-fit conventions). Authoring and rendering live in @a2ui/web_core / @a2ui/lit.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jsdom":"^29.1.1","juice":"^11.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@a2ui/lit":"^0.9.3","happy-dom":"^15.0.0","typescript":"^5.5.0","@types/jsdom":"^28.0.1","@a2ui/web_core":"^0.9.2"},"peerDependencies":{"@a2ui/lit":"^0.9.0","@a2ui/web_core":"^0.9.0"},"peerDependenciesMeta":{"@a2ui/lit":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/beach-a2ui_0.4.0_1777752272967_0.800777583608232","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @cool-ai/beach-a2ui-renderer-lit."},"0.4.1":{"name":"@cool-ai/beach-a2ui","version":"0.4.1","license":"Apache-2.0","_id":"@cool-ai/beach-a2ui@0.4.1","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"homepage":"https://cool-ai.org","bugs":{"url":"https://gitlab.com/johncandrew/beach/-/issues"},"dist":{"shasum":"7396dcaf164f4a1e0ae469c7616c09bf64bae7ac","tarball":"https://registry.npmjs.org/@cool-ai/beach-a2ui/-/beach-a2ui-0.4.1.tgz","fileCount":79,"integrity":"sha512-KPfGPfhJvsERH6soEksM+sNiAGWk6RqWQ10McUUqcTqYcnNlMJTQzhAvUtGM0NGAbMSDpfolOGjDI6O4LnNlQA==","signatures":[{"sig":"MEUCIAuqmNXR0Sb/aWqPi0f4thUIyW3GcRwS7Zukb75RnnIRAiEAz0LjhTYkRXOzEihs4caKQIeL545cIbK84Z94P/HYmqU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":422273},"type":"module","_from":"file:cool-ai-beach-a2ui-0.4.1.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./bridge":{"types":"./dist/bridge/index.d.ts","import":"./dist/bridge/index.js"},"./host-fit":{"types":"./dist/host-fit/index.d.ts","import":"./dist/host-fit/index.js"},"./render-server":{"types":"./dist/render-server/index.d.ts","import":"./dist/render-server/index.js"}},"scripts":{"dev":"tsc --project tsconfig.json --watch","test":"vitest run","build":"tsc --project tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"_resolved":"/tmp/9b683e3fb951c049449156393b358e4c/cool-ai-beach-a2ui-0.4.1.tgz","_integrity":"sha512-KPfGPfhJvsERH6soEksM+sNiAGWk6RqWQ10McUUqcTqYcnNlMJTQzhAvUtGM0NGAbMSDpfolOGjDI6O4LnNlQA==","repository":{"url":"git+https://gitlab.com/johncandrew/beach.git","type":"git","directory":"packages/a2ui"},"_npmVersion":"10.9.7","description":"A2UI v0.9 wire-type re-exports plus Beach-specific glue (id-order tracker, host-fit conventions). Authoring and rendering live in @a2ui/web_core / @a2ui/lit.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jsdom":"^29.1.1","juice":"^11.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@a2ui/lit":"^0.9.3","happy-dom":"^15.0.0","typescript":"^5.5.0","@types/jsdom":"^28.0.1","@a2ui/web_core":"^0.9.2"},"peerDependencies":{"@a2ui/lit":"^0.9.0","@a2ui/web_core":"^0.9.0"},"peerDependenciesMeta":{"@a2ui/lit":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/beach-a2ui_0.4.1_1778003245294_0.5574929408266447","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @cool-ai/beach-a2ui-renderer-lit."},"0.4.2":{"name":"@cool-ai/beach-a2ui","version":"0.4.2","license":"Apache-2.0","_id":"@cool-ai/beach-a2ui@0.4.2","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"homepage":"https://cool-ai.org","bugs":{"url":"https://gitlab.com/johncandrew/beach/-/issues"},"dist":{"shasum":"ab7857f2a362ff417885e32527355bac28a2f19c","tarball":"https://registry.npmjs.org/@cool-ai/beach-a2ui/-/beach-a2ui-0.4.2.tgz","fileCount":63,"integrity":"sha512-zqxkfb0P7JYlrhCm6sPhe51J2TJH+VpxNaL8YbH3pANeIFLK8syn5qlT17W+aE+8OMeYXi9WAHZNpkmFYLbdTg==","signatures":[{"sig":"MEUCIEX/GOsWaKHnzh1D5EObEqAubumjj+5bj93TkUVlpuBqAiEAlUNWcHIa1lt5N5JPXtOqCYM6J+ldgieyHg/qQ0uujaI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":382466},"type":"module","_from":"file:cool-ai-beach-a2ui-0.4.2.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./bridge":{"types":"./dist/bridge/index.d.ts","import":"./dist/bridge/index.js"},"./host-fit":{"types":"./dist/host-fit/index.d.ts","import":"./dist/host-fit/index.js"},"./render-server":{"types":"./dist/render-server/index.d.ts","import":"./dist/render-server/index.js"}},"scripts":{"dev":"tsc --project tsconfig.json --watch","test":"vitest run","build":"tsc --project tsconfig.json","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"_resolved":"/tmp/6c1752186bc30e9b5fff95a7e9c51bd3/cool-ai-beach-a2ui-0.4.2.tgz","_integrity":"sha512-zqxkfb0P7JYlrhCm6sPhe51J2TJH+VpxNaL8YbH3pANeIFLK8syn5qlT17W+aE+8OMeYXi9WAHZNpkmFYLbdTg==","repository":{"url":"git+https://gitlab.com/johncandrew/beach.git","type":"git","directory":"packages/a2ui"},"_npmVersion":"10.9.7","description":"A2UI v0.9 wire-type re-exports plus Beach-specific glue (id-order tracker, host-fit conventions). Authoring and rendering live in @a2ui/web_core / @a2ui/lit.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jsdom":"^29.1.1","juice":"^11.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@a2ui/lit":"^0.9.3","happy-dom":"^15.0.0","typescript":"^5.5.0","@types/jsdom":"^28.0.1","@a2ui/web_core":"^0.9.2"},"peerDependencies":{"@a2ui/lit":"^0.9.0","@a2ui/web_core":"^0.9.0"},"peerDependenciesMeta":{"@a2ui/lit":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/beach-a2ui_0.4.2_1778191669447_0.43819571952098246","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @cool-ai/beach-a2ui-renderer-lit."},"0.5.0":{"name":"@cool-ai/beach-a2ui","version":"0.5.0","license":"Apache-2.0","_id":"@cool-ai/beach-a2ui@0.5.0","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"homepage":"https://cool-ai.org","bugs":{"url":"https://gitlab.com/johncandrew/beach/-/issues"},"dist":{"shasum":"fc223b77528d5f5ad1afec81c983e9a6022d0d0a","tarball":"https://registry.npmjs.org/@cool-ai/beach-a2ui/-/beach-a2ui-0.5.0.tgz","fileCount":67,"integrity":"sha512-h5JBOaIREgrZdbTutY5jdt+U3bdX+fThyCv3yZu+EqPhH6haZ4DJBKm7+rN+baSX1orsImEDS4hEYVjvVN1BXg==","signatures":[{"sig":"MEUCIQCaEgi3440RNEon+VZsRy6LV4e83Inp6kPZSlFZG3xE/AIgKylf6IxX4Jtd69TRnAiZ7H011+p0NBetu1bagT1jb/w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":398519},"type":"module","_from":"file:cool-ai-beach-a2ui-0.5.0.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./bridge":{"types":"./dist/bridge/index.d.ts","import":"./dist/bridge/index.js"},"./host-fit":{"types":"./dist/host-fit/index.d.ts","import":"./dist/host-fit/index.js"},"./render-server":{"types":"./dist/render-server/index.d.ts","import":"./dist/render-server/index.js"}},"scripts":{"dev":"tsc --project tsconfig.json --watch","test":"vitest run","build":"tsc --project tsconfig.json","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"_resolved":"/tmp/d92dd0673ec2148a3c55b7c044075cae/cool-ai-beach-a2ui-0.5.0.tgz","_integrity":"sha512-h5JBOaIREgrZdbTutY5jdt+U3bdX+fThyCv3yZu+EqPhH6haZ4DJBKm7+rN+baSX1orsImEDS4hEYVjvVN1BXg==","repository":{"url":"git+https://gitlab.com/johncandrew/beach.git","type":"git","directory":"packages/a2ui"},"_npmVersion":"10.9.7","description":"A2UI v0.9 wire-type re-exports plus Beach-specific glue (id-order tracker, host-fit conventions). Authoring and rendering live in @a2ui/web_core / @a2ui/lit.","directories":{},"_nodeVersion":"22.22.2","dependencies":{"jsdom":"^29.1.1","juice":"^11.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@a2ui/lit":"^0.9.3","happy-dom":"^15.0.0","typescript":"^5.5.0","@types/jsdom":"^28.0.1","@a2ui/web_core":"^0.9.2"},"peerDependencies":{"@a2ui/lit":"^0.9.0","@a2ui/web_core":"^0.9.0"},"peerDependenciesMeta":{"@a2ui/lit":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/beach-a2ui_0.5.0_1778500639980_0.44875402891841","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @cool-ai/beach-a2ui-renderer-lit."},"0.5.1":{"name":"@cool-ai/beach-a2ui","version":"0.5.1","license":"Apache-2.0","_id":"@cool-ai/beach-a2ui@0.5.1","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"homepage":"https://cool-ai.org","bugs":{"url":"https://gitlab.com/johncandrew/beach/-/issues"},"dist":{"shasum":"a7b23fb2f09021684083a5072e324f1c26d5884c","tarball":"https://registry.npmjs.org/@cool-ai/beach-a2ui/-/beach-a2ui-0.5.1.tgz","fileCount":67,"integrity":"sha512-RDjAN1lSYwZpEo/NoRP10FLaVyVb1QNeb+8J9HkZEPdNs5JX6hmo/qAPbl87as84nNEWp996jyOREkzY4dHkIw==","signatures":[{"sig":"MEUCIG3yKQDwhCt6SA5it2+qJ0l/I6CpR/uR2TavqoyYXd4dAiEAjCCLfdsNjTVVQgN7usmBMPE6xrK/2ntaBxVvxYrOwRU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":402516},"type":"module","_from":"file:cool-ai-beach-a2ui-0.5.1.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./bridge":{"types":"./dist/bridge/index.d.ts","import":"./dist/bridge/index.js"},"./host-fit":{"types":"./dist/host-fit/index.d.ts","import":"./dist/host-fit/index.js"},"./render-server":{"types":"./dist/render-server/index.d.ts","import":"./dist/render-server/index.js"}},"scripts":{"dev":"tsc --project tsconfig.json --watch","test":"vitest run","build":"tsc --project tsconfig.json","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"_resolved":"/tmp/48148134ba961d968a201ecd43a8dcb1/cool-ai-beach-a2ui-0.5.1.tgz","_integrity":"sha512-RDjAN1lSYwZpEo/NoRP10FLaVyVb1QNeb+8J9HkZEPdNs5JX6hmo/qAPbl87as84nNEWp996jyOREkzY4dHkIw==","repository":{"url":"git+https://gitlab.com/johncandrew/beach.git","type":"git","directory":"packages/a2ui"},"_npmVersion":"10.9.8","description":"A2UI v0.9 wire-type re-exports plus Beach-specific glue (id-order tracker, host-fit conventions). Authoring and rendering live in @a2ui/web_core / @a2ui/lit.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"jsdom":"^29.1.1","juice":"^11.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.0.0","@a2ui/lit":"^0.9.3","happy-dom":"^15.0.0","typescript":"^5.5.0","@types/jsdom":"^28.0.1","@a2ui/web_core":"^0.9.2"},"peerDependencies":{"@a2ui/lit":"^0.9.0","@a2ui/web_core":"^0.9.0"},"peerDependenciesMeta":{"@a2ui/lit":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/beach-a2ui_0.5.1_1778783620555_0.7171233594228927","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @cool-ai/beach-a2ui-renderer-lit."},"0.5.2":{"name":"@cool-ai/beach-a2ui","version":"0.5.2","license":"Apache-2.0","_id":"@cool-ai/beach-a2ui@0.5.2","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"homepage":"https://cool-ai.org","bugs":{"url":"https://gitlab.com/johncandrew/beach/-/issues"},"dist":{"shasum":"54e46c4aa4e94d4a5d265f0d6b492d75bd551f89","tarball":"https://registry.npmjs.org/@cool-ai/beach-a2ui/-/beach-a2ui-0.5.2.tgz","fileCount":71,"integrity":"sha512-h2y7IqlqzBS4mMK+uDbu9uM3yhCbR3HIB2omA6rxx/Rdxx3rasi00JbUVHBSEX/NwkhpUwX57xbeeYcQzfFS3w==","signatures":[{"sig":"MEQCICykaItBkKMUVDD0SdgnGxGgSR8TkR9OS9poiuJeIcKmAiA4aJa6/1GrE8OyfFM4/lwbKkBXfmY6WStUwoqhJp8V6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":410661},"type":"module","_from":"file:cool-ai-beach-a2ui-0.5.2.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./bridge":{"types":"./dist/bridge/index.d.ts","import":"./dist/bridge/index.js"},"./host-fit":{"types":"./dist/host-fit/index.d.ts","import":"./dist/host-fit/index.js"},"./render-server":{"types":"./dist/render-server/index.d.ts","import":"./dist/render-server/index.js"}},"scripts":{"dev":"tsc --project tsconfig.json --watch","test":"vitest run","build":"tsc --project tsconfig.json","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"_resolved":"/tmp/0b3842d4ddc2495e84982c9a00826510/cool-ai-beach-a2ui-0.5.2.tgz","_integrity":"sha512-h2y7IqlqzBS4mMK+uDbu9uM3yhCbR3HIB2omA6rxx/Rdxx3rasi00JbUVHBSEX/NwkhpUwX57xbeeYcQzfFS3w==","repository":{"url":"git+https://gitlab.com/johncandrew/beach.git","type":"git","directory":"packages/a2ui"},"_npmVersion":"10.9.8","description":"A2UI v0.9 wire-type re-exports plus Beach-specific glue (id-order tracker, host-fit conventions). Authoring and rendering live in @a2ui/web_core / @a2ui/lit.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"jsdom":"^29.1.1","juice":"^11.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^3.2.0","zod":"^3.23.0","vitest":"^2.0.0","@a2ui/lit":"^0.9.3","happy-dom":"^15.0.0","typescript":"^5.5.0","@types/jsdom":"^28.0.1","@a2ui/web_core":"^0.9.2"},"peerDependencies":{"@a2ui/lit":"^0.9.0","@a2ui/web_core":"^0.9.0"},"peerDependenciesMeta":{"@a2ui/lit":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/beach-a2ui_0.5.2_1778859722559_0.7866536034991245","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @cool-ai/beach-a2ui-renderer-lit."},"0.5.3":{"name":"@cool-ai/beach-a2ui","version":"0.5.3","license":"Apache-2.0","_id":"@cool-ai/beach-a2ui@0.5.3","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"homepage":"https://cool-ai.org","bugs":{"url":"https://gitlab.com/johncandrew/beach/-/issues"},"dist":{"shasum":"cecc6fe81fcd8def81d9ecfa25cbce7dd67ca649","tarball":"https://registry.npmjs.org/@cool-ai/beach-a2ui/-/beach-a2ui-0.5.3.tgz","fileCount":79,"integrity":"sha512-hyrKx1ilf5suGQpnCC9g1jcMWqaPDPeb9ZFsB0/aMMq4BnJjCOKjUJSbMwu/V6vnaik+PbY2E1WClvK4rMAQHw==","signatures":[{"sig":"MEUCIBMG5Ly33MDsl8LKtrd6c5/QEbDfyDVkOxxy6YKJAXjJAiEAnd07DH6PpEyQVuHqEPIh+QgDNLqqVvXiLJ59N5VL7MQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":428985},"type":"module","_from":"file:cool-ai-beach-a2ui-0.5.3.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./bridge":{"types":"./dist/bridge/index.d.ts","import":"./dist/bridge/index.js"},"./host-fit":{"types":"./dist/host-fit/index.d.ts","import":"./dist/host-fit/index.js"},"./catalogues":{"types":"./dist/catalogues/index.d.ts","import":"./dist/catalogues/index.js"},"./render-server":{"types":"./dist/render-server/index.d.ts","import":"./dist/render-server/index.js"}},"scripts":{"dev":"tsc --project tsconfig.json --watch","test":"vitest run","build":"tsc --project tsconfig.json","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"_resolved":"/tmp/c60112f926e6c9735e2893fb8f7266a5/cool-ai-beach-a2ui-0.5.3.tgz","_integrity":"sha512-hyrKx1ilf5suGQpnCC9g1jcMWqaPDPeb9ZFsB0/aMMq4BnJjCOKjUJSbMwu/V6vnaik+PbY2E1WClvK4rMAQHw==","repository":{"url":"git+https://gitlab.com/johncandrew/beach.git","type":"git","directory":"packages/a2ui"},"_npmVersion":"10.9.8","description":"A2UI v0.9 wire-type re-exports plus Beach-specific glue (id-order tracker, host-fit conventions). Authoring and rendering live in @a2ui/web_core / @a2ui/lit.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"jsdom":"^29.1.1","juice":"^11.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^3.2.0","zod":"^3.23.0","vitest":"^2.0.0","@a2ui/lit":"^0.9.3","happy-dom":"^15.0.0","typescript":"^5.5.0","@types/jsdom":"^28.0.1","@a2ui/web_core":"^0.9.2"},"peerDependencies":{"@a2ui/lit":"^0.9.0","@a2ui/web_core":"^0.9.0"},"peerDependenciesMeta":{"@a2ui/lit":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/beach-a2ui_0.5.3_1779110744958_0.671928813093503","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @cool-ai/beach-a2ui-renderer-lit."},"0.5.4":{"name":"@cool-ai/beach-a2ui","version":"0.5.4","license":"Apache-2.0","_id":"@cool-ai/beach-a2ui@0.5.4","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"homepage":"https://cool-ai.org","bugs":{"url":"https://gitlab.com/johncandrew/beach/-/issues"},"dist":{"shasum":"c32ba95d4afe4960a97c084e28bd92783cbbd50d","tarball":"https://registry.npmjs.org/@cool-ai/beach-a2ui/-/beach-a2ui-0.5.4.tgz","fileCount":83,"integrity":"sha512-J8MBeVvG9t2g8RgPtOEq2UIHQFTz3qoCSdPiIkjwcH8e3/1X9FPGMwgTxUuG8GSZNKXc8CJiGx99AjW9AFXBAw==","signatures":[{"sig":"MEYCIQCAd7XbuTsBT6aMmmNXJ2lMz0dKcEWmC9fKSuccnHuJIwIhAPd2Z8Cp9of5z6HduXMsmpSeffMjJsARljjS+U0l1Dpk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":453333},"type":"module","_from":"file:cool-ai-beach-a2ui-0.5.4.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./bridge":{"types":"./dist/bridge/index.d.ts","import":"./dist/bridge/index.js"},"./host-fit":{"types":"./dist/host-fit/index.d.ts","import":"./dist/host-fit/index.js"},"./catalogues":{"types":"./dist/catalogues/index.d.ts","import":"./dist/catalogues/index.js"},"./render-server":{"types":"./dist/render-server/index.d.ts","import":"./dist/render-server/index.js"}},"scripts":{"dev":"tsc --project tsconfig.json --watch","test":"vitest run","build":"tsc --project tsconfig.json","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"_resolved":"/tmp/1334707bb01d1d4ed0e5407e299fb2c6/cool-ai-beach-a2ui-0.5.4.tgz","_integrity":"sha512-J8MBeVvG9t2g8RgPtOEq2UIHQFTz3qoCSdPiIkjwcH8e3/1X9FPGMwgTxUuG8GSZNKXc8CJiGx99AjW9AFXBAw==","repository":{"url":"git+https://gitlab.com/johncandrew/beach.git","type":"git","directory":"packages/a2ui"},"_npmVersion":"10.9.8","description":"A2UI v0.9 wire-type re-exports plus Beach-specific glue (id-order tracker, host-fit conventions). Authoring and rendering live in @a2ui/web_core / @a2ui/lit.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"jsdom":"^29.1.1","juice":"^11.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^3.2.0","zod":"^3.23.0","vitest":"^2.0.0","@a2ui/lit":"^0.9.3","happy-dom":"^15.0.0","typescript":"^5.5.0","@types/jsdom":"^28.0.1","@a2ui/web_core":"^0.9.2"},"peerDependencies":{"@a2ui/lit":"^0.9.0","@a2ui/web_core":"^0.9.0"},"peerDependenciesMeta":{"@a2ui/lit":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/beach-a2ui_0.5.4_1779141694446_0.14824667764878496","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @cool-ai/beach-a2ui-renderer-lit."},"0.5.5":{"name":"@cool-ai/beach-a2ui","version":"0.5.5","license":"Apache-2.0","_id":"@cool-ai/beach-a2ui@0.5.5","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"homepage":"https://cool-ai.org","bugs":{"url":"https://gitlab.com/johncandrew/beach/-/issues"},"dist":{"shasum":"01085cf3911bf4f66158b926497695d46badac05","tarball":"https://registry.npmjs.org/@cool-ai/beach-a2ui/-/beach-a2ui-0.5.5.tgz","fileCount":83,"integrity":"sha512-8nd0lyHYqLI5ZYc5LQE3jeA4hy3V580uLmKcKRwvNNZL/tu/30ytsUkmfViNYUvcZc005cnEhg9jLB3lVyLJEA==","signatures":[{"sig":"MEQCIE8S5W1jFuN9v0rH+LjI++DMv26GteI+DIfaZ6Hv0YiLAiAlmhOOw7wfbJz+qJVPDZALvZlD2RKguIVjsOsOPphnEw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":457272},"type":"module","_from":"file:cool-ai-beach-a2ui-0.5.5.tgz","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./bridge":{"types":"./dist/bridge/index.d.ts","import":"./dist/bridge/index.js"},"./host-fit":{"types":"./dist/host-fit/index.d.ts","import":"./dist/host-fit/index.js"},"./catalogues":{"types":"./dist/catalogues/index.d.ts","import":"./dist/catalogues/index.js"},"./render-server":{"types":"./dist/render-server/index.d.ts","import":"./dist/render-server/index.js"}},"scripts":{"dev":"tsc --project tsconfig.json --watch","test":"vitest run","build":"tsc --project tsconfig.json","coverage":"vitest run --coverage","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"},"_resolved":"/tmp/5c9a5ba51764747f95749ae362f3ef41/cool-ai-beach-a2ui-0.5.5.tgz","_integrity":"sha512-8nd0lyHYqLI5ZYc5LQE3jeA4hy3V580uLmKcKRwvNNZL/tu/30ytsUkmfViNYUvcZc005cnEhg9jLB3lVyLJEA==","repository":{"url":"git+https://gitlab.com/johncandrew/beach.git","type":"git","directory":"packages/a2ui"},"_npmVersion":"10.9.8","description":"A2UI v0.9 wire-type re-exports plus Beach-specific glue (id-order tracker, host-fit conventions). Authoring and rendering live in @a2ui/web_core / @a2ui/lit.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"jsdom":"^29.1.1","juice":"^11.1.1","@cool-ai/beach-a2ui-static":"^0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"lit":"^3.2.0","zod":"^3.23.0","vitest":"^2.0.0","@a2ui/lit":"^0.9.3","happy-dom":"^15.0.0","typescript":"^5.5.0","@types/jsdom":"^28.0.1","@a2ui/web_core":"^0.9.2"},"peerDependencies":{"@a2ui/lit":"^0.9.0","@a2ui/web_core":"^0.9.0"},"peerDependenciesMeta":{"@a2ui/lit":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/beach-a2ui_0.5.5_1779188302183_0.05927183338666708","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Renamed to @cool-ai/beach-a2ui-renderer-lit."}},"time":{"created":"2026-04-20T22:36:17.576Z","modified":"2026-06-06T08:00:49.488Z","0.0.1":"2026-04-20T22:36:17.821Z","0.1.0":"2026-04-21T13:56:25.477Z","0.1.1":"2026-04-23T23:00:13.092Z","0.1.2":"2026-04-24T18:12:42.180Z","0.1.3":"2026-04-25T15:48:47.121Z","0.2.0":"2026-04-29T15:32:05.080Z","0.3.0":"2026-05-01T19:09:27.994Z","0.4.0":"2026-05-02T20:04:33.129Z","0.4.1":"2026-05-05T17:47:25.437Z","0.4.2":"2026-05-07T22:07:49.631Z","0.5.0":"2026-05-11T11:57:20.157Z","0.5.1":"2026-05-14T18:33:40.710Z","0.5.2":"2026-05-15T15:42:02.701Z","0.5.3":"2026-05-18T13:25:45.117Z","0.5.4":"2026-05-18T22:01:34.611Z","0.5.5":"2026-05-19T10:58:22.326Z"},"bugs":{"url":"https://gitlab.com/johncandrew/beach/-/issues"},"license":"Apache-2.0","homepage":"https://cool-ai.org","repository":{"url":"git+https://gitlab.com/johncandrew/beach.git","type":"git","directory":"packages/a2ui"},"description":"A2UI v0.9 wire-type re-exports plus Beach-specific glue (id-order tracker, host-fit conventions). Authoring and rendering live in @a2ui/web_core / @a2ui/lit.","maintainers":[{"name":"johncandrew","email":"johncandrew@yahoo.co.uk"}],"readme":"# @cool-ai/beach-a2ui\n\nA2UI v0.9 wire-type re-exports plus Beach-specific glue (id-order tracker, host-fit conventions). Authoring and rendering live in the A2UI ecosystem itself; this package is a thin bridge.\n\n> **Home:** [cool-ai.org](https://cool-ai.org) · **Documentation:** [cool-ai.org/docs](https://cool-ai.org/docs)\n\n## Install\n\n```sh\nnpm install @cool-ai/beach-a2ui @a2ui/web_core\n```\n\n`@a2ui/web_core` is a peer dependency. Consumers using only the bridge or host-fit subpaths (no wire-shape types) need not install it.\n\n## What this package contains\n\nThe package now ships only Beach-specific glue and re-exports from `@a2ui/web_core/v0_9`. Earlier versions shipped a parallel typed-component layer + DOM/HTML renderers; that layer has been retired. This is the consequence of the \"no parallel walker\" architectural commitment — A2UI's catalogue model is the canonical authoring surface, `@a2ui/lit` is the canonical browser renderer, and Beach contributes only what is genuinely Beach-specific.\n\n| Subpath | What it ships |\n|---|---|\n| `@cool-ai/beach-a2ui` | Wire-shape type re-exports (`SurfaceCommand`, `CreateSurfaceCommand`, …), `SurfaceInteractionEvent`, and the Beach `SurfaceComponent` type schema |\n| `@cool-ai/beach-a2ui/bridge` | `createIdOrderTracker` — Beach-specific glue for paged-update patterns (`updateDataModel` against indexed paths) |\n| `@cool-ai/beach-a2ui/host-fit` | `parseHostConfig` + breakpoint constants — Beach's `--beach-host-config` viewport conventions for catalogue components |\n| `@cool-ai/beach-a2ui/render-server` | `renderToHtml` and `renderToText` — server-side rendering of A2UI surfaces. Runs `@a2ui/lit` under jsdom and adapts the rendered DOM tree per channel. |\n\n## Authoring A2UI surfaces\n\nAuthor components against A2UI v0.9's open catalogue shape. Either use object literals directly:\n\n```typescript\nimport type { SurfaceCommand } from '@cool-ai/beach-a2ui';\n\nconst surface: SurfaceCommand[] = [\n  { version: 'v0.9', createSurface: { surfaceId: 'flight-results', catalogId: 'basic' } },\n  { version: 'v0.9', updateComponents: { surfaceId: 'flight-results', components: [\n    { component: 'Heading', text: 'Flights to Paris', level: 2 },\n    { component: 'List', items: { path: '/flights' }, template: {\n      component: 'Card',\n      children: [\n        { component: 'Text', text: { path: 'flightNumber' }, variant: 'bold' },\n        { component: 'Text', text: { path: 'pricePerPerson' } },\n      ],\n    } },\n  ] } },\n];\n```\n\nOr compose against catalogue-specific helpers from [`@cool-ai/beach-a2ui-basics`](../a2ui-basics/README.md), which extends `@a2ui/web_core`'s basic catalogue with Beach-shaped primitives (Pill, etc.) registered via the catalogue mechanism.\n\n## Rendering\n\n### Browser\n\nBrowser DOM rendering is delegated entirely to `@a2ui/lit`:\n\n```typescript\nimport { A2UIClient } from '@a2ui/lit';\n\nconst client = new A2UIClient(document.getElementById('workspace')!);\nclient.handle(surface);\n```\n\n### Server (email, WhatsApp, SMS, voice)\n\nServer-side rendering ships in [`@cool-ai/beach-a2ui/render-server`](./src/render-server). Two pairs of renderers cover Beach's outbound delivery surfaces — a Lit-based pair for the live-runtime path and a static pair for batched non-browser channels:\n\n**Lit-based (browser-shaped, async, jsdom + Lit):**\n\n- **`renderToHtml(commands, options?)`** — email-client-compatible HTML. Runs `@a2ui/lit` under jsdom; serialises the rendered DOM tree (including shadow roots); applies juice to inline styles. `options.inlineCss = false` skips the juicer pass.\n- **`renderToText(commands, options?)`** — plain text via DOM-tree walker with semantic HTML rules (block elements newline-separate, `<a>` becomes `text (url)`, `<button>` becomes `[ text ]`, headings prefix line breaks, list items bullet). For WhatsApp / SMS / voice composers.\n\n**Static (Lit-free, synchronous, no jsdom):**\n\n- **`renderToStaticHTML(commands, options?)`** — same input, different output strategy: synchronous walk of the `SurfaceCommand` stream, table-based markup, every style inline, no custom-element tags. The channel-safety contract is codified in `assertEmailSafe(html)` (also exported); every Beach test runs its output through it.\n- **`renderToStaticText(commands, options?)`** — sibling to the above for plain text.\n\nUse the static pair when the consumer never reaches a browser: outbound email, WhatsApp summary, archived render, MIME `plainText` alternative. Use the Lit pair when the same surface that will reach a browser also needs a server render and you want byte-equal output across both paths.\n\n```typescript\nimport { renderToHtml, renderToText } from '@cool-ai/beach-a2ui/render-server';\n\nconst html = await renderToHtml(commands);   // email body\nconst text = await renderToText(commands);   // WhatsApp message body\n```\n\nThe architectural commitment for the **Lit-based** pair: Beach does **not** walk the `SurfaceCommand` stream itself. `@a2ui/lit` walks it (Google's reference renderer); Beach adapts the resulting DOM tree. New A2UI components — Card v2, novel layouts, future primitives — get text + HTML output for free because they compose existing HTML semantics.\n\nThe **static** pair walks the stream directly because the channels it serves (email, WhatsApp, archive) cannot accept custom-element tags. Per-component emission rules live in [`render-server/static/emit-html.ts`](./src/render-server/static/emit-html.ts) and `emit-text.ts`; data-bindings (`{ path }`) resolve at compose time against the accumulated `updateDataModel` state via RFC-6901 JSON-Pointer; function-call bindings throw `A2uiStaticRenderFunctionCallError` (the live runtime owns function-call evaluation, not the static walker). Consumer-catalogue components plug in via the `extensions` option: each extension receives **resolved props** (data-bindings already evaluated) plus the **pre-rendered children string**, so it wraps the inner content in domain-specific markup without re-implementing basic-catalogue emission.\n\n```typescript\nimport { renderToStaticHTML, assertEmailSafe } from '@cool-ai/beach-a2ui/render-server';\n\nconst html = renderToStaticHTML(commands, {\n  extensions: {\n    DestinationCard: (props, renderedChildren) =>\n      `<table><tr><td><strong>${props.destinationName}</strong>${renderedChildren}</td></tr></table>`,\n  },\n});\n\nassertEmailSafe(html); // throws A2uiEmailSafetyError if anything would break in Gmail / Outlook\n```\n\n#### Custom catalogues\n\nBoth renderers accept an additional `catalogs` option for surfaces that use consumer catalogues alongside the default basic catalogue:\n\n```typescript\nimport { renderToHtml, renderToText } from '@cool-ai/beach-a2ui/render-server';\nimport type { Catalog } from '@cool-ai/beach-a2ui/render-server';\nimport { taCatalogue } from '@my-org/ta-catalogue';\n\nconst html = await renderToHtml(commands, { catalogs: [taCatalogue] });\nconst text = await renderToText(commands, { catalogs: [taCatalogue] });\n```\n\nThe same `Catalog` type also re-exports from `@cool-ai/beach-a2ui` for catalogue authoring. Two constraints:\n\n1. **`@a2ui/lit` flavour, not `@a2ui/web_core` flavour.** Catalogues passed here must register their custom elements via `@customElement` at import time — the same shape `A2uiBridge({ catalogues })` accepts on the browser. A data-only `@a2ui/web_core` catalogue without Lit elements will not render.\n2. **SSR-compatible component implementations.** Component classes get loaded inside the jsdom render bootstrap, so they cannot rely on browser-only APIs (`window.fetch`, click handlers firing during render, network calls in connected lifecycle hooks). The render pass is one-shot serialisation; any work that assumes a live browser does not apply.\n\n`basicCatalog` is always registered regardless of the `catalogs` value; the list is additive. Passing `catalogs: []`, `undefined`, or omitting the field are equivalent.\n\nThe renderer awaits every Lit element in the surface subtree, not just the outer `<a2ui-surface>` host. Consumer-catalogue elements with deferred internal renders are settled before the rendered tree is serialised. If a custom element fails to settle within a bounded retry budget the renderer throws rather than emitting an empty wrapper; that loud failure is intentional — the alternative (silent empty output) hides real rendering bugs.\n\n#### Merging catalogues\n\nA2UI v0.9 binds each surface to exactly one catalogue. A surface that uses `Card` (basic) wrapping `Show` (basics) wrapping a custom domain component needs all three resolvable from one catalogue. `mergeCatalogues()` from `@cool-ai/beach-a2ui` (also re-exported from `@cool-ai/beach-a2ui/render-server` and `@cool-ai/beach-a2ui/catalogues`) builds that single catalogue:\n\n```typescript\nimport { basicCatalog } from '@a2ui/lit/v0_9';\nimport { beachBasicsCatalog } from '@cool-ai/beach-a2ui-basics';\nimport { mergeCatalogues } from '@cool-ai/beach-a2ui';\n\nconst taCatalogue = mergeCatalogues(\n  'https://travel-assistant.cool-digital.co.uk/a2ui/v0.9/catalogue.json',\n  [basicCatalog, beachBasicsCatalog, taOwnComponents],\n);\n\n// Surfaces created with `catalogId: taCatalogue.id` resolve every\n// component from any source catalogue under one Map lookup.\nconst html = await renderToHtml(commands, { catalogs: [taCatalogue] });\n```\n\nCollision rules:\n\n- **Component-name collisions:** default `onCollision: 'error'` throws `A2uiCatalogueMergeError` naming both source catalogue ids. Use `'first-wins'` to make basic-catalogue entries authoritative; use `'last-wins'` for consumer-side overrides of basic entries.\n- **`functions` map:** only one source catalogue may carry a non-empty `functions` map; the helper throws if two do. Function merging is intentionally not automatic — consumers should build a single source-of-truth catalogue and pass that explicitly.\n- **`themeSchema`:** only one theme schema may be present; identity-equal references are accepted (same theme passed through multiple catalogues). Different schemas throw.\n\nEach merged entry preserves its `tagName` and other extra fields verbatim from the source — the helper is a structural combine, not a re-shape. Merged catalogues can themselves be merged again (the operation is associative for non-conflicting inputs).\n\nWire into `@cool-ai/beach-format`'s `A2uiContentRenderer`:\n\n```typescript\nimport { A2uiContentRenderer } from '@cool-ai/beach-format';\nimport { renderToHtml, renderToText } from '@cool-ai/beach-a2ui/render-server';\n\nconst a2uiRenderer = new A2uiContentRenderer({\n  html: (commands) => renderToHtml(commands as SurfaceCommand[]),\n  text: (commands) => renderToText(commands as SurfaceCommand[]),\n});\n```\n\nThe render-server subpath has runtime deps on `jsdom` and `juice` and a peer-dep on `@a2ui/lit`. Consumers using only `bridge` / `host-fit` (no server rendering) do not pull these in.\n\n### Defensive instrumentation — `validateCatalogues` and renderer error types\n\n`renderToHtml` and `renderToText` invoke `validateCatalogues` inline before processing commands. The validator catches the two catalogue-shape failures that previously surfaced as silent `<a2ui-surface></a2ui-surface>` output:\n\n1. A `@a2ui/web_core` data-only catalogue (no `tagName` on entries) was passed where a `@a2ui/lit`-flavoured catalogue is expected — throws `A2uiRendererCatalogueShapeError` with `reason: 'missing-tagName'`.\n2. A Lit catalogue module was imported before `bootstrapServerRender()` provisioned jsdom's `customElements` registry, so the `@customElement` decorator's `customElements.define()` call no-op'd — throws `A2uiRendererCatalogueShapeError` with `reason: 'unregistered-tagName'`.\n\nAfter the render pass, an empty-render guard catches the remaining three failure modes (unknown component name, consumer-catalogue element's `render()` returned nothing, top-level component id ≠ `\"root\"`) by throwing `A2uiRendererEmptyRenderError` with the affected `surfaceIds`.\n\nYou can call `validateCatalogues` directly from your own boot path — after a dynamic catalogue import — to surface failures at module load rather than at first render:\n\n```typescript\nimport { bootstrapServerRender, validateCatalogues } from '@cool-ai/beach-a2ui/render-server';\n\nawait bootstrapServerRender();\nconst { taCatalogue } = await import('@your-org/ta-a2ui-catalogue');\nvalidateCatalogues([taCatalogue]);  // throws now, not at first render\n```\n\nExported error types (`A2uiRendererError` base, `A2uiRendererCatalogueShapeError`, `A2uiRendererEmptyRenderError`) carry `catalogueId` / `componentName` / `reason` / `surfaceIds` / `commandCount` fields so consumers can route on specific failure modes if needed.\n\n## `bridge` — id-order tracker\n\nSome progressive-update patterns receive a list of IDs early (a discover-grid populated with destinations) and per-ID detail later (hotel results for one destination). To target the later updates with a JSON-Pointer `updateDataModel` path, the integration layer needs the index of each ID within the original ordered list. `createIdOrderTracker` is the small piece of Beach-specific glue that records and looks up that mapping.\n\n```typescript\nimport { createIdOrderTracker } from '@cool-ai/beach-a2ui/bridge';\n\nconst tracker = createIdOrderTracker();\ntracker.set('discover-grid', ['Paris', 'Rome', 'Tokyo', 'Lima']);\n\nconst idx = tracker.indexOf('discover-grid', 'Rome');  // 1\n// updateDataModel path:  `/destinations/${idx}/hotels`\n```\n\nTiny, no external dependencies, scope-it-however-the-consumer-wants.\n\n## `host-fit` — viewport conventions\n\nCatalogue components that adapt to their host (chat panel vs. full-page surface vs. modal) need a uniform way to discover the host's intended sizing. `parseHostConfig` reads the `--beach-host-config` CSS custom property — a JSON blob describing breakpoints, container types, and other host hints — and returns a typed config consumers can read inside their components.\n\n```typescript\nimport { parseHostConfig, BREAKPOINT_NARROW } from '@cool-ai/beach-a2ui/host-fit';\n\nconst config = parseHostConfig(myComponent);\nif (config.maxWidth !== undefined && config.maxWidth < BREAKPOINT_NARROW) {\n  // narrow-host layout\n}\n```\n\nThis convention exists so catalogue components can use `@container` queries against the surface's allocated inline size, not the viewport. The renderer no longer applies `container-type: inline-size` automatically — that lived in the retired Beach renderer; consumers who use `@a2ui/lit` apply the same CSS in their own stylesheet (`.a2ui-surface { container-type: inline-size; }`).\n\n## Coexisting with bespoke part renderers\n\nA consumer with stateful or proprietary UI (an itinerary builder with slot-bound state, a multi-centre timeline) runs their own renderer alongside `@a2ui/lit`. The pattern is to dispatch envelope parts by `partType`:\n\n```typescript\nenvelopeStream.on('part', (part) => {\n  switch (part.partType) {\n    case 'a2ui-surface':\n      a2uiClient.handle(part.data);         // @a2ui/lit\n      break;\n    case 'ta.itinerary-slot-state':\n      itineraryRenderer.apply(part.data);   // consumer-owned\n      break;\n  }\n});\n```\n\n`a2ui-surface` and consumer-defined types are siblings in the envelope. Both reach the browser via the same SSE stream, dispatched by `partType`. Beach's scope here is the dispatch + the bridge helpers above; the actual rendering is Google's reference renderer plus consumer-owned bespoke renderers.\n\n## SurfaceComponent type schema\n\n`SurfaceComponent` is Beach's typed authoring vocabulary for surface components. It is a discriminated union where the `type` field identifies the component kind. Actors use it to produce typed `a2ui-surface` parts; a builder layer (forthcoming) translates `SurfaceComponent[]` to the A2UI v0.9 wire shape (`SurfaceCommand[]`) consumed by `@a2ui/lit`.\n\nNote the naming convention: `SurfaceComponent` uses `type:` as the discriminant (`{ type: 'Text', text: 'hello' }`). The A2UI v0.9 wire shape uses `component:` (`{ component: 'Text', text: 'hello' }`). These two layers are distinct — `SurfaceComponent` is the Beach authoring surface; `SurfaceCommand` is the wire format sent to the browser.\n\n```typescript\nimport type { SurfaceComponent } from '@cool-ai/beach-a2ui';\n\nconst components: SurfaceComponent[] = [\n  { type: 'Heading', text: 'Flights to Paris', level: 2 },\n  { type: 'List', items: { path: 'flights' }, template: {\n    type: 'Card',\n    children: [\n      { type: 'Text', text: { path: 'flightNumber' }, variant: 'bold' },\n      { type: 'Text', text: { $: 'formatNumber', value: { path: 'price' }, style: 'currency', currency: 'GBP' } },\n      { type: 'Button', label: 'Book', action: { type: 'submit', payload: { flightId: 'id' } } },\n    ],\n  } },\n];\n```\n\n### `Bindable<T>` — literal or data-model binding\n\nAny field typed as `Bindable<T>` accepts either a literal value (`\"hello\"`, `99`) or a `PathRef` (`{ path: 'user.name' }`) that is resolved at render time from the surface's data model.\n\n### Format expressions\n\n`FormatExpression` produces a display string at render time:\n\n```typescript\n{ $: 'formatNumber', value: { path: 'price' }, style: 'currency', currency: 'GBP' }\n{ $: 'formatDate',   value: { path: 'departureDate' }, format: 'short' }\n{ $: 'formatString', template: 'Hello, {name}!', values: { name: { path: 'user.name' } } }\n```\n\n### Full export list\n\n`SurfaceComponent` and all constituent interfaces (`TextComponent`, `HeadingComponent`, `BadgeComponent`, `ImageComponent`, `IconComponent`, `RowComponent`, `ColumnComponent`, `CardComponent`, `ListComponent`, `DividerComponent`, `ButtonComponent`, `TextInputComponent`, `CheckBoxComponent`, `ChoicePickerComponent`, `TabsComponent`, `ComparisonTableComponent`, `TimelineComponent`, `PriceBreakdownComponent`, `RatingComponent`, `GalleryComponent`) plus supporting types (`PathRef`, `Bindable`, `FormatExpression`, `ButtonAction`, `TabItem`, `ComparisonTableColumn`, `PriceLine`, `PriceLineVariant`, `GalleryItem`) are all exported from the package root.\n\n## What this package no longer contains\n\nBeach's parallel A2UI renderer layer has been retired. Specifically removed:\n\n- Typed component constructors (`text`, `heading`, `card`, `button`, …). Author component object literals directly or use `@cool-ai/beach-a2ui-basics`'s catalogue helpers.\n- The vanilla-DOM `A2UIRenderer` and the original `renderHtml` server-side renderer. Browser rendering uses `@a2ui/lit`; server-side rendering ships in the `@cool-ai/beach-a2ui/render-server` subpath.\n- The `./builder`, `./renderer`, and `./html` subpath exports.\n\n## Not in this package\n\n- The envelope builder that includes the surface part (`@cool-ai/beach-protocol`).\n- Channel delivery of surface messages (`@cool-ai/beach-transport`).\n- Browser rendering (`@a2ui/lit`, Google's reference).\n- Catalogue extensions (`@cool-ai/beach-a2ui-basics`, plus consumer-defined catalogues).\n\n## Consumers\n\nAny agent with a UI. Pure API-serving agents skip this package.\n\n## Related\n\n- [A2UI spec](https://a2ui.org/) — the protocol this package re-exports types from.\n- [`@a2ui/web_core`](https://www.npmjs.com/package/@a2ui/web_core) — the canonical type and catalogue source.\n- [`@a2ui/lit`](https://www.npmjs.com/package/@a2ui/lit) — Google's reference browser renderer.\n- [`@cool-ai/beach-a2ui-basics`](../a2ui-basics/README.md) — Beach-shaped catalogue extensions.\n- [https://cool-ai.org/docs/envelope](https://cool-ai.org/docs/envelope) — how surface messages travel in the envelope.\n","readmeFilename":"README.md"}