{"_id":"@_linked/shape-ui","_rev":"2-5f02dd028c21d9b88b5e676e11cd69f7","name":"@_linked/shape-ui","dist-tags":{"latest":"2.2.0"},"versions":{"2.0.0":{"name":"@_linked/shape-ui","version":"2.0.0","keywords":["lincd","linked data","interoperable","semantic web","web3"],"author":{},"license":"ISC","_id":"@_linked/shape-ui@2.0.0","maintainers":[{"name":"rene_reborn","email":"email@rene.life"}],"homepage":"https://github.com/linked-cm/ui#readme","bugs":{"url":"https://github.com/linked-cm/ui/issues"},"dist":{"shasum":"9dce3953af46977fc014805d8cea5d4b08d89fcc","tarball":"https://registry.npmjs.org/@_linked/shape-ui/-/shape-ui-2.0.0.tgz","fileCount":53,"integrity":"sha512-c53RmT1d1gLuoE8++wksjSyPnU/sh/hUGQpK14cwgnU84g2Rvdfsg8PoekczJBdPiJgKihcqefiPFBpAqAxHQQ==","signatures":[{"sig":"MEUCIQCq8eLqOyA0MWT9YYn/Xe2embi3WufImp+VocvlEw9nWwIgVuz/KJ9BiZe82I0aDQeDZA4fNMScXM4vgbaJhL6nQHc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":54918},"main":"lib/index.js","types":"dist/lincd-ui.d.ts","module":"lib/esm/index.js","exports":{".":{"types":"./lib/esm/index.d.ts","import":"./lib/esm/index.js"},"./*":{"types":"./lib/esm/*.d.ts","import":"./lib/esm/*.js"},"./*.js":{"types":"./lib/esm/*.d.ts","import":"./lib/esm/*.js"}},"gitHead":"45ecee28a3f6ecd0d485c1533be49e7778a7a241","scripts":{"build":"rimraf ./lib && yarn build-esm && yarn copy-to-lib","start":"npm exec linked dev","build-esm":"echo \"compiling ESM\" && rimraf ./lib/esm && (yarn tsc -p tsconfig-esm.json || echo 'tsc returned non-zero; .js still emitted via noEmitOnError default')","copy-to-lib":"echo 'copying CSS + JSON assets to lib folder' && yarn copyfiles -u 1 'src/**/*.css' 'src/**/*.json' lib/esm"},"_npmUser":{"name":"rene_reborn","email":"email@rene.life"},"repository":{"url":"git+https://github.com/linked-cm/ui.git","type":"git"},"_npmVersion":"11.19.1","description":"Shape-driven UI: components that take a shape and a property shape and render an editor for any shape, rather than a known one. Built on @_linked/primitives.","directories":{},"_nodeVersion":"22.17.1","dependencies":{"@_linked/core":"^2.0.1","@_linked/react":"^1.2","@_linked/schema":"^1.0","@_linked/server":"^2.0","@_linked/primitives":"^1.0"},"linkedPackage":true,"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["lib/esm/*"]}},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^5.0.7","copyfiles":"^2.4.1","typescript":"^5.7.3","@types/node":"^20.14.9","@_linked/cli":"^1.2","@capacitor/core":"^5.3.0","@changesets/cli":"^2.29.8","tsconfig-to-dual-package":"^1.2.0","@changesets/changelog-github":"^0.5.2","typescript-plugin-css-modules":"^5.1.0"},"_npmOperationalInternal":{"tmp":"tmp/shape-ui_2.0.0_1789073283559_0.25025165641926805","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"_id":"@_linked/shape-ui@2.2.0","bugs":{"url":"https://github.com/linked-cm/shape-ui/issues"},"dist":{"shasum":"d266e8d020d45ad6e51a756542b87f84611a4077","tarball":"https://registry.npmjs.org/@_linked/shape-ui/-/shape-ui-2.2.0.tgz","integrity":"sha512-nbC7i+7jmlsonKmAmKj7v+ix3EJcRlEpnY1oX2zncvpEqjzkz7FFkQfdaAeItyhKZBPBgAsN8tA0i7NTk8RUqw==","fileCount":180,"unpackedSize":815364,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@_linked%2fshape-ui@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDvxsP0SxICqZY00jQGGtXdnuffINXxSUBpmmQXMqQJfgIgesgG/x+opCd1YpfSLbnOouQ8yweDlZCqjp85ZZf0JhM="}]},"main":"lib/esm/index.js","name":"@_linked/shape-ui","type":"module","types":"lib/esm/index.d.ts","author":{},"module":"lib/esm/index.js","exports":{".":{"types":"./lib/esm/index.d.ts","import":"./lib/esm/index.js","default":"./lib/esm/index.js","development":"./src/index.ts"},"./*":{"types":"./lib/esm/*.d.ts","import":"./lib/esm/*.js","default":"./lib/esm/*.js","development":"./src/*.ts"},"./tokens.css":"./src/tokens.css","./components/*":{"types":"./lib/esm/components/*.d.ts","import":"./lib/esm/components/*.js","default":"./lib/esm/components/*.js","development":"./src/components/*.tsx"}},"gitHead":"46114dba36ae700fefb24ee2ea1e388a0cd0e8e5","license":"ISC","scripts":{"build":"rimraf ./lib && yarn build-esm && yarn copy-to-lib","start":"npm exec linked dev","build-esm":"echo \"compiling ESM\" && rimraf ./lib/esm && tsc -p tsconfig-esm.json","copy-to-lib":"echo 'copying CSS + JSON assets to lib folder' && copyfiles -u 1 'src/**/*.css' 'src/**/*.json' lib/esm"},"version":"2.2.0","_npmUser":{"name":"rene_reborn","email":"email@rene.life","approver":{"name":"rene_reborn","email":"email@rene.life"}},"homepage":"https://github.com/linked-cm/shape-ui#readme","keywords":["lincd","linked data","interoperable","semantic web","web3"],"repository":{"url":"git+https://github.com/linked-cm/shape-ui.git","type":"git"},"_npmVersion":"11.19.1","description":"UI driven by a shape: editors, a table over any shape's instances, a form derived from its properties, a read-only view and a relation picker — plus the read and write paths through the Linked Query DSL.","directories":{},"maintainers":[{"name":"rene_reborn","email":"email@rene.life"}],"_nodeVersion":"22.16.0","dependencies":{"@_linked/core":"^2.18.0","@_linked/react":"^1.4","@_linked/schema":"^1.0","@tanstack/react-table":"^8.20.5"},"linkedPackage":true,"publishConfig":{"access":"public"},"typesVersions":{"*":{"*":["lib/esm/*"]}},"devDependencies":{"react":"^18.2","rimraf":"^5.0.7","copyfiles":"^2.4.1","react-dom":"^18.2","typescript":"^5.7.3","@types/node":"^20.14.9","@_linked/cli":"^1.2","@_linked/css":"^0.3.0","@types/react":"^18.0.17","framer-motion":"^12.0.0","@_linked/icons":"^1.0.0","@capacitor/core":"^5.3.0","@changesets/cli":"^2.29.8","@_linked/primitives":"^1.2.0","tsconfig-to-dual-package":"^1.2.0","@changesets/changelog-github":"^0.5.2","typescript-plugin-css-modules":"^5.1.0"},"peerDependencies":{"react":"^18 || ^19","@_linked/css":"^0.3.0","framer-motion":">=11","@_linked/icons":"^1.0.0","@_linked/primitives":"^1.2.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/shape-ui_2.2.0_1789126505696_0.38979364065229327"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-10T20:48:02.872Z","modified":"2026-09-11T11:35:06.075Z","2.0.0":"2026-09-10T20:48:03.694Z","2.2.0":"2026-09-11T11:35:05.814Z"},"bugs":{"url":"https://github.com/linked-cm/shape-ui/issues"},"author":{},"license":"ISC","homepage":"https://github.com/linked-cm/shape-ui#readme","keywords":["lincd","linked data","interoperable","semantic web","web3"],"repository":{"url":"git+https://github.com/linked-cm/shape-ui.git","type":"git"},"description":"UI driven by a shape: editors, a table over any shape's instances, a form derived from its properties, a read-only view and a relation picker — plus the read and write paths through the Linked Query DSL.","maintainers":[{"name":"rene_reborn","email":"email@rene.life"}],"readme":"# `@_linked/shape-ui`\n\nUI driven by a shape.\n\nEach component takes a `Shape` and a property shape and renders a control for it — a text\nfield, a select, a date picker, an avatar. It works on *any* shape, not a known one, which is\nthe whole point: an application that adds a property gets an editor for it without writing\none.\n\n```tsx\n<TextfieldEditor of={person} property={givenName} />\n```\n\n## Where it sits\n\n| Layer | Package | Knows about |\n|---|---|---|\n| Design tokens | `@_linked/css` | nothing |\n| Headless components | `@_linked/primitives` | the DOM and the tokens |\n| Data binding | `@_linked/react` | shapes and queries; ships no components |\n| **Shape-driven UI** | **`@_linked/shape-ui`** | how to render an arbitrary shape |\n| Product surfaces | applications | one product's domain vocabulary |\n\nEverything here renders a `@_linked/primitives` control and adds the shape binding. Nothing\nhere knows about a specific product.\n\n**Consume this layer rather than rebuilding it.** A product that needs a shape-driven form\nfield extends what is here; growing a second implementation inside an application is how the\nsame component ends up existing three times, and then drifting.\n\n## Why the name changed\n\nThis package was `@_linked/ui`. That name said only \"not backend\" — the least informative\nlabel available for the layer most in need of one that states its contract. `shape-ui` says\nwhat it is.\n","readmeFilename":"README.md"}