{"_id":"@caffeinebounce/ui","_rev":"3-133327dd4b482b9e64b573e5f9c99488","name":"@caffeinebounce/ui","dist-tags":{"latest":"0.63.0"},"versions":{"0.62.2":{"name":"@caffeinebounce/ui","version":"0.62.2","license":"MIT","_id":"@caffeinebounce/ui@0.62.2","maintainers":[{"name":"caffienebounce","email":"doug@douglasebanks.com"}],"homepage":"https://github.com/caffeinebounce/shared-packages#readme","bugs":{"url":"https://github.com/caffeinebounce/shared-packages/issues"},"dist":{"shasum":"fb93b6a58b3b7af751761245e1a49d45bcf6a89c","tarball":"https://registry.npmjs.org/@caffeinebounce/ui/-/ui-0.62.2.tgz","fileCount":143,"integrity":"sha512-qLdD9T1XAhADmaKw1ByMdButBGISmjY9OJEVCS+sz1etj/834dNlKN0m2w7BqOEXUoat3eN8v/sgQrKh8JHp6g==","signatures":[{"sig":"MEUCIQCcvEyYMMHO2xZTQkgUBSpYe2LE62LqmIAqfdwAGlN/gAIgIY6ftTWxptoN+Mu6hemzS1p2NZRh6lH2sG1CI4oNHOA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3449657},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./blog":{"types":"./dist/blog.d.ts","import":"./dist/blog.mjs","require":"./dist/blog.js"},"./forms":{"types":"./dist/forms.d.ts","import":"./dist/forms.mjs","require":"./dist/forms.js"},"./hooks":{"types":"./dist/hooks.d.ts","import":"./dist/hooks.mjs","require":"./dist/hooks.js"},"./media":{"types":"./dist/media.d.ts","import":"./dist/media.mjs","require":"./dist/media.js"},"./charts":{"types":"./dist/charts.d.ts","import":"./dist/charts.mjs","require":"./dist/charts.js"},"./editor":{"types":"./dist/editor.d.ts","import":"./dist/editor.mjs","require":"./dist/editor.js"},"./portal":{"types":"./dist/portal.d.ts","import":"./dist/portal.mjs","require":"./dist/portal.js"},"./layouts":{"types":"./dist/layouts.d.ts","import":"./dist/layouts.mjs","require":"./dist/layouts.js"},"./settings":{"types":"./dist/settings.d.ts","import":"./dist/settings.mjs","require":"./dist/settings.js"},"./marketing":{"types":"./dist/marketing.d.ts","import":"./dist/marketing.mjs","require":"./dist/marketing.js"},"./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.mjs","require":"./dist/data-table.js"},"./navigation":{"types":"./dist/navigation.d.ts","import":"./dist/navigation.mjs","require":"./dist/navigation.js"},"./primitives":{"types":"./dist/primitives.d.ts","import":"./dist/primitives.mjs","require":"./dist/primitives.js"},"./styles.css":"./dist/styles.css","./marketing-3d":{"types":"./dist/marketing-3d.d.ts","import":"./dist/marketing-3d.mjs","require":"./dist/marketing-3d.js"}},"gitHead":"5dfd175bac29e205d94e90538793c926e80b97b1","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"NODE_OPTIONS='--max-old-space-size=4096 --localstorage-file=.vitest-localstorage' yarn run -T vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit","test:watch":"NODE_OPTIONS='--localstorage-file=.vitest-localstorage' vitest","test:coverage":"NODE_OPTIONS='--max-old-space-size=4096 --localstorage-file=.vitest-localstorage-coverage' yarn run -T vitest run --coverage"},"_npmUser":{"name":"caffienebounce","email":"doug@douglasebanks.com"},"repository":{"url":"git+https://github.com/caffeinebounce/shared-packages.git","type":"git","directory":"packages/ui"},"_npmVersion":"11.12.1","description":"Shared React UI primitives, composed blocks, layouts, navigation, marketing, settings, portal, media, and CSS exports.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","vaul":"^1.1.2","motion":"^12.36.0","sonner":"^2.0.7","date-fns":"^4.1.0","react-is":"^19.2.4","recharts":"^3.8.0","input-otp":"^1.4.2","lucide-react":"^0.577.0","tailwind-merge":"^3.5.0","html2canvas-pro":"^2.0.2","react-day-picker":"^9.14.0","@grapesjs/studio-sdk":"^1.1.1","@radix-ui/react-slot":"^1.2.4","@radix-ui/react-tabs":"^1.1.13","@radix-ui/react-label":"^2.1.8","@tanstack/react-table":"^8.21.3","@caffeinebounce/logger":"^0.10.0","@radix-ui/react-avatar":"^1.1.11","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-select":"^2.2.6","@radix-ui/react-slider":"^1.3.6","@radix-ui/react-popover":"^1.1.15","@radix-ui/react-tooltip":"^1.2.8","@radix-ui/react-progress":"^1.1.8","class-variance-authority":"^0.7.1","@radix-ui/react-separator":"^1.1.8","@radix-ui/react-collapsible":"^1.1.12","@radix-ui/react-radio-group":"^1.3.8","@caffeinebounce/shared-utils":"^0.7.136","@radix-ui/react-toggle-group":"^1.1.11","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-navigation-menu":"^1.2.14"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","tsup":"^8.5.1","react":"^19.2.4","three":"^0.183.2","react-dom":"^19.2.4","typescript":"^5.9.3","next-themes":"^0.4.6","@types/react":"^19.2.14","@types/three":"^0.183.1","@biomejs/biome":"2.4.7","@types/react-is":"^19","@types/react-dom":"^19.2.3","@react-three/fiber":"^9.5.0"},"peerDependencies":{"next":">=14.0.0","react":"^18 || ^19","three":">=0.150.0","motion":"^12.4.7","sonner":"^2.0.0","react-dom":"^18 || ^19","next-themes":">=0.4.0","@react-three/fiber":">=8.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"three":{"optional":true},"next-themes":{"optional":true},"@react-three/fiber":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ui_0.62.2_1782941935000_0.764583979112395","host":"s3://npm-registry-packages-npm-production"}},"0.62.3":{"name":"@caffeinebounce/ui","version":"0.62.3","license":"MIT","_id":"@caffeinebounce/ui@0.62.3","maintainers":[{"name":"caffienebounce","email":"doug@douglasebanks.com"}],"homepage":"https://github.com/caffeinebounce/shared-packages#readme","bugs":{"url":"https://github.com/caffeinebounce/shared-packages/issues"},"dist":{"shasum":"4b21ab4502a4845342340aeff474ca6cfe80befe","tarball":"https://registry.npmjs.org/@caffeinebounce/ui/-/ui-0.62.3.tgz","fileCount":143,"integrity":"sha512-l8R9bPQeG07twAwueYjxg+trrYrpy52KwgJt/Tn3R1BNQKvsfI/ZXut1HkLa34R+yHWOu0OANPxU6A/gMdWL4A==","signatures":[{"sig":"MEYCIQCvVaP2aUXNND0BHAaewk8uQVUSfUeY18loduyj4ak2tgIhAKYbaqYDJgR03ZyfGgHPfdXGTEHPenyjet9Kj7PUY+dB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3450666},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./blog":{"types":"./dist/blog.d.ts","import":"./dist/blog.mjs","require":"./dist/blog.js"},"./forms":{"types":"./dist/forms.d.ts","import":"./dist/forms.mjs","require":"./dist/forms.js"},"./hooks":{"types":"./dist/hooks.d.ts","import":"./dist/hooks.mjs","require":"./dist/hooks.js"},"./media":{"types":"./dist/media.d.ts","import":"./dist/media.mjs","require":"./dist/media.js"},"./charts":{"types":"./dist/charts.d.ts","import":"./dist/charts.mjs","require":"./dist/charts.js"},"./editor":{"types":"./dist/editor.d.ts","import":"./dist/editor.mjs","require":"./dist/editor.js"},"./portal":{"types":"./dist/portal.d.ts","import":"./dist/portal.mjs","require":"./dist/portal.js"},"./layouts":{"types":"./dist/layouts.d.ts","import":"./dist/layouts.mjs","require":"./dist/layouts.js"},"./settings":{"types":"./dist/settings.d.ts","import":"./dist/settings.mjs","require":"./dist/settings.js"},"./marketing":{"types":"./dist/marketing.d.ts","import":"./dist/marketing.mjs","require":"./dist/marketing.js"},"./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.mjs","require":"./dist/data-table.js"},"./navigation":{"types":"./dist/navigation.d.ts","import":"./dist/navigation.mjs","require":"./dist/navigation.js"},"./primitives":{"types":"./dist/primitives.d.ts","import":"./dist/primitives.mjs","require":"./dist/primitives.js"},"./styles.css":"./dist/styles.css","./marketing-3d":{"types":"./dist/marketing-3d.d.ts","import":"./dist/marketing-3d.mjs","require":"./dist/marketing-3d.js"}},"gitHead":"4371481d62fb7174d61131fabf1beeb1c745268a","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"NODE_OPTIONS='--max-old-space-size=4096 --localstorage-file=.vitest-localstorage' yarn run -T vitest run --exclude src/build/use-client-artifacts.test.ts && yarn test:artifacts","build":"tsup","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit","test:watch":"NODE_OPTIONS='--localstorage-file=.vitest-localstorage' vitest --exclude src/build/use-client-artifacts.test.ts","test:coverage":"NODE_OPTIONS='--max-old-space-size=4096 --localstorage-file=.vitest-localstorage-coverage' yarn run -T vitest run --coverage --exclude src/build/use-client-artifacts.test.ts && yarn test:artifacts","test:artifacts":"NODE_OPTIONS='--max-old-space-size=4096' yarn run -T vitest run src/build/use-client-artifacts.test.ts"},"_npmUser":{"name":"caffienebounce","email":"doug@douglasebanks.com"},"repository":{"url":"git+https://github.com/caffeinebounce/shared-packages.git","type":"git","directory":"packages/ui"},"_npmVersion":"11.12.1","description":"Shared React UI primitives, composed blocks, layouts, navigation, marketing, settings, portal, media, and CSS exports.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","vaul":"^1.1.2","motion":"^12.36.0","sonner":"^2.0.7","date-fns":"^4.1.0","react-is":"^19.2.4","recharts":"^3.8.0","input-otp":"^1.4.2","lucide-react":"^0.577.0","tailwind-merge":"^3.5.0","html2canvas-pro":"^2.0.2","react-day-picker":"^9.14.0","@grapesjs/studio-sdk":"^1.1.1","@radix-ui/react-slot":"^1.2.4","@radix-ui/react-tabs":"^1.1.13","@radix-ui/react-label":"^2.1.8","@tanstack/react-table":"^8.21.3","@caffeinebounce/logger":"^0.10.0","@radix-ui/react-avatar":"^1.1.11","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-select":"^2.2.6","@radix-ui/react-slider":"^1.3.6","@radix-ui/react-popover":"^1.1.15","@radix-ui/react-tooltip":"^1.2.8","@radix-ui/react-progress":"^1.1.8","class-variance-authority":"^0.7.1","@radix-ui/react-separator":"^1.1.8","@radix-ui/react-collapsible":"^1.1.12","@radix-ui/react-radio-group":"^1.3.8","@caffeinebounce/shared-utils":"^0.7.136","@radix-ui/react-toggle-group":"^1.1.11","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-navigation-menu":"^1.2.14"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","tsup":"^8.5.1","react":"^19.2.4","three":"^0.183.2","react-dom":"^19.2.4","typescript":"^5.9.3","next-themes":"^0.4.6","@types/react":"^19.2.14","@types/three":"^0.183.1","@biomejs/biome":"2.4.7","@types/react-is":"^19","@types/react-dom":"^19.2.3","@react-three/fiber":"^9.5.0"},"peerDependencies":{"next":">=14.0.0","react":"^18 || ^19","three":">=0.150.0","motion":"^12.4.7","sonner":"^2.0.0","react-dom":"^18 || ^19","next-themes":">=0.4.0","@react-three/fiber":">=8.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"three":{"optional":true},"next-themes":{"optional":true},"@react-three/fiber":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/ui_0.62.3_1783693119217_0.022572525091067996","host":"s3://npm-registry-packages-npm-production"}},"0.63.0":{"_id":"@caffeinebounce/ui@0.63.0","bugs":{"url":"https://github.com/caffeinebounce/shared-packages/issues"},"dist":{"shasum":"270c68926089b33c769cf62a5c82cadeb580e2ab","tarball":"https://registry.npmjs.org/@caffeinebounce/ui/-/ui-0.63.0.tgz","fileCount":169,"integrity":"sha512-KQHj5MKcsg4TT/tWuikbwO4G7P9VY+bKj7JrQb7aKxfD9kfbGaX5tGZafhtZ0sG6GLHks9RyiROHzt3WB1zw8g==","signatures":[{"sig":"MEUCIQCYPV8/xcn7QBcmn5YfRBTlgPQquobG4uqNYAcmWC8egwIgFusrb7ACq3yO9KkWGVlbuFdlIgC0IokBL2+H7daMae0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCX9a4AziFTPgeIFRIZZ9FWMYTj+Xlhe2cJpsUDlRCTJAIhAKhx2pgvPZN3AsgvBHOVIDDw+meJ1I+Z2YOi8U8/LNL4"}],"unpackedSize":4056963},"main":"./dist/index.js","name":"@caffeinebounce/ui","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./blog":{"types":"./dist/blog.d.ts","import":"./dist/blog.mjs","require":"./dist/blog.js"},"./forms":{"types":"./dist/forms.d.ts","import":"./dist/forms.mjs","require":"./dist/forms.js"},"./hooks":{"types":"./dist/hooks.d.ts","import":"./dist/hooks.mjs","require":"./dist/hooks.js"},"./media":{"types":"./dist/media.d.ts","import":"./dist/media.mjs","require":"./dist/media.js"},"./charts":{"types":"./dist/charts.d.ts","import":"./dist/charts.mjs","require":"./dist/charts.js"},"./editor":{"types":"./dist/editor.d.ts","import":"./dist/editor.mjs","require":"./dist/editor.js"},"./portal":{"types":"./dist/portal.d.ts","import":"./dist/portal.mjs","require":"./dist/portal.js"},"./finance":{"types":"./dist/finance.d.ts","import":"./dist/finance.mjs","require":"./dist/finance.js"},"./layouts":{"types":"./dist/layouts.d.ts","import":"./dist/layouts.mjs","require":"./dist/layouts.js"},"./settings":{"types":"./dist/settings.d.ts","import":"./dist/settings.mjs","require":"./dist/settings.js"},"./data-grid":{"types":"./dist/data-grid.d.ts","import":"./dist/data-grid.mjs","require":"./dist/data-grid.js"},"./marketing":{"types":"./dist/marketing.d.ts","import":"./dist/marketing.mjs","require":"./dist/marketing.js"},"./data-table":{"types":"./dist/data-table.d.ts","import":"./dist/data-table.mjs","require":"./dist/data-table.js"},"./navigation":{"types":"./dist/navigation.d.ts","import":"./dist/navigation.mjs","require":"./dist/navigation.js"},"./primitives":{"types":"./dist/primitives.d.ts","import":"./dist/primitives.mjs","require":"./dist/primitives.js"},"./styles.css":"./dist/styles.css","./marketing-3d":{"types":"./dist/marketing-3d.d.ts","import":"./dist/marketing-3d.mjs","require":"./dist/marketing-3d.js"}},"gitHead":"e1f57e3ac4204a6e92064f089e22e24723973187","license":"MIT","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"NODE_OPTIONS='--max-old-space-size=4096 --localstorage-file=.vitest-localstorage' yarn run -T vitest run --exclude src/build/use-client-artifacts.test.ts && yarn test:artifacts","build":"tsup","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit && tsc -p tsconfig.test.json --noEmit","test:watch":"NODE_OPTIONS='--localstorage-file=.vitest-localstorage' vitest --exclude src/build/use-client-artifacts.test.ts","test:coverage":"NODE_OPTIONS='--max-old-space-size=4096 --localstorage-file=.vitest-localstorage-coverage' yarn run -T vitest run --coverage --exclude src/build/use-client-artifacts.test.ts && yarn test:artifacts","test:artifacts":"NODE_OPTIONS='--max-old-space-size=4096' yarn run -T vitest run src/build/use-client-artifacts.test.ts"},"version":"0.63.0","_npmUser":{"name":"caffienebounce","email":"doug@douglasebanks.com"},"homepage":"https://github.com/caffeinebounce/shared-packages#readme","repository":{"url":"git+https://github.com/caffeinebounce/shared-packages.git","type":"git","directory":"packages/ui"},"_npmVersion":"11.12.1","description":"Shared React UI primitives, composed blocks, layouts, navigation, marketing, settings, portal, media, and CSS exports.","directories":{},"maintainers":[{"name":"caffienebounce","email":"doug@douglasebanks.com"}],"sideEffects":["**/*.css"],"_nodeVersion":"25.9.0","dependencies":{"zod":"^4.3.6","clsx":"^2.1.1","cmdk":"^1.1.1","nuqs":"^2.10.1","vaul":"^1.1.2","motion":"^12.36.0","sonner":"^2.0.7","date-fns":"^4.1.0","radix-ui":"^1.6.7","react-is":"^19.2.4","recharts":"^3.8.0","input-otp":"^1.4.2","lucide-react":"^0.577.0","tailwind-merge":"^3.5.0","html2canvas-pro":"^2.0.2","react-day-picker":"^9.14.0","@grapesjs/studio-sdk":"^1.1.1","@radix-ui/react-slot":"^1.2.4","@radix-ui/react-tabs":"^1.1.13","@radix-ui/react-label":"^2.1.8","@tanstack/react-table":"^8.21.3","@caffeinebounce/logger":"^0.10.0","@radix-ui/react-avatar":"^1.1.11","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-select":"^2.2.6","@radix-ui/react-slider":"^1.3.6","@radix-ui/react-switch":"^1.3.7","@radix-ui/react-toggle":"^1.1.18","@radix-ui/react-popover":"^1.1.15","@radix-ui/react-tooltip":"^1.2.8","@tanstack/react-virtual":"^3.14.13","@radix-ui/react-checkbox":"^1.3.11","@radix-ui/react-progress":"^1.1.8","class-variance-authority":"^0.7.1","@radix-ui/react-separator":"^1.1.8","@radix-ui/react-collapsible":"^1.1.12","@radix-ui/react-radio-group":"^1.3.8","@caffeinebounce/shared-utils":"^0.7.136","@radix-ui/react-toggle-group":"^1.1.11","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-navigation-menu":"^1.2.14"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"next":"^16.2.6","tsup":"^8.5.1","react":"^19.2.4","three":"^0.183.2","react-dom":"^19.2.4","typescript":"^5.9.3","next-themes":"^0.4.6","@types/react":"^19.2.14","@types/three":"^0.183.1","@biomejs/biome":"2.4.7","@types/react-is":"^19","@types/react-dom":"^19.2.3","@react-three/fiber":"^9.5.0"},"peerDependencies":{"next":">=14.0.0","react":"^18 || ^19","three":">=0.150.0","motion":"^12.4.7","sonner":"^2.0.0","react-dom":"^18 || ^19","next-themes":">=0.4.0","@react-three/fiber":">=8.0.0"},"peerDependenciesMeta":{"next":{"optional":true},"three":{"optional":true},"next-themes":{"optional":true},"@react-three/fiber":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ui_0.63.0_1789863849872_0.1412338794946586"}}},"time":{"created":"2026-07-01T21:38:54.707Z","modified":"2026-09-20T00:24:10.218Z","0.62.2":"2026-07-01T21:38:55.321Z","0.62.3":"2026-07-10T14:18:39.372Z","0.63.0":"2026-09-20T00:24:09.997Z"},"bugs":{"url":"https://github.com/caffeinebounce/shared-packages/issues"},"license":"MIT","homepage":"https://github.com/caffeinebounce/shared-packages#readme","repository":{"url":"git+https://github.com/caffeinebounce/shared-packages.git","type":"git","directory":"packages/ui"},"description":"Shared React UI primitives, composed blocks, layouts, navigation, marketing, settings, portal, media, and CSS exports.","maintainers":[{"name":"caffienebounce","email":"doug@douglasebanks.com"}],"readme":"# @caffeinebounce/ui\n\nShared React UI primitives, composed blocks, layouts, navigation, marketing,\nsettings, portal, media, and CSS exports.\n\n## Public Entrypoints\n\n- `@caffeinebounce/ui` is the broad compatibility entrypoint.\n- `@caffeinebounce/ui/primitives` is the lightweight primitive-only entrypoint.\n- Feature subpaths include `./forms`, `./hooks`, `./layouts`, `./navigation`,\n  `./marketing`, `./marketing-3d`, `./settings`, `./portal`, `./blog`,\n  `./data-table` (tablecn/shadcn table + add-ons), `./finance` (financial statement table and controls), `./data-grid` (tablecn editable grid), `./charts`, `./editor`, `./media`, and `./styles.css`.\n\n## Belongs Here\n\n- Reusable UI primitives, shared blocks, design-system components, common\n  interaction patterns, and CSS meant for multiple apps.\n\n## Does Not Belong Here\n\n- App-specific page composition, business copy, route behavior, product-specific\n  data fetching, or one-off styling that should live in a consumer app.\n\n## Focused Commands\n\n```bash\ncorepack yarn turbo run lint typecheck test build --filter=@caffeinebounce/ui\ncorepack yarn size:ui\n```\n\n## Gotchas\n\n- Prefer `@caffeinebounce/ui/primitives` for primitive-only consumers.\n- Keep heavy surfaces behind explicit subpaths and watch bundle budgets with\n  `yarn size:ui`.\n- Keep CSS exports explicit and preserve `sideEffects` metadata.\n- Mark client components with `\"use client\"` at the leaf files that need it.\n- Add a changeset for published behavior, source, manifest, CSS, or export\n  changes.\n","readmeFilename":"README.md"}