{"_id":"@bento/use-props","_rev":"6-5bd914642b56c96187906bd76aa68dad","name":"@bento/use-props","dist-tags":{"latest":"0.2.3"},"versions":{"0.1.0":{"name":"@bento/use-props","version":"0.1.0","keywords":["bento","component","library","props","react","render","render-props","renderprops"],"author":{"name":"GoDaddy Operating Company, LLC"},"license":"MIT","_id":"@bento/use-props@0.1.0","maintainers":[{"name":"3rdeden","email":"npmjs@3rd-Eden.com"},{"name":"rxmarbles","email":"rmarkins@gmail.com"},{"name":"kawikabader","email":"ekbader@gmail.com"}],"homepage":"https://github.com/godaddy/bento#readme","bugs":{"url":"https://github.com/godaddy/bento/issues"},"dist":{"shasum":"42c1cca618749d6064679d741a3053131374a89c","tarball":"https://registry.npmjs.org/@bento/use-props/-/use-props-0.1.0.tgz","fileCount":10,"integrity":"sha512-c4fqnerT7cJWZdl4gK6PlxbjUvmxTR/ZlyhD2jqPnWqOl/eWKrTU6LlJoa6eSmCbhPXlZvUM/cx4/dwCyFq9gA==","signatures":[{"sig":"MEUCIQCstQn0ipheQPge+lTCxEtjiKRqlfDXGuugjM9ufEoHWgIgHGd48BjGgo5ZgGFmIG1Zz/m+B+dheJcdxtl3oc07hNM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bento%2fuse-props@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":42126},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"8cf6c3e7e24572c8b548fc4207e3af58bc3b5cc1","scripts":{"dev":"tsup-node --watch","lint":"biome lint && tsc --noEmit","test":"vitest --run","build":"tsup-node","pretest":"npm run build","posttest":"npm run lint","test:watch":"vitest"},"_npmUser":{"name":"kawikabader","email":"ekbader@gmail.com"},"repository":{"url":"git+https://github.com/godaddy/bento.git","type":"git"},"_npmVersion":"10.9.2","description":"Context aware props transformation for Bento","directories":{},"_nodeVersion":"23.11.1","dependencies":{"@bento/box":"^0.1.0","@bento/types":"^0.1.0","@bento/internal-props":"^0.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"react":"18.x || 19.x","react-dom":"18.x || 19.x"},"_npmOperationalInternal":{"tmp":"tmp/use-props_0.1.0_1761318932864_0.9465895222631464","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@bento/use-props","version":"0.1.1","keywords":["bento","component","library","props","react","render","render-props","renderprops"],"author":{"name":"GoDaddy Operating Company, LLC"},"license":"MIT","_id":"@bento/use-props@0.1.1","maintainers":[{"name":"3rdeden","email":"npmjs@3rd-Eden.com"},{"name":"rxmarbles","email":"rmarkins@gmail.com"},{"name":"kawikabader","email":"ekbader@gmail.com"}],"homepage":"https://github.com/godaddy/bento#readme","bugs":{"url":"https://github.com/godaddy/bento/issues"},"dist":{"shasum":"50bdff35c5fc8e58e28ac1e8c5479716a4ae8771","tarball":"https://registry.npmjs.org/@bento/use-props/-/use-props-0.1.1.tgz","fileCount":11,"integrity":"sha512-3jBxaO6GmeE2jspkjCawLPFikD9pkxPeWwJhfzAReF1KCMYKkkmbONpKnCzy4DYsYJxrwTLOYKQK9n/fXsFfqw==","signatures":[{"sig":"MEUCIQCT+VZ9aKN23bdVnA0Y/c+6V5xqJKJEw1tTHcEuuq4RjgIgWvdstlF+S99KfmDr49nJlZtF6AH9tgH3T02cS/8MQfc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bento%2fuse-props@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":46665},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"b630e17d1fad413043801e80ed1c1a0c5fe1d4b3","scripts":{"dev":"tsup-node --watch","lint":"biome lint && tsc --noEmit","test":"vitest --run","build":"tsup-node","pretest":"npm run build","posttest":"npm run lint","test:watch":"vitest","prepublishOnly":"node ../../scripts/compile-readme.ts"},"_npmUser":{"name":"kawikabader","email":"ekbader@gmail.com"},"repository":{"url":"git+https://github.com/godaddy/bento.git","type":"git"},"_npmVersion":"11.6.2","description":"Context aware props transformation for Bento","directories":{},"_nodeVersion":"23.11.1","dependencies":{"@bento/box":"^0.1.1","@bento/types":"^0.1.0","@bento/internal-props":"^0.1.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"react":"18.x || 19.x","react-dom":"18.x || 19.x"},"_npmOperationalInternal":{"tmp":"tmp/use-props_0.1.1_1762462137196_0.1453155426721513","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@bento/use-props","version":"0.2.0","keywords":["bento","component","library","props","react","render","render-props","renderprops"],"author":{"name":"GoDaddy Operating Company, LLC"},"license":"MIT","_id":"@bento/use-props@0.2.0","maintainers":[{"name":"3rdeden","email":"npmjs@3rd-Eden.com"},{"name":"rxmarbles","email":"rmarkins@gmail.com"},{"name":"kawikabader","email":"ekbader@gmail.com"}],"homepage":"https://github.com/godaddy/bento#readme","bugs":{"url":"https://github.com/godaddy/bento/issues"},"dist":{"shasum":"989c10f767e208f3a8a2c38c30b517cdef69ad10","tarball":"https://registry.npmjs.org/@bento/use-props/-/use-props-0.2.0.tgz","fileCount":11,"integrity":"sha512-b+rB/T8dSiBOOyidOqKZ+llRt6On4WRpr8RljK+ma1hO+N7XMeMDkIhCatO41/XuK6CsRjiSx9+HTNlDikxVaw==","signatures":[{"sig":"MEYCIQDqFXALkBgkqaD9f8fmLa1FrRML76XfeWPrpLmubRfzoAIhAK6TcyeMsxPkLqJtMu7OqxNuxNRwISEFHCxs9JhtoGOn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bento%2fuse-props@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59187},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"2552a8442bd7e504706233eeb501001087058cdf","scripts":{"dev":"tsup-node --watch","lint":"biome lint && tsc --noEmit","test":"vitest --run","build":"tsup-node","pretest":"npm run build","posttest":"npm run lint","test:watch":"vitest","prepublishOnly":"node ../../scripts/compile-readme.ts"},"_npmUser":{"name":"kawikabader","email":"ekbader@gmail.com"},"repository":{"url":"git+https://github.com/godaddy/bento.git","type":"git"},"_npmVersion":"11.6.4","description":"Context aware props transformation for Bento","directories":{},"_nodeVersion":"23.11.1","dependencies":{"@bento/box":"^0.2.0","@react-aria/utils":"^3.30.0","@bento/internal-props":"^0.1.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@bento/types":"^0.1.0"},"peerDependencies":{"react":"18.x || 19.x","react-dom":"18.x || 19.x"},"_npmOperationalInternal":{"tmp":"tmp/use-props_0.2.0_1764862973270_0.7497593177218245","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@bento/use-props","version":"0.2.1","keywords":["bento","component","library","props","react","render","render-props","renderprops"],"author":{"name":"GoDaddy Operating Company, LLC"},"license":"MIT","_id":"@bento/use-props@0.2.1","maintainers":[{"name":"rmarkins","email":"rmarkins@godaddy.com"},{"name":"3rdeden","email":"npmjs@3rd-Eden.com"},{"name":"rxmarbles","email":"rmarkins@gmail.com"},{"name":"kawikabader","email":"ekbader@gmail.com"}],"homepage":"https://github.com/godaddy/bento#readme","bugs":{"url":"https://github.com/godaddy/bento/issues"},"dist":{"shasum":"121858688989701571781a5a015999ebe785e2fd","tarball":"https://registry.npmjs.org/@bento/use-props/-/use-props-0.2.1.tgz","fileCount":11,"integrity":"sha512-Kzua9hq3M6XUYi7p+ICGN0cdbr38mHyO/xGPrS3irxdvnnK1BDpBfSOMa6zNdjAO7GFPl+bGIChywefvjCYM3g==","signatures":[{"sig":"MEUCIA1dW0d/DNHYlFISygmo7kOtQdFdoN0YPCLYnrQ+4ENlAiEAoxnWaU2yQyGKYXZTj5RG4xVNrS6HBKoVBp23O0Bxx2I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bento%2fuse-props@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59187},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"0f8ba63cf8539136795958006c36d1aee1f70d8e","scripts":{"dev":"tsup-node --watch","lint":"biome lint && tsc --noEmit","test":"vitest --run","build":"tsup-node","pretest":"npm run build","posttest":"npm run lint","test:watch":"vitest","prepublishOnly":"node ../../scripts/compile-readme.ts"},"_npmUser":{"name":"rxmarbles","email":"rmarkins@gmail.com"},"repository":{"url":"git+https://github.com/godaddy/bento.git","type":"git"},"_npmVersion":"11.7.0","description":"Context aware props transformation for Bento","directories":{},"_nodeVersion":"23.11.1","dependencies":{"@bento/box":"^0.2.0","@react-aria/utils":"^3.30.0","@bento/internal-props":"^0.1.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"@bento/types":"^0.1.0"},"peerDependencies":{"react":"18.x || 19.x","react-dom":"18.x || 19.x"},"_npmOperationalInternal":{"tmp":"tmp/use-props_0.2.1_1766075452757_0.6739527654586841","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@bento/use-props","version":"0.2.2","keywords":["bento","component","library","props","react","render","render-props","renderprops"],"author":{"name":"GoDaddy Operating Company, LLC"},"license":"MIT","_id":"@bento/use-props@0.2.2","maintainers":[{"name":"rmarkins","email":"rmarkins@godaddy.com"},{"name":"3rdeden","email":"npmjs@3rd-Eden.com"},{"name":"rxmarbles","email":"rmarkins@gmail.com"},{"name":"kawikabader","email":"ekbader@gmail.com"}],"homepage":"https://github.com/godaddy/bento#readme","bugs":{"url":"https://github.com/godaddy/bento/issues"},"dist":{"shasum":"3456bbe839d60ffdbeff87630271103f8721508f","tarball":"https://registry.npmjs.org/@bento/use-props/-/use-props-0.2.2.tgz","fileCount":11,"integrity":"sha512-kmvalVkDQSHBc0n64PMbuWZIBryBZB8VQoBAQIYojzB7r7hL0Zo91xI68V3Rw3Hm59xZuEjN5b82njJkJ2BW6w==","signatures":[{"sig":"MEUCIH0OYV+Dwya544XByNgJciJabeNKk9KFl/fOlvCxx7IpAiEA1f87/lZzR63tIQnZ+hPUv+8eC880eCspXmt0sy9FXw8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bento%2fuse-props@0.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":59185},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"gitHead":"266cce4d4051a48ffe77b26b0779afd92422f6ab","scripts":{"dev":"tsup-node --watch","lint":"biome lint && tsc --noEmit","test":"vitest --run","build":"tsup-node","pretest":"npm run build","posttest":"npm run lint","test:watch":"vitest","prepublishOnly":"node ../../scripts/compile-readme.ts"},"_npmUser":{"name":"rxmarbles","email":"rmarkins@gmail.com"},"repository":{"url":"git+https://github.com/godaddy/bento.git","type":"git"},"_npmVersion":"11.7.0","description":"Context aware props transformation for Bento","directories":{},"_nodeVersion":"23.11.1","dependencies":{"@bento/box":"^0.2.0","@bento/types":"^0.1.0","@react-aria/utils":"^3.30.0","@bento/internal-props":"^0.1.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{},"peerDependencies":{"react":"18.x || 19.x","react-dom":"18.x || 19.x"},"_npmOperationalInternal":{"tmp":"tmp/use-props_0.2.2_1766093450144_0.625348484654527","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@bento/use-props","version":"0.2.3","description":"Context aware props transformation for Bento","type":"module","main":"./dist/index.cjs","module":"./dist/index.mjs","scripts":{"build":"tsdown","dev":"tsdown --watch","lint":"biome lint && tsgo --noEmit","prepublishOnly":"node ../../../scripts/compile-readme.ts","test":"vitest --run","test:watch":"vitest","typecheck":"tsgo --noEmit -p tsconfig.json"},"repository":{"type":"git","url":"git+https://github.com/godaddy/antares.git"},"keywords":["bento","component","library","props","react","render","render-props","renderprops"],"author":{"name":"GoDaddy Operating Company, LLC"},"license":"MIT","bugs":{"url":"https://github.com/godaddy/antares/issues"},"homepage":"https://github.com/godaddy/antares#readme","dependencies":{"@bento/box":"^0.2.0","@bento/internal-props":"^0.1.1","@bento/types":"^0.1.1","@react-aria/utils":"^3.34.0"},"devDependencies":{"@types/react":"^19.2.15","@types/react-dom":"^19.2.3","tsdown":"^0.22.1","typescript":"^6.0.3","vitest":"^4.1.7","vitest-browser-react":"^2.2.0"},"peerDependencies":{"react":"18.x || 19.x","react-dom":"18.x || 19.x"},"exports":{".":{"import":{"types":"./dist/index.d.mts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"gitHead":"19c4a71618042e4c8217311365f2400575ac5d57","_id":"@bento/use-props@0.2.3","_nodeVersion":"24.16.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-Mo12NHaEIObogsVaPngUVuPvZW0bnIB9qERb7eODjKOCGeE8+jHfWvVnbLewhN5L+/e67uEjtylrHHMq/kML3w==","shasum":"a40fedbc0f2dcb293a3a23be4e5c954341ed7b16","tarball":"https://registry.npmjs.org/@bento/use-props/-/use-props-0.2.3.tgz","fileCount":13,"unpackedSize":63649,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@bento%2fuse-props@0.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCxEqrX41G6+CppXiwT0OZP0IO423Y8DHiiOTDPxWksYAIhAKGTREvoyb/DPiao/Z/4APcRWY/vbLg2iwBjqvMlXnPF"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:26a99cbd-90e0-4b4d-a712-03e14979346f"}},"directories":{},"maintainers":[{"name":"rmarkins","email":"rmarkins@godaddy.com"},{"name":"3rdeden","email":"npmjs@3rd-Eden.com"},{"name":"rxmarbles","email":"rmarkins@gmail.com"},{"name":"kawikabader","email":"ekbader@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/use-props_0.2.3_1780645943689_0.35110854511408474"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-24T15:15:32.730Z","modified":"2026-06-05T07:52:24.187Z","0.1.0":"2025-10-24T15:15:33.052Z","0.1.1":"2025-11-06T20:48:57.484Z","0.2.0":"2025-12-04T15:42:53.404Z","0.2.1":"2025-12-18T16:30:52.899Z","0.2.2":"2025-12-18T21:30:50.311Z","0.2.3":"2026-06-05T07:52:23.819Z"},"bugs":{"url":"https://github.com/godaddy/antares/issues"},"author":{"name":"GoDaddy Operating Company, LLC"},"license":"MIT","homepage":"https://github.com/godaddy/antares#readme","keywords":["bento","component","library","props","react","render","render-props","renderprops"],"repository":{"type":"git","url":"git+https://github.com/godaddy/antares.git"},"description":"Context aware props transformation for Bento","maintainers":[{"name":"rmarkins","email":"rmarkins@godaddy.com"},{"name":"3rdeden","email":"npmjs@3rd-Eden.com"},{"name":"rxmarbles","email":"rmarkins@gmail.com"},{"name":"kawikabader","email":"ekbader@gmail.com"}],"readme":"# Props Management\n\nThe `@bento/use-props` package provides a hook that unifies the component\nand slot based props into a single interface. Both the component and slot-based\nprops can be specified as a `renderProp`. A `renderProp` is a function that\nreturns the value that should be applied as props to the component.\n\n## Installation\n\n```shell\nnpm install --save @bento/use-props\n```\n\n## useProps\n\nThe package exposes a `useProps` hook that can be used to apply the\nprops to the component. The hook is designed to be used in conjunction\nwith the `@bento/slots` package as it allows the `slots` props that are\nintroduced on the component to override the props that are specified on the\ncomponent.\n\n```javascript\nimport { useProps } from '@bento/use-props';\nimport { useState } from 'react';\n\nfunction Component(args) {\n  const [value, setValue] = useState(0);\n  const { props, apply } = useProps(args, { value });\n}\n```\n\nAs seen from the example above, the `useProps` hook takes two\narguments:\n\n### Forward Refs\n\nThe `useProps` hook also accepts an optional third parameter for forwarded refs. When provided, it merges the forwarded ref with any refs from props and slots:\n\n```javascript\nimport { useProps } from '@bento/use-props';\nimport { withSlots } from '@bento/slots';\nimport React from 'react';\n\nconst Button = withSlots(\n  'Button',\n  React.forwardRef(function ButtonComponent(args, forwardedRef) {\n    const { props, apply, ref } = useProps(args, {}, forwardedRef);\n\n    // ref contains the merged reference from forwardedRef, props.ref, and slots\n    return <button {...apply({}, ['ref'])} ref={ref}>{props.children}</button>;\n  })\n);\n```\n\nThe merged `ref` combines:\n- The forwarded ref from the parent component\n- Any ref passed through props\n- Any ref supplied via slots\n\nAll refs are properly merged using `mergeRefs` from `@react-aria/utils`, ensuring all refs are called/updated when the element is mounted.\n\nThe `useProps` hook returns an object with three properties:\n\n### props\n\nThe `props` property is a `props`-like object - specifically a `Proxy` instance. It\nprovides the familiar `props` interface for retrieving component props. When props\nare modified by slots to add or override values, this Proxy automatically returns\nthe correct merged value. The Proxy seamlessly handles both component props and\nslot-based props.\n\nWhen the prop that you're trying to access is specified as a `renderProp`, the\n`Proxy` will automatically call the function and return the value returned by\nthe function. It's designed to do all the work for you so you can focus on\nwriting your components.\n\nJust like normal `props`, you can also use this instance to spread the props\non your components:\n\n```javascript\nimport { useProps } from '@bento/use-props';\nimport { withSlots } from '@bento/slots';\nimport { useState } from 'react';\n\nconst Anchor = withSlots('Anchor', function AnchorComponent(args) {\n  const [value, setValue] = useState(0);\n  const { props, apply } = useProps(args, { value });\n\n  return <a {...props} />;\n})\n```\n\nThe primary use case for the `props` item is to interact with properties that\ndo not have a default value assigned to them or when you need to spread unknown\nprops to your component. When you interact with a prop that is set as renderProp\nit will automatically call the function and return the value that is returned.\nGiven that no default value is applied, this renderProp will not be called\nwith the `original` value assigned.\n\n```javascript\nimport { useProps } from '@bento/use-props';\nimport { withSlots } from '@bento/slots';\n\nconst Anchor = withSlots('Anchor', function AnchorComponent(args) {\n  const { props, apply } = useProps(args);\n  const { design, ...rest } = props;\n\n  const className = design === 'foo' ? 'foo' : 'bar';\n  return <a {...props} {...apply({ className })} />;\n}\n\n// Illustrative purposes only, useCallback is required in a real application\n<Anchor design={function renderProp({ original, state }) {\n  console.log(original);  // undefined - Design prop was only used to lookup values\n  console.log(state);     // {} - No state was specified in the useProps\n\n  return 'foo';\n}} />\n```\n\n### apply\n\nThe `apply` function is used to apply props to your component. It takes an\nobject of props and returns a new object with all the props applied, taking into\naccount any render props and slot overrides.\n\nThe function accepts an optional second parameter - an array of prop names that\nshould be omitted from being applied to the component. This is useful when you\nwant to prevent certain props from being passed down, such as props used only\nfor internal logic or props that shouldn't be spread onto the underlying\nDOM element.\n\n```javascript\n// Apply all props\nconst appliedProps = apply({ className: 'my-class', onClick: handleClick });\n\n// Apply props while omitting specific ones\nconst appliedProps = apply({ className: 'my-class', onClick: handleClick }, ['onClick']);\n```\n\nThe `apply` function ensures that all props are properly handled, including:\n- Regular props\n- Render props (functions that return prop values)\n- Props that might be overridden by slots\n- Props that need to be merged with existing values\n\nThis makes it the recommended way to apply any props to your components, as it\nhandles all the necessary prop management internally.\n\n<Source language='tsx' code={ SourceBasic } />\n\n<Source language='tsx' code={ SourceNestedSlots } />","readmeFilename":"README.md"}