{"_id":"@aeon-ui/react","name":"@aeon-ui/react","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@aeon-ui/react","version":"0.1.0","description":"Headless React components backed by XState machines","license":"MIT","repository":{"type":"git","url":"git+https://github.com/GenericCPU/aeon-ui.git","directory":"packages/react"},"publishConfig":{"access":"public"},"keywords":["aeon-ui","react","headless","xstate","statechart"],"type":"module","sideEffects":false,"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"dependencies":{"@xstate/react":"^6.1.0","xstate":"^5.19.2","@aeon-ui/primitives":"0.1.0","@aeon-ui/core":"0.1.0"},"peerDependencies":{"react":"^18 || ^19","react-dom":"^18 || ^19"},"devDependencies":{"@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.0","@testing-library/user-event":"^14.6.1","@types/react":"^19.1.2","@types/react-dom":"^19.1.2","jsdom":"^29.1.1","react":"^19.1.0","react-dom":"^19.1.0","tsup":"^8.4.0","typescript":"^5.8.3","vitest":"^4.1.8"},"scripts":{"build":"tsup src/index.ts --format esm --dts --clean --external react --external react-dom","typecheck":"tsc --noEmit","test":"vitest run"},"_id":"@aeon-ui/react@0.1.0","bugs":{"url":"https://github.com/GenericCPU/aeon-ui/issues"},"homepage":"https://github.com/GenericCPU/aeon-ui#readme","_integrity":"sha512-gXustjygU0bKWHOS0HcT3B5fgn8Ls1TqIJX7NsIAmtAMALgJJjEUCZy5AvgyE2lSKHGY2zYyOT1WOTiXxbT9xg==","_resolved":"/private/var/folders/wk/mtltqfc92hs4vf24ph9vhvc40000gn/T/1d858531c5b288bd05e9c6f5d1a43555/aeon-ui-react-0.1.0.tgz","_from":"file:aeon-ui-react-0.1.0.tgz","_nodeVersion":"22.22.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-gXustjygU0bKWHOS0HcT3B5fgn8Ls1TqIJX7NsIAmtAMALgJJjEUCZy5AvgyE2lSKHGY2zYyOT1WOTiXxbT9xg==","shasum":"b0e3bc456ec34a7149605229a854a748c9f08c96","tarball":"https://registry.npmjs.org/@aeon-ui/react/-/react-0.1.0.tgz","fileCount":5,"unpackedSize":136205,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCroLNcbnCdWCPepfguchhwgrOhJewgAOQe6KkwRZvxrAIgU4oqsrGdoAfOW12cUCzfU/aEk0yB003ypcEqsoLc0L8="}]},"_npmUser":{"name":"bgcryderman","email":"brandongcryderman@gmail.com"},"directories":{},"maintainers":[{"name":"bgcryderman","email":"brandongcryderman@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react_0.1.0_1780612431511_0.9346250535765199"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-04T22:33:51.347Z","0.1.0":"2026-06-04T22:33:51.686Z","modified":"2026-06-04T22:33:51.967Z"},"maintainers":[{"name":"bgcryderman","email":"brandongcryderman@gmail.com"}],"description":"Headless React components backed by XState machines","homepage":"https://github.com/GenericCPU/aeon-ui#readme","keywords":["aeon-ui","react","headless","xstate","statechart"],"repository":{"type":"git","url":"git+https://github.com/GenericCPU/aeon-ui.git","directory":"packages/react"},"bugs":{"url":"https://github.com/GenericCPU/aeon-ui/issues"},"license":"MIT","readme":"# @aeon-ui/react\n\n**Headless compound components** — snapshot/props → DOM + accessibility.\n\nAgents: [docs/MACHINES.md](../../docs/MACHINES.md) before editing state wiring.\n\n## Install\n\n```bash\npnpm add @aeon-ui/react @aeon-ui/core @aeon-ui/primitives\n```\n\nStyle yourself with `[data-aeon-*]` or use `@aeon-ui/ui`.\n\n## Usage\n\n```tsx\nimport { Dialog, Button, useAeonMachine } from '@aeon-ui/react'\nimport { buttonLifecycleMachine } from '@aeon-ui/primitives'\n\n<Dialog.Root>\n  <Dialog.Trigger>Open</Dialog.Trigger>\n  <Dialog.Backdrop />\n  <Dialog.Positioner>\n    <Dialog.Content>\n      <Dialog.Title>Title</Dialog.Title>\n      <Dialog.CloseTrigger>Close</Dialog.CloseTrigger>\n    </Dialog.Content>\n  </Dialog.Positioner>\n</Dialog.Root>\n\n<Button.Root status=\"pending\">Save</Button.Root>\n```\n\n## Catalog\n\n`Button`, `Switch`, `Checkbox`, `Dialog`, `Tabs`, `Accordion`, `Select`, `Combobox`, `Async`, `Field`, `Scroll`, `Menu`, `Popover`, `Tooltip`, `Toast`, `useAeonMachine`, `useLayoutMode`.\n\nSee [COMPONENTS.md](../../COMPONENTS.md).\n\n## Patterns\n\n| Pattern | Components |\n|---------|------------|\n| `useAeonMachine` + primitives | Dialog, Switch, Async, Field, Tabs, … |\n| `status` prop | Button |\n| `useState` | Select, Combobox, Tooltip |\n| `getScrollSnapshot` | Scroll |\n\n## Custom wrapper\n\n```tsx\nimport { partAttrs, dialogAnatomy } from '@aeon-ui/core'\n\n<button {...partAttrs(dialogAnatomy.scope, dialogAnatomy.trigger, { state: 'closed' })} />\n```\n\n## File layout\n\n`src/<component>/index.tsx` — see [docs/FILE_MAP.md](../../docs/FILE_MAP.md).\n\n## Related\n\n- [INTEGRATION.md](../../INTEGRATION.md)\n- [FRAMEWORKS.md](../../FRAMEWORKS.md)\n","readmeFilename":"README.md","_rev":"1-9c660bba43cafd4ac219e4a787eb271d"}