From 0a241be17ffe07cf21cc72702feb1aea852ef571 Mon Sep 17 00:00:00 2001
From: shadcn
Date: Tue, 24 Jan 2023 19:51:29 +0400
Subject: [PATCH] feat: initial commit
---
.commitlintrc.json | 3 +
.editorconfig | 10 +
.eslintrc.json | 24 +
.gitignore | 35 +
.husky/commit-msg | 4 +
.husky/pre-commit | 4 +
.npmrc | 1 +
.nvmrc | 1 +
.vscode/settings.json | 6 +
README.md | 46 +
apps/www/.env.example | 4 +
apps/www/.gitignore | 2 +
apps/www/app/docs/[[...slug]]/head.tsx | 25 +
apps/www/app/docs/[[...slug]]/page.tsx | 80 +
apps/www/app/docs/layout.tsx | 20 +
apps/www/app/head.tsx | 43 +
apps/www/app/layout.tsx | 44 +
apps/www/app/page.tsx | 71 +
apps/www/assets/fonts/Inter-Bold.ttf | Bin 0 -> 316100 bytes
apps/www/assets/fonts/Inter-Regular.ttf | Bin 0 -> 309828 bytes
apps/www/components/analytics.tsx | 7 +
apps/www/components/apple-music-demo.tsx | 745 ++
apps/www/components/callout.tsx | 31 +
apps/www/components/card.tsx | 38 +
apps/www/components/code-block-wrapper.tsx | 56 +
apps/www/components/component-card.tsx | 21 +
apps/www/components/component-example.tsx | 77 +
apps/www/components/component-source.tsx | 21 +
apps/www/components/copy-button.tsx | 190 +
apps/www/components/examples/.eslintrc.json | 6 +
.../components/examples/accordion/demo.tsx | 32 +
.../components/examples/alert-dialog/demo.tsx | 37 +
.../components/examples/aspect-ratio/demo.tsx | 18 +
apps/www/components/examples/avatar/demo.tsx | 12 +
apps/www/components/examples/button/demo.tsx | 5 +
apps/www/components/examples/button/ghost.tsx | 5 +
apps/www/components/examples/button/link.tsx | 5 +
.../components/examples/button/loading.tsx | 12 +
.../components/examples/button/outline.tsx | 5 +
.../www/components/examples/button/subtle.tsx | 5 +
.../components/examples/button/with-icon.tsx | 11 +
.../www/components/examples/checkbox/demo.tsx | 17 +
.../components/examples/checkbox/disabled.tsx | 17 +
.../examples/checkbox/with-text.tsx | 22 +
.../components/examples/collapsible/demo.tsx | 46 +
.../components/examples/context-menu/demo.tsx | 89 +
apps/www/components/examples/dialog/demo.tsx | 49 +
.../examples/dropdown-menu/checkboxes.tsx | 53 +
.../examples/dropdown-menu/demo.tsx | 124 +
.../examples/dropdown-menu/radio-group.tsx | 37 +
.../components/examples/hover-card/demo.tsx | 39 +
apps/www/components/examples/index.tsx | 117 +
apps/www/components/examples/input/demo.tsx | 5 +
.../components/examples/input/disabled.tsx | 5 +
.../components/examples/input/with-button.tsx | 11 +
.../components/examples/input/with-label.tsx | 11 +
.../components/examples/input/with-text.tsx | 12 +
apps/www/components/examples/label/demo.tsx | 13 +
apps/www/components/examples/menubar/demo.tsx | 109 +
apps/www/components/examples/popover/demo.tsx | 69 +
.../www/components/examples/progress/demo.tsx | 16 +
.../components/examples/radio-group/demo.tsx | 23 +
.../components/examples/scroll-area/demo.tsx | 26 +
apps/www/components/examples/select/demo.tsx | 53 +
.../components/examples/separator/demo.tsx | 22 +
apps/www/components/examples/slider/demo.tsx | 5 +
apps/www/components/examples/switch/demo.tsx | 11 +
apps/www/components/examples/tabs/demo.tsx | 51 +
.../www/components/examples/textarea/demo.tsx | 5 +
.../components/examples/textarea/disabled.tsx | 5 +
.../examples/textarea/with-button.tsx | 11 +
.../examples/textarea/with-label.tsx | 11 +
.../examples/textarea/with-text.tsx | 14 +
apps/www/components/examples/tooltip/demo.tsx | 26 +
.../examples/typography/blockquote.tsx | 8 +
.../components/examples/typography/demo.tsx | 119 +
.../www/components/examples/typography/h1.tsx | 7 +
.../www/components/examples/typography/h2.tsx | 7 +
.../www/components/examples/typography/h3.tsx | 7 +
.../www/components/examples/typography/h4.tsx | 7 +
.../examples/typography/inline-code.tsx | 7 +
.../components/examples/typography/large.tsx | 7 +
.../components/examples/typography/lead.tsx | 8 +
.../components/examples/typography/list.tsx | 9 +
apps/www/components/examples/typography/p.tsx | 8 +
.../components/examples/typography/small.tsx | 5 +
.../components/examples/typography/subtle.tsx | 7 +
.../components/examples/typography/table.tsx | 44 +
apps/www/components/fonts.tsx | 29 +
apps/www/components/icons.tsx | 117 +
apps/www/components/main-nav.tsx | 112 +
apps/www/components/mdx-head.tsx | 67 +
apps/www/components/mdx.tsx | 247 +
apps/www/components/mode-toggle.tsx | 42 +
apps/www/components/page-header.tsx | 32 +
apps/www/components/pager.tsx | 64 +
apps/www/components/promo-video.tsx | 19 +
apps/www/components/search.tsx | 32 +
apps/www/components/sidebar-nav.tsx | 71 +
apps/www/components/site-footer.tsx | 35 +
apps/www/components/site-header.tsx | 60 +
apps/www/components/tailwind-indicator.tsx | 16 +
apps/www/components/theme-provider.tsx | 9 +
apps/www/components/toc.tsx | 107 +
apps/www/components/ui/accordion.tsx | 63 +
apps/www/components/ui/alert-dialog.tsx | 156 +
apps/www/components/ui/aspect-ratio.tsx | 7 +
apps/www/components/ui/avatar.tsx | 50 +
apps/www/components/ui/button.tsx | 51 +
apps/www/components/ui/checkbox.tsx | 30 +
apps/www/components/ui/collapsible.tsx | 11 +
apps/www/components/ui/context-menu.tsx | 200 +
apps/www/components/ui/dialog.tsx | 130 +
apps/www/components/ui/dropdown-menu.tsx | 203 +
apps/www/components/ui/hover-card.tsx | 29 +
apps/www/components/ui/input.tsx | 24 +
apps/www/components/ui/label.tsx | 23 +
apps/www/components/ui/menubar.tsx | 236 +
apps/www/components/ui/popover.tsx | 31 +
apps/www/components/ui/progress.tsx | 28 +
apps/www/components/ui/radio-group.tsx | 44 +
apps/www/components/ui/scroll-area.tsx | 48 +
apps/www/components/ui/select.tsx | 113 +
apps/www/components/ui/separator.tsx | 31 +
apps/www/components/ui/slider.tsx | 28 +
apps/www/components/ui/switch.tsx | 29 +
apps/www/components/ui/tabs.tsx | 55 +
apps/www/components/ui/textarea.tsx | 24 +
apps/www/components/ui/tooltip.tsx | 33 +
apps/www/config/docs.ts | 181 +
apps/www/config/site.ts | 18 +
apps/www/content/docs/index.mdx | 81 +
apps/www/content/docs/installation.mdx | 138 +
.../www/content/docs/primitives/accordion.mdx | 64 +
.../content/docs/primitives/alert-dialog.mdx | 64 +
.../content/docs/primitives/aspect-ratio.mdx | 50 +
apps/www/content/docs/primitives/avatar.mdx | 42 +
apps/www/content/docs/primitives/button.mdx | 85 +
apps/www/content/docs/primitives/checkbox.mdx | 52 +
.../content/docs/primitives/collapsible.mdx | 45 +
.../content/docs/primitives/context-menu.mdx | 51 +
apps/www/content/docs/primitives/dialog.mdx | 57 +
.../content/docs/primitives/dropdown-menu.mdx | 65 +
.../content/docs/primitives/hover-card.mdx | 52 +
apps/www/content/docs/primitives/input.mdx | 76 +
apps/www/content/docs/primitives/label.mdx | 38 +
apps/www/content/docs/primitives/menubar.mdx | 60 +
apps/www/content/docs/primitives/popover.mdx | 45 +
apps/www/content/docs/primitives/progress.mdx | 39 +
.../content/docs/primitives/radio-group.mdx | 48 +
.../content/docs/primitives/scroll-area.mdx | 48 +
apps/www/content/docs/primitives/select.mdx | 54 +
.../www/content/docs/primitives/separator.mdx | 41 +
apps/www/content/docs/primitives/slider.mdx | 39 +
apps/www/content/docs/primitives/switch.mdx | 38 +
apps/www/content/docs/primitives/tabs.mdx | 54 +
apps/www/content/docs/primitives/textarea.mdx | 66 +
apps/www/content/docs/primitives/tooltip.mdx | 48 +
.../content/docs/primitives/typography.mdx | 110 +
apps/www/contentlayer.config.js | 146 +
apps/www/hooks/use-lock-body.ts | 12 +
apps/www/hooks/use-mounted.ts | 11 +
apps/www/lib/rehype-component.ts | 138 +
apps/www/lib/rehype-npm-command.ts | 26 +
apps/www/lib/toc.ts | 79 +
apps/www/lib/utils.ts | 19 +
apps/www/lib/validations/log.ts | 6 +
apps/www/lib/validations/og.ts | 7 +
apps/www/lib/vscode-theme.json | 733 ++
apps/www/next-env.d.ts | 5 +
apps/www/next.config.mjs | 21 +
apps/www/package.json | 80 +
apps/www/pages/.gitkeep | 0
apps/www/pages/api/log.ts | 35 +
apps/www/postcss.config.js | 1 +
apps/www/public/android-chrome-192x192.png | Bin 0 -> 8183 bytes
apps/www/public/android-chrome-512x512.png | Bin 0 -> 29961 bytes
apps/www/public/apple-touch-icon.png | Bin 0 -> 7566 bytes
apps/www/public/favicon-16x16.png | Bin 0 -> 295 bytes
apps/www/public/favicon-32x32.png | Bin 0 -> 639 bytes
apps/www/public/favicon.ico | Bin 0 -> 15406 bytes
apps/www/public/og-2.jpg | Bin 0 -> 66193 bytes
apps/www/public/og.jpg | Bin 0 -> 122174 bytes
apps/www/public/site.webmanifest | 19 +
apps/www/styles/globals.css | 3 +
apps/www/styles/mdx.css | 52 +
apps/www/tailwind.config.js | 7 +
apps/www/tsconfig.json | 31 +
apps/www/types/nav.ts | 17 +
apps/www/types/unist.ts | 29 +
package.json | 49 +
pnpm-lock.yaml | 7908 +++++++++++++++++
pnpm-workspace.yaml | 4 +
postcss.config.js | 6 +
prettier.config.js | 28 +
scripts/sync-templates.sh | 33 +
tailwind.config.js | 36 +
templates/next-template/.editorconfig | 10 +
templates/next-template/.eslintignore | 5 +
templates/next-template/.eslintrc.json | 20 +
templates/next-template/.gitignore | 36 +
templates/next-template/.prettierignore | 7 +
templates/next-template/README.md | 78 +
templates/next-template/components/icons.tsx | 30 +
templates/next-template/components/layout.tsx | 14 +
.../next-template/components/main-nav.tsx | 83 +
.../next-template/components/site-header.tsx | 54 +
.../next-template/components/theme-toggle.tsx | 40 +
.../next-template/components/ui/accordion.tsx | 63 +
.../components/ui/alert-dialog.tsx | 156 +
.../components/ui/aspect-ratio.tsx | 7 +
.../next-template/components/ui/avatar.tsx | 50 +
.../next-template/components/ui/button.tsx | 51 +
.../next-template/components/ui/checkbox.tsx | 30 +
.../components/ui/collapsible.tsx | 11 +
.../components/ui/context-menu.tsx | 200 +
.../next-template/components/ui/dialog.tsx | 130 +
.../components/ui/dropdown-menu.tsx | 203 +
.../components/ui/hover-card.tsx | 29 +
.../next-template/components/ui/input.tsx | 24 +
.../next-template/components/ui/label.tsx | 23 +
.../next-template/components/ui/menubar.tsx | 236 +
.../next-template/components/ui/popover.tsx | 31 +
.../next-template/components/ui/progress.tsx | 28 +
.../components/ui/radio-group.tsx | 44 +
.../components/ui/scroll-area.tsx | 48 +
.../next-template/components/ui/select.tsx | 113 +
.../next-template/components/ui/separator.tsx | 31 +
.../next-template/components/ui/slider.tsx | 28 +
.../next-template/components/ui/switch.tsx | 29 +
.../next-template/components/ui/tabs.tsx | 55 +
.../next-template/components/ui/textarea.tsx | 24 +
.../next-template/components/ui/tooltip.tsx | 33 +
templates/next-template/config/site.ts | 29 +
templates/next-template/lib/utils.ts | 6 +
templates/next-template/next-env.d.ts | 5 +
templates/next-template/next.config.mjs | 14 +
templates/next-template/package.json | 66 +
templates/next-template/pages/_app.tsx | 25 +
templates/next-template/pages/_document.tsx | 13 +
templates/next-template/pages/index.tsx | 52 +
templates/next-template/pnpm-lock.yaml | 3958 +++++++++
templates/next-template/postcss.config.js | 6 +
templates/next-template/prettier.config.js | 28 +
templates/next-template/public/favicon.ico | Bin 0 -> 25931 bytes
templates/next-template/public/next.svg | 1 +
templates/next-template/public/thirteen.svg | 1 +
templates/next-template/public/vercel.svg | 1 +
templates/next-template/styles/globals.css | 3 +
templates/next-template/tailwind.config.js | 36 +
templates/next-template/tsconfig.json | 23 +
templates/next-template/types/nav.ts | 6 +
tsconfig.json | 20 +
turbo.json | 26 +
254 files changed, 23635 insertions(+)
create mode 100644 .commitlintrc.json
create mode 100644 .editorconfig
create mode 100644 .eslintrc.json
create mode 100644 .gitignore
create mode 100755 .husky/commit-msg
create mode 100755 .husky/pre-commit
create mode 100644 .npmrc
create mode 100644 .nvmrc
create mode 100644 .vscode/settings.json
create mode 100644 README.md
create mode 100644 apps/www/.env.example
create mode 100644 apps/www/.gitignore
create mode 100644 apps/www/app/docs/[[...slug]]/head.tsx
create mode 100644 apps/www/app/docs/[[...slug]]/page.tsx
create mode 100644 apps/www/app/docs/layout.tsx
create mode 100644 apps/www/app/head.tsx
create mode 100644 apps/www/app/layout.tsx
create mode 100644 apps/www/app/page.tsx
create mode 100644 apps/www/assets/fonts/Inter-Bold.ttf
create mode 100644 apps/www/assets/fonts/Inter-Regular.ttf
create mode 100644 apps/www/components/analytics.tsx
create mode 100644 apps/www/components/apple-music-demo.tsx
create mode 100644 apps/www/components/callout.tsx
create mode 100644 apps/www/components/card.tsx
create mode 100644 apps/www/components/code-block-wrapper.tsx
create mode 100644 apps/www/components/component-card.tsx
create mode 100644 apps/www/components/component-example.tsx
create mode 100644 apps/www/components/component-source.tsx
create mode 100644 apps/www/components/copy-button.tsx
create mode 100644 apps/www/components/examples/.eslintrc.json
create mode 100644 apps/www/components/examples/accordion/demo.tsx
create mode 100644 apps/www/components/examples/alert-dialog/demo.tsx
create mode 100644 apps/www/components/examples/aspect-ratio/demo.tsx
create mode 100644 apps/www/components/examples/avatar/demo.tsx
create mode 100644 apps/www/components/examples/button/demo.tsx
create mode 100644 apps/www/components/examples/button/ghost.tsx
create mode 100644 apps/www/components/examples/button/link.tsx
create mode 100644 apps/www/components/examples/button/loading.tsx
create mode 100644 apps/www/components/examples/button/outline.tsx
create mode 100644 apps/www/components/examples/button/subtle.tsx
create mode 100644 apps/www/components/examples/button/with-icon.tsx
create mode 100644 apps/www/components/examples/checkbox/demo.tsx
create mode 100644 apps/www/components/examples/checkbox/disabled.tsx
create mode 100644 apps/www/components/examples/checkbox/with-text.tsx
create mode 100644 apps/www/components/examples/collapsible/demo.tsx
create mode 100644 apps/www/components/examples/context-menu/demo.tsx
create mode 100644 apps/www/components/examples/dialog/demo.tsx
create mode 100644 apps/www/components/examples/dropdown-menu/checkboxes.tsx
create mode 100644 apps/www/components/examples/dropdown-menu/demo.tsx
create mode 100644 apps/www/components/examples/dropdown-menu/radio-group.tsx
create mode 100644 apps/www/components/examples/hover-card/demo.tsx
create mode 100644 apps/www/components/examples/index.tsx
create mode 100644 apps/www/components/examples/input/demo.tsx
create mode 100644 apps/www/components/examples/input/disabled.tsx
create mode 100644 apps/www/components/examples/input/with-button.tsx
create mode 100644 apps/www/components/examples/input/with-label.tsx
create mode 100644 apps/www/components/examples/input/with-text.tsx
create mode 100644 apps/www/components/examples/label/demo.tsx
create mode 100644 apps/www/components/examples/menubar/demo.tsx
create mode 100644 apps/www/components/examples/popover/demo.tsx
create mode 100644 apps/www/components/examples/progress/demo.tsx
create mode 100644 apps/www/components/examples/radio-group/demo.tsx
create mode 100644 apps/www/components/examples/scroll-area/demo.tsx
create mode 100644 apps/www/components/examples/select/demo.tsx
create mode 100644 apps/www/components/examples/separator/demo.tsx
create mode 100644 apps/www/components/examples/slider/demo.tsx
create mode 100644 apps/www/components/examples/switch/demo.tsx
create mode 100644 apps/www/components/examples/tabs/demo.tsx
create mode 100644 apps/www/components/examples/textarea/demo.tsx
create mode 100644 apps/www/components/examples/textarea/disabled.tsx
create mode 100644 apps/www/components/examples/textarea/with-button.tsx
create mode 100644 apps/www/components/examples/textarea/with-label.tsx
create mode 100644 apps/www/components/examples/textarea/with-text.tsx
create mode 100644 apps/www/components/examples/tooltip/demo.tsx
create mode 100644 apps/www/components/examples/typography/blockquote.tsx
create mode 100644 apps/www/components/examples/typography/demo.tsx
create mode 100644 apps/www/components/examples/typography/h1.tsx
create mode 100644 apps/www/components/examples/typography/h2.tsx
create mode 100644 apps/www/components/examples/typography/h3.tsx
create mode 100644 apps/www/components/examples/typography/h4.tsx
create mode 100644 apps/www/components/examples/typography/inline-code.tsx
create mode 100644 apps/www/components/examples/typography/large.tsx
create mode 100644 apps/www/components/examples/typography/lead.tsx
create mode 100644 apps/www/components/examples/typography/list.tsx
create mode 100644 apps/www/components/examples/typography/p.tsx
create mode 100644 apps/www/components/examples/typography/small.tsx
create mode 100644 apps/www/components/examples/typography/subtle.tsx
create mode 100644 apps/www/components/examples/typography/table.tsx
create mode 100644 apps/www/components/fonts.tsx
create mode 100644 apps/www/components/icons.tsx
create mode 100644 apps/www/components/main-nav.tsx
create mode 100644 apps/www/components/mdx-head.tsx
create mode 100644 apps/www/components/mdx.tsx
create mode 100644 apps/www/components/mode-toggle.tsx
create mode 100644 apps/www/components/page-header.tsx
create mode 100644 apps/www/components/pager.tsx
create mode 100644 apps/www/components/promo-video.tsx
create mode 100644 apps/www/components/search.tsx
create mode 100644 apps/www/components/sidebar-nav.tsx
create mode 100644 apps/www/components/site-footer.tsx
create mode 100644 apps/www/components/site-header.tsx
create mode 100644 apps/www/components/tailwind-indicator.tsx
create mode 100644 apps/www/components/theme-provider.tsx
create mode 100644 apps/www/components/toc.tsx
create mode 100644 apps/www/components/ui/accordion.tsx
create mode 100644 apps/www/components/ui/alert-dialog.tsx
create mode 100644 apps/www/components/ui/aspect-ratio.tsx
create mode 100644 apps/www/components/ui/avatar.tsx
create mode 100644 apps/www/components/ui/button.tsx
create mode 100644 apps/www/components/ui/checkbox.tsx
create mode 100644 apps/www/components/ui/collapsible.tsx
create mode 100644 apps/www/components/ui/context-menu.tsx
create mode 100644 apps/www/components/ui/dialog.tsx
create mode 100644 apps/www/components/ui/dropdown-menu.tsx
create mode 100644 apps/www/components/ui/hover-card.tsx
create mode 100644 apps/www/components/ui/input.tsx
create mode 100644 apps/www/components/ui/label.tsx
create mode 100644 apps/www/components/ui/menubar.tsx
create mode 100644 apps/www/components/ui/popover.tsx
create mode 100644 apps/www/components/ui/progress.tsx
create mode 100644 apps/www/components/ui/radio-group.tsx
create mode 100644 apps/www/components/ui/scroll-area.tsx
create mode 100644 apps/www/components/ui/select.tsx
create mode 100644 apps/www/components/ui/separator.tsx
create mode 100644 apps/www/components/ui/slider.tsx
create mode 100644 apps/www/components/ui/switch.tsx
create mode 100644 apps/www/components/ui/tabs.tsx
create mode 100644 apps/www/components/ui/textarea.tsx
create mode 100644 apps/www/components/ui/tooltip.tsx
create mode 100644 apps/www/config/docs.ts
create mode 100644 apps/www/config/site.ts
create mode 100644 apps/www/content/docs/index.mdx
create mode 100644 apps/www/content/docs/installation.mdx
create mode 100644 apps/www/content/docs/primitives/accordion.mdx
create mode 100644 apps/www/content/docs/primitives/alert-dialog.mdx
create mode 100644 apps/www/content/docs/primitives/aspect-ratio.mdx
create mode 100644 apps/www/content/docs/primitives/avatar.mdx
create mode 100644 apps/www/content/docs/primitives/button.mdx
create mode 100644 apps/www/content/docs/primitives/checkbox.mdx
create mode 100644 apps/www/content/docs/primitives/collapsible.mdx
create mode 100644 apps/www/content/docs/primitives/context-menu.mdx
create mode 100644 apps/www/content/docs/primitives/dialog.mdx
create mode 100644 apps/www/content/docs/primitives/dropdown-menu.mdx
create mode 100644 apps/www/content/docs/primitives/hover-card.mdx
create mode 100644 apps/www/content/docs/primitives/input.mdx
create mode 100644 apps/www/content/docs/primitives/label.mdx
create mode 100644 apps/www/content/docs/primitives/menubar.mdx
create mode 100644 apps/www/content/docs/primitives/popover.mdx
create mode 100644 apps/www/content/docs/primitives/progress.mdx
create mode 100644 apps/www/content/docs/primitives/radio-group.mdx
create mode 100644 apps/www/content/docs/primitives/scroll-area.mdx
create mode 100644 apps/www/content/docs/primitives/select.mdx
create mode 100644 apps/www/content/docs/primitives/separator.mdx
create mode 100644 apps/www/content/docs/primitives/slider.mdx
create mode 100644 apps/www/content/docs/primitives/switch.mdx
create mode 100644 apps/www/content/docs/primitives/tabs.mdx
create mode 100644 apps/www/content/docs/primitives/textarea.mdx
create mode 100644 apps/www/content/docs/primitives/tooltip.mdx
create mode 100644 apps/www/content/docs/primitives/typography.mdx
create mode 100644 apps/www/contentlayer.config.js
create mode 100644 apps/www/hooks/use-lock-body.ts
create mode 100644 apps/www/hooks/use-mounted.ts
create mode 100644 apps/www/lib/rehype-component.ts
create mode 100644 apps/www/lib/rehype-npm-command.ts
create mode 100644 apps/www/lib/toc.ts
create mode 100644 apps/www/lib/utils.ts
create mode 100644 apps/www/lib/validations/log.ts
create mode 100644 apps/www/lib/validations/og.ts
create mode 100644 apps/www/lib/vscode-theme.json
create mode 100644 apps/www/next-env.d.ts
create mode 100644 apps/www/next.config.mjs
create mode 100644 apps/www/package.json
create mode 100644 apps/www/pages/.gitkeep
create mode 100644 apps/www/pages/api/log.ts
create mode 100644 apps/www/postcss.config.js
create mode 100644 apps/www/public/android-chrome-192x192.png
create mode 100644 apps/www/public/android-chrome-512x512.png
create mode 100644 apps/www/public/apple-touch-icon.png
create mode 100644 apps/www/public/favicon-16x16.png
create mode 100644 apps/www/public/favicon-32x32.png
create mode 100644 apps/www/public/favicon.ico
create mode 100644 apps/www/public/og-2.jpg
create mode 100644 apps/www/public/og.jpg
create mode 100644 apps/www/public/site.webmanifest
create mode 100644 apps/www/styles/globals.css
create mode 100644 apps/www/styles/mdx.css
create mode 100644 apps/www/tailwind.config.js
create mode 100644 apps/www/tsconfig.json
create mode 100644 apps/www/types/nav.ts
create mode 100644 apps/www/types/unist.ts
create mode 100644 package.json
create mode 100644 pnpm-lock.yaml
create mode 100644 pnpm-workspace.yaml
create mode 100644 postcss.config.js
create mode 100644 prettier.config.js
create mode 100755 scripts/sync-templates.sh
create mode 100644 tailwind.config.js
create mode 100644 templates/next-template/.editorconfig
create mode 100644 templates/next-template/.eslintignore
create mode 100644 templates/next-template/.eslintrc.json
create mode 100644 templates/next-template/.gitignore
create mode 100644 templates/next-template/.prettierignore
create mode 100644 templates/next-template/README.md
create mode 100644 templates/next-template/components/icons.tsx
create mode 100644 templates/next-template/components/layout.tsx
create mode 100644 templates/next-template/components/main-nav.tsx
create mode 100644 templates/next-template/components/site-header.tsx
create mode 100644 templates/next-template/components/theme-toggle.tsx
create mode 100644 templates/next-template/components/ui/accordion.tsx
create mode 100644 templates/next-template/components/ui/alert-dialog.tsx
create mode 100644 templates/next-template/components/ui/aspect-ratio.tsx
create mode 100644 templates/next-template/components/ui/avatar.tsx
create mode 100644 templates/next-template/components/ui/button.tsx
create mode 100644 templates/next-template/components/ui/checkbox.tsx
create mode 100644 templates/next-template/components/ui/collapsible.tsx
create mode 100644 templates/next-template/components/ui/context-menu.tsx
create mode 100644 templates/next-template/components/ui/dialog.tsx
create mode 100644 templates/next-template/components/ui/dropdown-menu.tsx
create mode 100644 templates/next-template/components/ui/hover-card.tsx
create mode 100644 templates/next-template/components/ui/input.tsx
create mode 100644 templates/next-template/components/ui/label.tsx
create mode 100644 templates/next-template/components/ui/menubar.tsx
create mode 100644 templates/next-template/components/ui/popover.tsx
create mode 100644 templates/next-template/components/ui/progress.tsx
create mode 100644 templates/next-template/components/ui/radio-group.tsx
create mode 100644 templates/next-template/components/ui/scroll-area.tsx
create mode 100644 templates/next-template/components/ui/select.tsx
create mode 100644 templates/next-template/components/ui/separator.tsx
create mode 100644 templates/next-template/components/ui/slider.tsx
create mode 100644 templates/next-template/components/ui/switch.tsx
create mode 100644 templates/next-template/components/ui/tabs.tsx
create mode 100644 templates/next-template/components/ui/textarea.tsx
create mode 100644 templates/next-template/components/ui/tooltip.tsx
create mode 100644 templates/next-template/config/site.ts
create mode 100644 templates/next-template/lib/utils.ts
create mode 100644 templates/next-template/next-env.d.ts
create mode 100644 templates/next-template/next.config.mjs
create mode 100644 templates/next-template/package.json
create mode 100644 templates/next-template/pages/_app.tsx
create mode 100644 templates/next-template/pages/_document.tsx
create mode 100644 templates/next-template/pages/index.tsx
create mode 100644 templates/next-template/pnpm-lock.yaml
create mode 100644 templates/next-template/postcss.config.js
create mode 100644 templates/next-template/prettier.config.js
create mode 100644 templates/next-template/public/favicon.ico
create mode 100644 templates/next-template/public/next.svg
create mode 100644 templates/next-template/public/thirteen.svg
create mode 100644 templates/next-template/public/vercel.svg
create mode 100644 templates/next-template/styles/globals.css
create mode 100644 templates/next-template/tailwind.config.js
create mode 100644 templates/next-template/tsconfig.json
create mode 100644 templates/next-template/types/nav.ts
create mode 100644 tsconfig.json
create mode 100644 turbo.json
diff --git a/.commitlintrc.json b/.commitlintrc.json
new file mode 100644
index 00000000000..c30e5a970ba
--- /dev/null
+++ b/.commitlintrc.json
@@ -0,0 +1,3 @@
+{
+ "extends": ["@commitlint/config-conventional"]
+}
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 00000000000..ae10a5cce3b
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,10 @@
+# editorconfig.org
+root = true
+
+[*]
+charset = utf-8
+end_of_line = lf
+indent_size = 2
+indent_style = space
+insert_final_newline = true
+trim_trailing_whitespace = true
diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 00000000000..7612cf7791e
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,24 @@
+{
+ "$schema": "https://json.schemastore.org/eslintrc",
+ "root": true,
+ "extends": [
+ "next/core-web-vitals",
+ "turbo",
+ "prettier",
+ "plugin:tailwindcss/recommended"
+ ],
+ "plugins": ["tailwindcss"],
+ "rules": {
+ "@next/next/no-html-link-for-pages": "off",
+ "react/jsx-key": "off",
+ "tailwindcss/no-custom-classname": "off"
+ },
+ "settings": {
+ "tailwindcss": {
+ "callees": ["cn"]
+ },
+ "next": {
+ "rootDir": ["apps/*/"]
+ }
+ }
+}
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000000..d1d13f07567
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,35 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+node_modules
+.pnp
+.pnp.js
+
+# testing
+coverage
+
+# next.js
+.next/
+out/
+build
+
+# misc
+.DS_Store
+*.pem
+
+# debug
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+.pnpm-debug.log*
+
+# local env files
+.env.local
+.env.development.local
+.env.test.local
+.env.production.local
+
+# turbo
+.turbo
+
+.contentlayer
\ No newline at end of file
diff --git a/.husky/commit-msg b/.husky/commit-msg
new file mode 100755
index 00000000000..4974c35b430
--- /dev/null
+++ b/.husky/commit-msg
@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+. "$(dirname -- "$0")/_/husky.sh"
+
+npx commitlint --edit $1
diff --git a/.husky/pre-commit b/.husky/pre-commit
new file mode 100755
index 00000000000..0da96d6baa5
--- /dev/null
+++ b/.husky/pre-commit
@@ -0,0 +1,4 @@
+#!/usr/bin/env sh
+. "$(dirname -- "$0")/_/husky.sh"
+
+npx pretty-quick --staged
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 00000000000..3e775efb0f4
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1 @@
+auto-install-peers=true
diff --git a/.nvmrc b/.nvmrc
new file mode 100644
index 00000000000..50e4b92aeb8
--- /dev/null
+++ b/.nvmrc
@@ -0,0 +1 @@
+v16.18.0
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 00000000000..304879dc230
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,6 @@
+{
+ "eslint.workingDirectories": [
+ { "pattern": "apps/*/" },
+ { "pattern": "packages/*/" }
+ ]
+}
diff --git a/README.md b/README.md
new file mode 100644
index 00000000000..2bf7d8917f2
--- /dev/null
+++ b/README.md
@@ -0,0 +1,46 @@
+# shadcn/ui
+
+Beautifully designed components built with Radix UI and Tailwind CSS.
+
+![hero](apps/www/public/og.jpg)
+
+## Roadmap
+
+> **Warning**
+> This is work in progress. I'm building this in public. You can follow the progress on Twitter [@shadcn](https://twitter.com/shadcn).
+
+- [ ] Toast
+- [ ] Toggle
+- [ ] Toggle Group
+- [ ] Toolbar
+- [ ] Navigation Menu
+- [ ] Figma?
+
+## Get Started
+
+Starting a new project? Check out the Next.js template.
+
+```bash
+npx create-next-app -e https://github.com/shadcn/next-template
+```
+
+### Features
+
+- Radix UI Primitives
+- Tailwind CSS
+- Fonts with `@next/font`
+- Icons from [Lucide](https://lucide.dev)
+- Dark mode with `next-themes`
+- Automatic import sorting with `@ianvs/prettier-plugin-sort-imports`
+
+### Tailwind CSS Features
+
+- Class merging with `taiwind-merge`
+- Animation with `tailwindcss-animate`
+- Conditional classes with `clsx`
+- Variants with `class-variance-authority`
+- Automatic class sorting with `eslint-plugin-tailwindcss`
+
+## License
+
+Licensed under the [MIT license](https://github.com/shadcn/ui/blob/main/LICENSE.md).
diff --git a/apps/www/.env.example b/apps/www/.env.example
new file mode 100644
index 00000000000..66fa3666970
--- /dev/null
+++ b/apps/www/.env.example
@@ -0,0 +1,4 @@
+# -----------------------------------------------------------------------------
+# App
+# -----------------------------------------------------------------------------
+NEXT_PUBLIC_APP_URL=http://localhost:3000
\ No newline at end of file
diff --git a/apps/www/.gitignore b/apps/www/.gitignore
new file mode 100644
index 00000000000..a5c89361da8
--- /dev/null
+++ b/apps/www/.gitignore
@@ -0,0 +1,2 @@
+.vscode
+.env
\ No newline at end of file
diff --git a/apps/www/app/docs/[[...slug]]/head.tsx b/apps/www/app/docs/[[...slug]]/head.tsx
new file mode 100644
index 00000000000..1516c7f9d02
--- /dev/null
+++ b/apps/www/app/docs/[[...slug]]/head.tsx
@@ -0,0 +1,25 @@
+import { allDocs } from "contentlayer/generated"
+
+import MdxHead from "@/components/mdx-head"
+
+interface HeadProps {
+ params: {
+ slug: string[]
+ }
+}
+
+export default function Head({ params }: HeadProps) {
+ const slug = params?.slug?.join("/") || ""
+ const doc = allDocs.find((doc) => doc.slugAsParams === slug)
+
+ if (!doc) {
+ return null
+ }
+
+ return (
+
+ )
+}
diff --git a/apps/www/app/docs/[[...slug]]/page.tsx b/apps/www/app/docs/[[...slug]]/page.tsx
new file mode 100644
index 00000000000..c08aa2f2561
--- /dev/null
+++ b/apps/www/app/docs/[[...slug]]/page.tsx
@@ -0,0 +1,80 @@
+import { notFound } from "next/navigation"
+import { allDocs } from "contentlayer/generated"
+
+import "@/styles/mdx.css"
+import Link from "next/link"
+
+import { getTableOfContents } from "@/lib/toc"
+import { Icons } from "@/components/icons"
+import { Mdx } from "@/components/mdx"
+import { DocsPageHeader } from "@/components/page-header"
+import { DocsPager } from "@/components/pager"
+import { DashboardTableOfContents } from "@/components/toc"
+import { Separator } from "@/components/ui/separator"
+
+interface DocPageProps {
+ params: {
+ slug: string[]
+ }
+}
+
+export async function generateStaticParams(): Promise<
+ DocPageProps["params"][]
+> {
+ return allDocs.map((doc) => ({
+ slug: doc.slugAsParams.split("/"),
+ }))
+}
+
+export default async function DocPage({ params }: DocPageProps) {
+ const slug = params?.slug?.join("/") || ""
+ const doc = allDocs.find((doc) => doc.slugAsParams === slug)
+
+ if (!doc) {
+ notFound()
+ }
+
+ const toc = await getTableOfContents(doc.body.raw)
+
+ return (
+
+
+
+ {doc.radix ? (
+
+ {doc.radix?.link && (
+
+
+ Radix UI
+
+ )}
+ {doc.radix?.api && (
+
+ API Reference
+
+ )}
+
+ ) : null}
+
+
+
+
+
+
+
+ )
+}
diff --git a/apps/www/app/docs/layout.tsx b/apps/www/app/docs/layout.tsx
new file mode 100644
index 00000000000..b6269c6bd2a
--- /dev/null
+++ b/apps/www/app/docs/layout.tsx
@@ -0,0 +1,20 @@
+import { docsConfig } from "@/config/docs"
+import { DocsSidebarNav } from "@/components/sidebar-nav"
+import { ScrollArea } from "@/components/ui/scroll-area"
+
+interface DocsLayoutProps {
+ children: React.ReactNode
+}
+
+export default function DocsLayout({ children }: DocsLayoutProps) {
+ return (
+
+ )
+}
diff --git a/apps/www/app/head.tsx b/apps/www/app/head.tsx
new file mode 100644
index 00000000000..44ccc7dec76
--- /dev/null
+++ b/apps/www/app/head.tsx
@@ -0,0 +1,43 @@
+import { siteConfig } from "@/config/site"
+
+export default function Head() {
+ const url = process.env.NEXT_PUBLIC_APP_URL
+ const ogUrl = new URL(`${url}/og.jpg`)
+
+ return (
+ <>
+ {`${siteConfig.name} - ${siteConfig.description}`}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+}
diff --git a/apps/www/app/layout.tsx b/apps/www/app/layout.tsx
new file mode 100644
index 00000000000..2e4e2b274c1
--- /dev/null
+++ b/apps/www/app/layout.tsx
@@ -0,0 +1,44 @@
+import { Inter as FontSans } from "@next/font/google"
+
+import "@/styles/globals.css"
+import { cn } from "@/lib/utils"
+import { Analytics } from "@/components/analytics"
+import { SiteFooter } from "@/components/site-footer"
+import { SiteHeader } from "@/components/site-header"
+import { TailwindIndicator } from "@/components/tailwind-indicator"
+import { ThemeProvider } from "@/components/theme-provider"
+
+const fontSans = FontSans({
+ subsets: ["latin"],
+ variable: "--font-sans",
+})
+
+interface RootLayoutProps {
+ children: React.ReactNode
+}
+
+export default function RootLayout({ children }: RootLayoutProps) {
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+ >
+ )
+}
diff --git a/apps/www/app/page.tsx b/apps/www/app/page.tsx
new file mode 100644
index 00000000000..b255fafc095
--- /dev/null
+++ b/apps/www/app/page.tsx
@@ -0,0 +1,71 @@
+import Link from "next/link"
+
+import { siteConfig } from "@/config/site"
+import { cn } from "@/lib/utils"
+import { AppleMusicDemo } from "@/components/apple-music-demo"
+import { CopyButton } from "@/components/copy-button"
+import { PromoVideo } from "@/components/promo-video"
+import { AspectRatio } from "@/components/ui/aspect-ratio"
+import { buttonVariants } from "@/components/ui/button"
+
+export default function IndexPage() {
+ return (
+ <>
+
+
+
+ Beautifully designed components
+ built with Radix UI and Tailwind CSS.
+
+
+ Accessible and customizable components that you can copy and paste
+ into your apps. Free. Open Source. And Next.js 13 Ready.
+
+
+
+
+
+ Documentation
+
+
+ GitHub
+
+
+
+ npx create-next-app -e https://github.com/shadcn/next-template
+
+
+
+
+
+
+ You are looking at an early preview. You can follow the progress on{" "}
+
+ Twitter
+
+ .
+
+
+
+
+ >
+ )
+}
diff --git a/apps/www/assets/fonts/Inter-Bold.ttf b/apps/www/assets/fonts/Inter-Bold.ttf
new file mode 100644
index 0000000000000000000000000000000000000000..8e82c70d1081e2857ada1b73395d4f42c2e8adc9
GIT binary patch
literal 316100
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