{"_id":"@humanspeak/svelte-render","_rev":"6-16cad18aca453454f46bfd75bf1024b3","name":"@humanspeak/svelte-render","dist-tags":{"latest":"5.1.1"},"versions":{"3.0.1":{"name":"@humanspeak/svelte-render","version":"3.0.1","keywords":["svelte","sveltejs","render","template"],"author":{"name":"Humanspeak, Inc."},"license":"MIT","_id":"@humanspeak/svelte-render@3.0.1","maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"homepage":"https://github.com/humanspeak/svelte-render#readme","bugs":{"url":"https://github.com/humanspeak/svelte-render/issues"},"dist":{"shasum":"ac60554b8c813f22e421baf4f88e422bdb04034b","tarball":"https://registry.npmjs.org/@humanspeak/svelte-render/-/svelte-render-3.0.1.tgz","fileCount":15,"integrity":"sha512-8HseuG+zJS3eAGBX4XjOXc+nPg5lYtXBHzXQhicANPvdX/fUK5ka1R5gUVh8cJPS4DYGOC9jlRV6XnP3xELgVA==","signatures":[{"sig":"MEYCIQCWb73gFGIf6c84SWQYNOud0J8TUQUp6sw6jh+qzzG6pAIhAIwMW6HlVmLcAdp0rCjPeTDZkuohaIORKr9rIT3mJcQu","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14234},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"3746a3618b77169f6b14fdc0c3ccdbfe3383155e","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","test":"vitest run --coverage","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","lint:fix":"npm run format && eslint . --fix","test:only":"vitest run","test:watch":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch","prepublishOnly":"npm run package"},"_npmUser":{"name":"humanspeakadmin","email":"admin@humanspeak.com"},"repository":{"url":"git+ssh://git@github.com/humanspeak/svelte-render.git","type":"git"},"_npmVersion":"10.9.0","description":"Manage complex Svelte behaviors outside of templates with full type safety","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@humanspeak/svelte-subscribe":"^3.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.0.3","jsdom":"^25.0.1","tslib":"^2.8.1","eslint":"^9.16.0","svelte":"^5.8.0","vitest":"^2.1.8","globals":"^15.13.0","publint":"^0.2.12","prettier":"^3.4.2","@eslint/js":"^9.16.0","typescript":"^5.7.2","svelte-check":"^4.1.1","@sveltejs/kit":"^2.9.0","@eslint/eslintrc":"^3.2.0","@sveltejs/package":"^2.3.7","@vitest/coverage-v8":"^2.1.8","eslint-plugin-svelte":"^2.46.1","@sveltejs/adapter-auto":"^3.3.1","eslint-config-prettier":"^9.1.0","prettier-plugin-svelte":"^3.3.2","@testing-library/svelte":"^5.2.6","@testing-library/jest-dom":"^6.6.3","@typescript-eslint/parser":"^8.17.0","@testing-library/user-event":"^14.5.2","@sveltejs/vite-plugin-svelte":"^5.0.1","@typescript-eslint/eslint-plugin":"^8.17.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-render_3.0.1_1733518324084_0.6432487841035233","host":"s3://npm-registry-packages"}},"5.0.0":{"name":"@humanspeak/svelte-render","version":"5.0.0","keywords":["svelte","sveltejs","render","template"],"author":{"name":"Humanspeak, Inc."},"license":"MIT","_id":"@humanspeak/svelte-render@5.0.0","maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"homepage":"https://github.com/humanspeak/svelte-render#readme","bugs":{"url":"https://github.com/humanspeak/svelte-render/issues"},"dist":{"shasum":"3178a50debb26831a240f4e317fbba3e7b1a6a6d","tarball":"https://registry.npmjs.org/@humanspeak/svelte-render/-/svelte-render-5.0.0.tgz","fileCount":15,"integrity":"sha512-uLeHhwJx/f3VLLfO3GrzyIqNZIeXxPTLSa+wm60K9s0eqv0pqkaXxGTibQdJwYmgcR8Jm5Nm8OTAcwqDy/7L9w==","signatures":[{"sig":"MEUCIQDULfL2DoxCtr3//B918+7orwRjCueB5iMSAEozN/BvdgIgX8H/9XYm0xgciWYlZM4kAwiQtnLzcFk+RVBJI+Y7vGU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@humanspeak%2fsvelte-render@5.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15137},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"289377ebb6ad7a445da97d788f255b296c052506","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","test":"vitest run --coverage","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","lint:fix":"npm run format && eslint . --fix","test:only":"vitest run","test:watch":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch","prepublishOnly":"npm run package"},"_npmUser":{"name":"humanspeakadmin","email":"admin@humanspeak.com"},"repository":{"url":"git+ssh://git@github.com/humanspeak/svelte-render.git","type":"git"},"_npmVersion":"10.9.0","description":"Manage complex Svelte behaviors outside of templates with full type safety","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@humanspeak/svelte-subscribe":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.3","jsdom":"^23.0.1","tslib":"^2.4.1","eslint":"^8.56.0","svelte":"^4.2.7","vitest":"^1.0.0","publint":"^0.1.9","prettier":"^3.1.1","type-fest":"^4.9.0","typescript":"^5.0.0","svelte-check":"^3.6.0","@sveltejs/kit":"^2.0.0","@types/eslint":"8.56.0","@sveltejs/package":"^2.0.0","@vitest/coverage-v8":"^1.1.1","eslint-plugin-svelte":"^2.35.1","@sveltejs/adapter-auto":"^3.0.0","eslint-config-prettier":"^9.1.0","prettier-plugin-svelte":"^3.1.2","@testing-library/svelte":"^4.0.5","@testing-library/jest-dom":"^6.1.6","@typescript-eslint/parser":"^6.0.0","@testing-library/user-event":"^14.5.2","@sveltejs/vite-plugin-svelte":"^3.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-render_5.0.0_1737564935050_0.6887914060517204","host":"s3://npm-registry-packages-npm-production"}},"5.0.1":{"name":"@humanspeak/svelte-render","version":"5.0.1","keywords":["svelte","sveltejs","render","template"],"author":{"name":"Humanspeak, Inc."},"license":"MIT","_id":"@humanspeak/svelte-render@5.0.1","maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"homepage":"https://github.com/humanspeak/svelte-render#readme","bugs":{"url":"https://github.com/humanspeak/svelte-render/issues"},"dist":{"shasum":"32e80870d1784b5f71777e5482169f72b8e19ede","tarball":"https://registry.npmjs.org/@humanspeak/svelte-render/-/svelte-render-5.0.1.tgz","fileCount":15,"integrity":"sha512-43GNYumONYYQMU/s9kP1O4ZG4Cu+KokXrLMgd+X8xhA2f+UKkuCc+XCFLa1zzuamw5q3xph4E96akvBbeKlKfg==","signatures":[{"sig":"MEYCIQCYMfcTNicHT+Knk65CnZvPpogU2H1Gj6W3WssSYnAqPwIhAOtuv2Ejj7co+l+S8ltEHnR2+hBHepNKAKtPZh3hKZ+b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@humanspeak%2fsvelte-render@5.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":15152},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"a927f5ce288225cbf4be8c633791b72485bfe795","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","test":"vitest run --coverage","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","lint:fix":"npm run format && eslint . --fix","test:only":"vitest run","test:watch":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch","prepublishOnly":"npm run package"},"_npmUser":{"name":"humanspeakadmin","email":"admin@humanspeak.com"},"repository":{"url":"git+ssh://git@github.com/humanspeak/svelte-render.git","type":"git"},"_npmVersion":"10.9.0","description":"Manage complex Svelte behaviors outside of templates with full type safety","directories":{},"_nodeVersion":"22.12.0","dependencies":{"@humanspeak/svelte-subscribe":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.3","jsdom":"^23.0.1","tslib":"^2.4.1","eslint":"^8.56.0","svelte":"^4.2.7","vitest":"^1.0.0","publint":"^0.1.9","prettier":"^3.1.1","type-fest":"^4.9.0","typescript":"^5.0.0","svelte-check":"^3.6.0","@sveltejs/kit":"^2.0.0","@types/eslint":"8.56.0","@sveltejs/package":"^2.0.0","@vitest/coverage-v8":"^1.1.1","eslint-plugin-svelte":"^2.35.1","@sveltejs/adapter-auto":"^3.0.0","eslint-config-prettier":"^9.1.0","prettier-plugin-svelte":"^3.1.2","@testing-library/svelte":"^4.0.5","@testing-library/jest-dom":"^6.1.6","@typescript-eslint/parser":"^6.0.0","@testing-library/user-event":"^14.5.2","@sveltejs/vite-plugin-svelte":"^3.0.0","@typescript-eslint/eslint-plugin":"^6.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-render_5.0.1_1737582882820_0.9570005561666994","host":"s3://npm-registry-packages-npm-production"}},"5.1.0":{"name":"@humanspeak/svelte-render","version":"5.1.0","keywords":["svelte","sveltejs","render","template"],"author":{"name":"Humanspeak, Inc."},"license":"MIT","_id":"@humanspeak/svelte-render@5.1.0","maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"homepage":"https://github.com/humanspeak/svelte-render#readme","bugs":{"url":"https://github.com/humanspeak/svelte-render/issues"},"dist":{"shasum":"98137a7c72ddc431374a8529b047d6d1d967223e","tarball":"https://registry.npmjs.org/@humanspeak/svelte-render/-/svelte-render-5.1.0.tgz","fileCount":15,"integrity":"sha512-j8Uqy8Wq3vkkI7GvPP+nVAu6kSe4110oWuKWcrv+7hJfEDef7h/voNkg08BFGNJTTwQV95UAIPQTkPGT5xh2OA==","signatures":[{"sig":"MEQCIEDz/CVgJnCxy6vOtdnugghcbZmrPGuv9yy4B2PkmlLiAiBuVQ3tKWc8wa7qDzsRj7eXzWmW3F7B+Piw4DdHof6AWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@humanspeak%2fsvelte-render@5.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":21441},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"b8a2012df228e2168d5b36ae35127ad549f65977","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","test":"vitest run --coverage","build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","format":"prettier --write .","package":"svelte-kit sync && svelte-package && publint","preview":"vite preview","lint:fix":"npm run format && eslint . --fix","test:all":"npm run test && npm run test:e2e","test:e2e":"playwright test","test:only":"vitest run","test:unit":"vitest","test:watch":"vitest","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch","test:e2e:ui":"playwright test --ui","test:unit:ui":"vitest --ui","prepublishOnly":"npm run package","test:e2e:debug":"playwright test --debug","test:e2e:report":"playwright show-report"},"_npmUser":{"name":"humanspeakadmin","email":"admin@humanspeak.com"},"overrides":{"@sveltejs/kit":{"cookie":"^0.7.0"}},"repository":{"url":"git+ssh://git@github.com/humanspeak/svelte-render.git","type":"git"},"_npmVersion":"10.9.2","description":"Manage complex Svelte behaviors outside of templates with full type safety","directories":{},"_nodeVersion":"22.14.0","dependencies":{"@humanspeak/svelte-subscribe":"^5.0.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^6.2.1","jsdom":"^26.0.0","tslib":"^2.8.1","eslint":"^9.21.0","svelte":"^5.22.6","vitest":"^3.0.8","publint":"^0.3.8","prettier":"^3.5.3","type-fest":"^4.37.0","@eslint/js":"^9.21.0","typescript":"^5.8.2","@types/node":"^22.13.9","svelte-check":"^4.1.5","@sveltejs/kit":"^2.19.0","@types/eslint":"9.6.1","@eslint/compat":"^1.2.7","@sveltejs/package":"^2.3.10","typescript-eslint":"^8.26.0","@vitest/coverage-v8":"^3.0.8","eslint-plugin-import":"^2.31.0","eslint-plugin-svelte":"^3.0.3","@sveltejs/adapter-auto":"^4.0.0","eslint-config-prettier":"^10.1.1","prettier-plugin-svelte":"^3.3.3","@testing-library/svelte":"^5.2.7","@testing-library/jest-dom":"^6.6.3","@typescript-eslint/parser":"^8.26.0","@testing-library/user-event":"^14.6.1","prettier-plugin-tailwindcss":"^0.6.11","@sveltejs/vite-plugin-svelte":"^5.0.3","eslint-plugin-unused-imports":"^4.1.4","@typescript-eslint/eslint-plugin":"^8.26.0","prettier-plugin-organize-imports":"^4.1.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-render_5.1.0_1741393294083_0.313089354084815","host":"s3://npm-registry-packages-npm-production"}},"5.1.1":{"name":"@humanspeak/svelte-render","version":"5.1.1","description":"Manage complex Svelte behaviors outside of templates with full type safety","keywords":["svelte","sveltejs","render","template"],"homepage":"https://github.com/humanspeak/svelte-render#readme","bugs":{"url":"https://github.com/humanspeak/svelte-render/issues"},"repository":{"type":"git","url":"git+ssh://git@github.com/humanspeak/svelte-render.git"},"license":"MIT","author":{"name":"Humanspeak, Inc."},"type":"module","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js","default":"./dist/index.js"}},"svelte":"./dist/index.js","types":"./dist/index.d.ts","scripts":{"build":"vite build && npm run package","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch","dev":"vite dev","format":"prettier --write .","lint":"prettier --check . && eslint .","lint:fix":"npm run format && eslint . --fix","package":"svelte-kit sync && svelte-package && publint","prepublishOnly":"npm run package","preview":"vite preview","test":"vitest run --coverage","test:all":"npm run test && npm run test:e2e","test:e2e":"playwright test","test:e2e:debug":"playwright test --debug","test:e2e:report":"playwright show-report","test:e2e:ui":"playwright test --ui","test:only":"vitest run","test:unit":"vitest","test:unit:ui":"vitest --ui","test:watch":"vitest"},"dependencies":{"@humanspeak/svelte-subscribe":"^5.0.0"},"devDependencies":{"@eslint/compat":"^1.2.7","@eslint/js":"^9.21.0","@sveltejs/adapter-auto":"^4.0.0","@sveltejs/kit":"^2.19.0","@sveltejs/package":"^2.3.10","@sveltejs/vite-plugin-svelte":"^5.0.3","@testing-library/jest-dom":"^6.6.3","@testing-library/svelte":"^5.2.7","@testing-library/user-event":"^14.6.1","@types/eslint":"9.6.1","@types/node":"^22.13.9","@typescript-eslint/eslint-plugin":"^8.26.0","@typescript-eslint/parser":"^8.26.0","@vitest/coverage-v8":"^3.0.8","eslint":"^9.21.0","eslint-config-prettier":"^10.1.1","eslint-plugin-import":"^2.31.0","eslint-plugin-svelte":"^3.0.3","eslint-plugin-unused-imports":"^4.1.4","jsdom":"^26.0.0","prettier":"^3.5.3","prettier-plugin-organize-imports":"^4.1.0","prettier-plugin-svelte":"^3.3.3","prettier-plugin-tailwindcss":"^0.6.11","publint":"^0.3.8","svelte":"^5.22.6","svelte-check":"^4.1.5","tslib":"^2.8.1","type-fest":"^4.37.0","typescript":"^5.8.2","typescript-eslint":"^8.26.0","vite":"^6.2.1","vitest":"^3.0.8"},"peerDependencies":{"svelte":"^5.0.0"},"overrides":{"@sveltejs/kit":{"cookie":"^0.7.0"}},"_id":"@humanspeak/svelte-render@5.1.1","gitHead":"332d292454dd55fdc12e9bf4d3d73fe9dd12bd09","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-OGqKLVezvEvHmouQXhzfGibtFxgA6a9PAuuNzJ54t1KFQScBCDl9MtLao+ze+5nVUJHoVCWbvXOEMOFY4eGROw==","shasum":"7b6698299cf227dc6fa2c8305eb7f6884275a76d","tarball":"https://registry.npmjs.org/@humanspeak/svelte-render/-/svelte-render-5.1.1.tgz","fileCount":15,"unpackedSize":22471,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@humanspeak%2fsvelte-render@5.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAR9Tw0endd1Asc0B4oNG+rPzIuoi0HoyIZia56DY8jjAiAp4GD03PSQ5lYhQcauHh/ngW8O24qg/pr99FMr+ulFfQ=="}]},"_npmUser":{"name":"humanspeakadmin","email":"admin@humanspeak.com"},"directories":{},"maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/svelte-render_5.1.1_1741394764548_0.5773882768742147"},"_hasShrinkwrap":false}},"time":{"created":"2024-12-06T20:52:04.083Z","modified":"2025-03-08T00:46:05.154Z","3.0.1":"2024-12-06T20:52:04.282Z","5.0.0":"2025-01-22T16:55:35.281Z","5.0.1":"2025-01-22T21:54:43.028Z","5.1.0":"2025-03-08T00:21:34.253Z","5.1.1":"2025-03-08T00:46:04.726Z"},"bugs":{"url":"https://github.com/humanspeak/svelte-render/issues"},"author":{"name":"Humanspeak, Inc."},"license":"MIT","homepage":"https://github.com/humanspeak/svelte-render#readme","keywords":["svelte","sveltejs","render","template"],"repository":{"type":"git","url":"git+ssh://git@github.com/humanspeak/svelte-render.git"},"description":"Manage complex Svelte behaviors outside of templates with full type safety","maintainers":[{"name":"humanspeakadmin","email":"admin@humanspeak.com"}],"readme":"# svelte-render\n\n[![NPM version](https://img.shields.io/npm/v/@humanspeak/svelte-render.svg)](https://www.npmjs.com/package/@humanspeak/svelte-render)\n[![Build Status](https://github.com/humanspeak/svelte-render/actions/workflows/npm-publish.yml/badge.svg)](https://github.com/humanspeak/svelte-render/actions/workflows/npm-publish.yml)\n[![Coverage Status](https://coveralls.io/repos/github/humanspeak/svelte-render/badge.svg?branch=main)](https://coveralls.io/github/humanspeak/svelte-render?branch=main)\n[![License](https://img.shields.io/npm/l/@humanspeak/svelte-render.svg)](https://github.com/humanspeak/svelte-render/blob/main/LICENSE)\n[![Downloads](https://img.shields.io/npm/dm/@humanspeak/svelte-render.svg)](https://www.npmjs.com/package/@humanspeak/svelte-render)\n[![CodeQL](https://github.com/humanspeak/svelte-render/actions/workflows/codeql.yml/badge.svg)](https://github.com/humanspeak/svelte-render/actions/workflows/codeql.yml)\n[![Install size](https://packagephobia.com/badge?p=@humanspeak/svelte-render)](https://packagephobia.com/result?p=@humanspeak/svelte-render)\n[![Code Style: Trunk](https://img.shields.io/badge/code%20style-trunk-blue.svg)](https://trunk.io)\n[![TypeScript](https://img.shields.io/badge/%3C%2F%3E-TypeScript-%230074c1.svg)](http://www.typescriptlang.org/)\n[![Types](https://img.shields.io/npm/types/@humanspeak/svelte-render.svg)](https://www.npmjs.com/package/@humanspeak/svelte-render)\n[![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg)](https://github.com/humanspeak/svelte-render/graphs/commit-activity)\n\nManage complex Svelte behaviors outside of templates with full type safety.\n\n```svelte\n<script>\n    import { Render, createRender } from '@humanspeak/svelte-subscribe'\n    import Avatar from './Avatar.svelte'\n    // ...\n    const avatar = createRender(Avatar, { name: 'Ada Lovelace' })\n        .on('click', handleClick)\n        .on('launch', handleLaunch)\n</script>\n\n<Render of={avatar} />\n```\n\n## Installation\n\n```bash\n\nnpm i -D @humanspeak/svelte-render\n\n```\n\n## API\n\nSvelte Render was primarily built to support complex rendering definitions for [Svelte Headless Table](https://github.com/humanspeak/svelte-headless-table).\n\n### `<Render />`\n\n`<Render />` handles props and automatically registers the event handlers defined with `.on` as well as slot data defined with `.slot`.\n\n`of` accepts:\n\n- primitive data such as `number` and `string`\n- `Writable<number>` and `Writable<string>` for dynamic primitive data\n- `ComponentRenderConfig` returned by `createRender`\n\n```svelte\n<script>\n    const avatar = createRender(Avatar, { name: 'Ada Lovelace' })\n</script>\n\n<Render of={avatar} />\n```\n\nbecomes\n\n```svelte\n<Avatar name=\"Ada Lovelace\" />\n```\n\n### `createRender: (component, props)`\n\n`createRender` accepts a Svelte component and its props as arguments.\n\n`props` can be omitted if the component does not receive props but must be included otherwise.\n\n```ts\nconst icon = createRender(TickIcon) // ✅\nconst avatar = createRender(Avatar) // ❌ Type error.\nconst avatar = createRender(Avatar, { name: 'Ada Lovelace' }) // ✅\n```\n\nIf you need prop reactivity, `props` must be a [Svelte store](https://svelte.dev/tutorial/writable-stores).\n\n```ts\nconst avatarProps = writable({ name: 'Ada Lovelace' })\nconst avatar = createRender(Avatar, avatarProps)\n```\n\n### `.on(event, handler)`\n\n**deprecated** Note: this will be removed in a future version. It still works by concating the event to an on for instance `onclick` will be passed to the renderer.\n\nSvelte Render supports the Svelte event system by chaining `.on` calls on `createRender()`. Multiple event handlers can be registered for the same event type like the Svelte `on:` directive.\n\n```ts\nconst button = createRender(Button)\n    .on('click', handleClick)\n    .on('click', (ev) => console.log(ev))\n```\n\n`<Render of={button} />` becomes:\n\n```svelte\n<Button onclick={handleClick} onclick={(ev) => console.log(ev)} />\n```\n\nHowever, note that the callback handler passed into `.on(event, handler)` is not dynamic and will only capture references to variables as they were when the render configuration is created.\n\nIf you need a handler to access dynamic data, use a dynamic system like Svelte Stores.\n\n```ts\nconst counter = writable(0)\nconst button = createRender(Button).on('click', (ev) => counter.update((c) => c + 1))\n```\n\n### `.slot(...config)`\n\nSvelte Render also supports Svelte's default slot system.\n\n`.slot` receives any number of arguments with the same type as `of`, including `ComponentRenderConfig` returned by `createRender`, primitive data, and `Writable`. This makes it useful for rendering wrapper components such as `<Button />` and `<Label />`.\n\n_Due to technical limitations with Svelte 5, it is not possible to assign render configurations to named slots._\n\n```ts\nconst button = createRender(Button).slot(createRender(Icon, { name: 'user' }), 'Log in')\n```\n\n`<Render of={button} />` becomes:\n\n```svelte\n<Button>\n    <Icon name=\"user\" />\n    Log in\n</Button>\n```\n","readmeFilename":"README.md"}