{"_id":"@burojs/ui-shadcn","_rev":"3-25ba738d723d1c318938763fdc3ac7e6","name":"@burojs/ui-shadcn","dist-tags":{"latest":"0.4.0"},"versions":{"0.2.0":{"name":"@burojs/ui-shadcn","version":"0.2.0","license":"MIT","_id":"@burojs/ui-shadcn@0.2.0","maintainers":[{"name":"maksimkuznetsov","email":"mak.kooz@gmail.com"}],"dist":{"shasum":"190562f388a22d5faa18d26033e676658cbc4dce","tarball":"https://registry.npmjs.org/@burojs/ui-shadcn/-/ui-shadcn-0.2.0.tgz","fileCount":54,"integrity":"sha512-LID6ErYOWIseMDdQ/jChF0tw8G3GYUFjo5x0UwqlqRNp3PPxsJ9d/+A3tLNgILwhUEVYDWUH+pWzmNt+OotAPg==","signatures":[{"sig":"MEYCIQDRY40De4t6vl1iDOjOwDB5HqPMYRUFU59eeD3mma6dowIhAPDB5FiW2agS9+QKK467zyxW1jWhiN6U1CTE6l6I3uFj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6491425},"main":"./dist/index.cjs","type":"module","_from":"file:burojs-ui-shadcn-0.2.0.tgz","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"}},"./markdown":{"import":{"types":"./dist/markdown/index.d.ts","default":"./dist/markdown/index.js"},"require":{"types":"./dist/markdown/index.d.cts","default":"./dist/markdown/index.cjs"}},"./theme-css":{"import":{"types":"./dist/theme/theme-css.d.ts","default":"./dist/theme/theme-css.js"},"require":{"types":"./dist/theme/theme-css.d.cts","default":"./dist/theme/theme-css.cjs"}},"./styles.css":"./dist/styles.css","./package.json":"./package.json","./theme-storage":{"import":{"types":"./dist/theme/theme-storage.d.ts","default":"./dist/theme/theme-storage.js"},"require":{"types":"./dist/theme/theme-storage.d.cts","default":"./dist/theme/theme-storage.cjs"}},"./theme-storage-key":{"import":{"types":"./dist/layout/theme-storage-key.d.ts","default":"./dist/layout/theme-storage-key.js"},"require":{"types":"./dist/layout/theme-storage-key.d.cts","default":"./dist/layout/theme-storage-key.cjs"}}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","typecheck:tests":"tsc -p tsconfig.test.json"},"_npmUser":{"name":"maksimkuznetsov","email":"mak.kooz@gmail.com"},"_resolved":"/tmp/4fb7892c970bd152541b5436cfd08210/burojs-ui-shadcn-0.2.0.tgz","_integrity":"sha512-LID6ErYOWIseMDdQ/jChF0tw8G3GYUFjo5x0UwqlqRNp3PPxsJ9d/+A3tLNgILwhUEVYDWUH+pWzmNt+OotAPg==","_npmVersion":"10.9.8","description":"Buro: default shadcn+Tailwind UI kit with required testid attributes","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.24.0","clsx":"^2.1.0","cmdk":"^1.1.1","sonner":"^1.7.0","mermaid":"^11.16.0","remark-gfm":"^4","rehype-slug":"^6.0.0","@burojs/core":"0.2.0","@tiptap/core":"^3.22.5","@burojs/react":"0.2.0","@tiptap/react":"^3.22.5","github-slugger":"^2.0.0","react-markdown":"^10","tailwind-merge":"^3.6.0","tw-animate-css":"^1.4.0","react-hook-form":"^7.53.0","rehype-sanitize":"^6","remark-directive":"^4","unist-util-visit":"^5","@burojs/i18n-core":"0.2.0","@burojs/field-types":"0.2.0","@hookform/resolvers":"^3.9.0","@tabler/icons-react":"^3.46.0","@tiptap/starter-kit":"^3.22.5","@burojs/file-storage":"0.2.0","@radix-ui/react-slot":"^1.1.0","@radix-ui/react-tabs":"^1.1.0","@radix-ui/react-label":"^2.1.0","@tanstack/react-table":"^8.20.0","@radix-ui/react-avatar":"^1.1.0","@radix-ui/react-dialog":"^1.1.0","@radix-ui/react-select":"^2.1.0","@tiptap/extension-link":"^3.22.5","@radix-ui/react-popover":"^1.1.0","@radix-ui/react-tooltip":"^1.1.0","@tailwindcss/typography":"^0.5","@radix-ui/react-checkbox":"^1.1.0","class-variance-authority":"^0.7.0","@radix-ui/react-accordion":"^1.2.20","@radix-ui/react-separator":"^1.1.0","@radix-ui/react-collapsible":"^1.1.0","@radix-ui/react-alert-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.0"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"markdown":["./dist/markdown/index.d.ts"],"theme-css":["./dist/theme/theme-css.d.ts"],"theme-storage":["./dist/theme/theme-storage.d.ts"],"theme-storage-key":["./dist/layout/theme-storage-key.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.0.0","react":"^19.0.0","khroma":"^2.1.0","vitest":"^2.1.0","react-dom":"^19.0.0","typescript":"^5.5.0","expect-type":"^1.1.0","@types/react":"^19.0.0","@burojs/export":"0.2.0","@burojs/context":"0.2.0","@tailwindcss/cli":"^4.0.0","@types/react-dom":"^19.0.0","@tanstack/react-query":"^5.100.7","@burojs/tooling-eslint":"0.0.0","@testing-library/react":"^16.0.0","@burojs/tooling-tsconfig":"0.0.0","@testing-library/jest-dom":"^6.0.0","@testing-library/user-event":"^14.5.0"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","tailwindcss":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-shadcn_0.2.0_1786820381138_0.7657622384653924","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@burojs/ui-shadcn","version":"0.3.0","license":"MIT","_id":"@burojs/ui-shadcn@0.3.0","maintainers":[{"name":"maksimkuznetsov","email":"mak.kooz@gmail.com"}],"dist":{"shasum":"9535b1736cb7ec9bd20196192b0ccedc5c28ac21","tarball":"https://registry.npmjs.org/@burojs/ui-shadcn/-/ui-shadcn-0.3.0.tgz","fileCount":54,"integrity":"sha512-7Uu96Weuf/EjFu2rs+u11KCC5RGhJDOUVrPbomBXzNQGb0+uoXz2c8lFgNs4iCwbrytDjeVsAaVhbUdsLkfRTw==","signatures":[{"sig":"MEYCIQDBmfiDdjEgcIcy01KW3wF/AtqTSDFnVjyWPxV2J1tv6gIhAJnIUpwarQu7GOrSsITUW6R6b/kPajS+Tor5fLfll8um","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6491287},"main":"./dist/index.cjs","type":"module","_from":"file:burojs-ui-shadcn-0.3.0.tgz","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"}},"./markdown":{"import":{"types":"./dist/markdown/index.d.ts","default":"./dist/markdown/index.js"},"require":{"types":"./dist/markdown/index.d.cts","default":"./dist/markdown/index.cjs"}},"./theme-css":{"import":{"types":"./dist/theme/theme-css.d.ts","default":"./dist/theme/theme-css.js"},"require":{"types":"./dist/theme/theme-css.d.cts","default":"./dist/theme/theme-css.cjs"}},"./styles.css":"./dist/styles.css","./package.json":"./package.json","./theme-storage":{"import":{"types":"./dist/theme/theme-storage.d.ts","default":"./dist/theme/theme-storage.js"},"require":{"types":"./dist/theme/theme-storage.d.cts","default":"./dist/theme/theme-storage.cjs"}},"./theme-storage-key":{"import":{"types":"./dist/layout/theme-storage-key.d.ts","default":"./dist/layout/theme-storage-key.js"},"require":{"types":"./dist/layout/theme-storage-key.d.cts","default":"./dist/layout/theme-storage-key.cjs"}}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","typecheck:tests":"tsc -p tsconfig.test.json"},"_npmUser":{"name":"maksimkuznetsov","email":"mak.kooz@gmail.com"},"_resolved":"/tmp/ffb746dee235ec4a4db26c006dfa6ec3/burojs-ui-shadcn-0.3.0.tgz","_integrity":"sha512-7Uu96Weuf/EjFu2rs+u11KCC5RGhJDOUVrPbomBXzNQGb0+uoXz2c8lFgNs4iCwbrytDjeVsAaVhbUdsLkfRTw==","_npmVersion":"10.9.8","description":"Buro: default shadcn+Tailwind UI kit with required testid attributes","directories":{},"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.24.0","clsx":"^2.1.0","cmdk":"^1.1.1","sonner":"^1.7.0","mermaid":"^11.16.0","remark-gfm":"^4","rehype-slug":"^6.0.0","@burojs/core":"0.2.0","@tiptap/core":"^3.22.5","@burojs/react":"0.2.0","@tiptap/react":"^3.22.5","github-slugger":"^2.0.0","react-markdown":"^10","tailwind-merge":"^3.6.0","tw-animate-css":"^1.4.0","react-hook-form":"^7.53.0","rehype-sanitize":"^6","remark-directive":"^4","unist-util-visit":"^5","@burojs/i18n-core":"0.2.0","@burojs/field-types":"0.2.0","@hookform/resolvers":"^3.9.0","@tabler/icons-react":"^3.46.0","@tiptap/starter-kit":"^3.22.5","@burojs/file-storage":"0.2.0","@radix-ui/react-slot":"^1.1.0","@radix-ui/react-tabs":"^1.1.0","@radix-ui/react-label":"^2.1.0","@tanstack/react-table":"^8.20.0","@radix-ui/react-avatar":"^1.1.0","@radix-ui/react-dialog":"^1.1.0","@radix-ui/react-select":"^2.1.0","@tiptap/extension-link":"^3.22.5","@radix-ui/react-popover":"^1.1.0","@radix-ui/react-tooltip":"^1.1.0","@tailwindcss/typography":"^0.5","@radix-ui/react-checkbox":"^1.1.0","class-variance-authority":"^0.7.0","@radix-ui/react-accordion":"^1.2.20","@radix-ui/react-separator":"^1.1.0","@radix-ui/react-collapsible":"^1.1.0","@radix-ui/react-alert-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.0"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"markdown":["./dist/markdown/index.d.ts"],"theme-css":["./dist/theme/theme-css.d.ts"],"theme-storage":["./dist/theme/theme-storage.d.ts"],"theme-storage-key":["./dist/layout/theme-storage-key.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.0","jsdom":"^26.0.0","react":"^19.0.0","khroma":"^2.1.0","vitest":"^4.0.0","react-dom":"^19.0.0","typescript":"^5.5.0","expect-type":"^1.1.0","@types/react":"^19.0.0","@burojs/export":"0.2.0","@burojs/context":"0.2.0","@tailwindcss/cli":"^4.0.0","@types/react-dom":"^19.0.0","@tanstack/react-query":"^5.100.7","@burojs/tooling-eslint":"0.0.0","@testing-library/react":"^16.0.0","@burojs/tooling-globals":"0.0.0","@burojs/tooling-tsconfig":"0.0.0","@testing-library/jest-dom":"^6.0.0","@testing-library/user-event":"^14.5.0"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","tailwindcss":"^4.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ui-shadcn_0.3.0_1786874027611_0.6902107828637842","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"_id":"@burojs/ui-shadcn@0.4.0","dist":{"shasum":"248664f4de4f2e3138a5120cc48ea1ea4a91a525","tarball":"https://registry.npmjs.org/@burojs/ui-shadcn/-/ui-shadcn-0.4.0.tgz","fileCount":44,"integrity":"sha512-FDzq8aWk7b2rv3isYSGbyyM1f8uaAjXwedIvgKY5zNzqSLfdFge9WRjtpFBojsxWrxhZDpzIjWzB5KVcPO15cg==","signatures":[{"sig":"MEUCIE4LPGZrTjVJXZpnldcsyvGRgcMOOxU0Fyh8MHqQq4QjAiEA5o/bPIFM6gdNsihs2bHZPkLGbiXHnLaTcO/7enNy9m8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEat1z33xB8znShsFr+jYvj1MfeyMFEjhcs24kK4fj+9AiEAk0rg58aG2qknXCHruNUx59ynzNPLlJWKj7qIDAYAQGc="}],"unpackedSize":6069174},"main":"./dist/index.cjs","name":"@burojs/ui-shadcn","type":"module","_from":"file:burojs-ui-shadcn-0.4.0.tgz","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"}},"./markdown":{"import":{"types":"./dist/markdown/index.d.ts","default":"./dist/markdown/index.js"},"require":{"types":"./dist/markdown/index.d.cts","default":"./dist/markdown/index.cjs"}},"./theme-css":{"import":{"types":"./dist/theme/theme-css.d.ts","default":"./dist/theme/theme-css.js"},"require":{"types":"./dist/theme/theme-css.d.cts","default":"./dist/theme/theme-css.cjs"}},"./styles.css":"./dist/styles.css","./package.json":"./package.json","./theme-storage":{"import":{"types":"./dist/theme/theme-storage.d.ts","default":"./dist/theme/theme-storage.js"},"require":{"types":"./dist/theme/theme-storage.d.cts","default":"./dist/theme/theme-storage.cjs"}},"./theme-storage-key":{"import":{"types":"./dist/layout/theme-storage-key.d.ts","default":"./dist/layout/theme-storage-key.js"},"require":{"types":"./dist/layout/theme-storage-key.d.cts","default":"./dist/layout/theme-storage-key.cjs"}}},"license":"MIT","scripts":{"dev":"tsdown --watch","test":"vitest run","build":"tsdown","typecheck":"tsc --noEmit","typecheck:tests":"tsc -p tsconfig.test.json"},"version":"0.4.0","_npmUser":{"name":"maksimkuznetsov","email":"mak.kooz@gmail.com"},"_resolved":"/tmp/dc73d790ea75905730e0ded1d9cf2226/burojs-ui-shadcn-0.4.0.tgz","_integrity":"sha512-FDzq8aWk7b2rv3isYSGbyyM1f8uaAjXwedIvgKY5zNzqSLfdFge9WRjtpFBojsxWrxhZDpzIjWzB5KVcPO15cg==","_npmVersion":"10.9.8","description":"Buro: default shadcn+Tailwind UI kit with required testid attributes","directories":{},"maintainers":[{"name":"maksimkuznetsov","email":"mak.kooz@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.24.0","clsx":"^2.1.0","cmdk":"^1.1.1","sonner":"^1.7.0","mermaid":"^11.16.0","remark-gfm":"^4","rehype-slug":"^6.0.0","@burojs/core":"0.4.0","@tiptap/core":"^3.22.5","@burojs/react":"0.4.0","@tiptap/react":"^3.22.5","github-slugger":"^2.0.0","react-markdown":"^10","tailwind-merge":"^3.6.0","tw-animate-css":"^1.4.0","react-hook-form":"^7.53.0","rehype-sanitize":"^6","remark-directive":"^4","unist-util-visit":"^5","@burojs/i18n-core":"0.4.0","@burojs/field-types":"0.4.0","@hookform/resolvers":"^3.9.0","@tabler/icons-react":"^3.46.0","@tiptap/starter-kit":"^3.22.5","@burojs/file-storage":"0.4.0","@radix-ui/react-slot":"^1.1.0","@radix-ui/react-tabs":"^1.1.0","@radix-ui/react-label":"^2.1.0","@tanstack/react-table":"^8.20.0","@radix-ui/react-avatar":"^1.1.0","@radix-ui/react-dialog":"^1.1.0","@radix-ui/react-select":"^2.1.0","@tiptap/extension-link":"^3.22.5","@radix-ui/react-popover":"^1.1.0","@radix-ui/react-tooltip":"^1.1.0","@tailwindcss/typography":"^0.5","@radix-ui/react-checkbox":"^1.1.0","class-variance-authority":"^0.7.0","@radix-ui/react-accordion":"^1.2.20","@radix-ui/react-separator":"^1.1.0","@radix-ui/react-collapsible":"^1.1.0","@radix-ui/react-alert-dialog":"^1.1.15","@radix-ui/react-dropdown-menu":"^2.1.0"},"publishConfig":{"access":"public"},"typesVersions":{"*":{"markdown":["./dist/markdown/index.d.ts"],"theme-css":["./dist/theme/theme-css.d.ts"],"theme-storage":["./dist/theme/theme-storage.d.ts"],"theme-storage-key":["./dist/layout/theme-storage-key.d.ts"]}},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^26.0.0","react":"^19.0.0","khroma":"^2.1.0","vitest":"^4.0.0","react-dom":"^19.0.0","typescript":"^5.5.0","expect-type":"^1.1.0","@types/react":"^19.0.0","@burojs/export":"0.4.0","@burojs/context":"0.4.0","@tailwindcss/cli":"^4.0.0","@types/react-dom":"^19.0.0","@tanstack/react-query":"^5.100.7","@burojs/tooling-eslint":"0.0.0","@testing-library/react":"^16.0.0","@burojs/tooling-globals":"0.0.0","@burojs/tooling-tsconfig":"0.0.0","@testing-library/jest-dom":"^6.0.0","@testing-library/user-event":"^14.5.0"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","tailwindcss":"^4.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ui-shadcn_0.4.0_1790626385165_0.8864356270376754"}}},"time":{"created":"2026-08-15T18:59:41.022Z","modified":"2026-09-28T20:13:05.501Z","0.2.0":"2026-08-15T18:59:41.324Z","0.3.0":"2026-08-16T09:53:47.795Z","0.4.0":"2026-09-28T20:13:05.296Z"},"license":"MIT","description":"Buro: default shadcn+Tailwind UI kit with required testid attributes","maintainers":[{"name":"maksimkuznetsov","email":"mak.kooz@gmail.com"}],"readme":"# @burojs/ui-shadcn\n\nDefault UI kit for buro, built on shadcn/ui primitives + Tailwind CSS.\n\n## Install\n\n```bash\npnpm add @burojs/ui-shadcn @burojs/core @burojs/react @burojs/field-types\npnpm add -D tailwindcss\n# plus your bundler's Tailwind v4 plugin — see \"Tailwind setup\" below\n```\n\nRequires Tailwind v4 (`tailwindcss: ^4`, declared as a peer dependency) — this\npackage has no v3 build.\n\n## Tailwind setup\n\nOne import, before your own CSS rules:\n\n```css\n@import '@burojs/ui-shadcn/styles.css';\n```\n\nThat pulls in Tailwind itself, `tw-animate-css` (Radix overlay animations),\nthe design tokens, the token→utility mapping, the `dark` variant, the pinned\n`--font-sans` and named-size line-heights, the base layer (border colours,\nbackground/foreground, button cursor), and the standard\n`html { font-size: 16px }` root — nothing else to configure. There is no\n`tailwind.config.ts`, no `content` array, and no preset: the package declares\nits own scan of its compiled output, so its class names reach your build\nwithout you listing its `dist` folder anywhere.\n\n**The standard 16px root keeps mobile editable text at its native size.** The\nshared `Input` and `Textarea` use `text-base` (16px) on mobile, then\n`md:text-sm` (14px) from the medium breakpoint upward for compact desktop\ncontrols. This is a responsive control contract, not a global app rescale.\n\nThat import alone doesn't run Tailwind, though — you still need Tailwind v4's\nbuild plugin for your bundler, installed as its own devDependency:\n\n- **Next**: `pnpm add -D @tailwindcss/postcss`, wired into `postcss.config.cjs`\n- **Vite**: `pnpm add -D @tailwindcss/vite`, wired into `vite.config.ts`; no\n  PostCSS config needed\n- **Anything else**: follow [Tailwind's own install docs](https://tailwindcss.com/docs/installation)\n  for your bundler, then add the `@import` above to your stylesheet\n\n**→ [docs/theming.md](../../docs/theming.md)** has the full setup, how to\noverride a token, and the reasoning behind the base-layer rules and the\n`--destructive` colours. `examples/vite` (Vite) and `examples/next` (Next)\nare the working examples to copy from. (This line named `apps/playground` as\nthe Next example. It was wrong twice over: that application had been a Vite\napp since 2026-07-31, and SP9 has now deleted it.)\n\n## What's included\n\n- Layout: AppLayout, Sidebar, Breadcrumbs\n- Auth: LoginForm\n- Resource views: ResourceList, ResourceShow, ResourceEdit, ResourceCreate\n- Field renderers: text, number, boolean, date, enum, textarea (display + form input)\n- Actions: ActionButton, BulkActionToolbar (wrap @burojs/react useAction)\n- Notifications: Toaster + NotificationProvider (Sonner)\n- UI presentation hosts: dialog/sheet chrome for the framework-mounted `<UIPresentations/>` overlay stack (`shadcnPresentationHosts`), backing `modal`/`formModal` actions\n- Vendored shadcn primitives: Button, Input, Label, Form, Table, Card, Dialog, Sheet, Select, Checkbox, Textarea, Badge\n\n## License\n\nMIT\n","readmeFilename":"README.md"}