create-tauri-ui 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +41 -0
- package/dist/index.mjs +53 -0
- package/index.js +3 -0
- package/package.json +62 -0
- package/templates/next/.env +1 -0
- package/templates/next/.github/workflows/release.yml +108 -0
- package/templates/next/.vscode/extensions.json +3 -0
- package/templates/next/LICENSE +21 -0
- package/templates/next/README.md +82 -0
- package/templates/next/app-icon.png +0 -0
- package/templates/next/next-env.d.ts +5 -0
- package/templates/next/next.config.js +17 -0
- package/templates/next/package.json +82 -0
- package/templates/next/pnpm-lock.yaml +4318 -0
- package/templates/next/postcss.config.js +6 -0
- package/templates/next/prettier.config.js +35 -0
- package/templates/next/public/avatars/01.png +0 -0
- package/templates/next/public/avatars/02.png +0 -0
- package/templates/next/public/avatars/03.png +0 -0
- package/templates/next/public/avatars/04.png +0 -0
- package/templates/next/public/avatars/05.png +0 -0
- package/templates/next/src/app/examples/authentication/components/user-auth-form.tsx +71 -0
- package/templates/next/src/app/examples/authentication/page.tsx +80 -0
- package/templates/next/src/app/examples/cards/components/cookie-settings.tsx +60 -0
- package/templates/next/src/app/examples/cards/components/create-account.tsx +60 -0
- package/templates/next/src/app/examples/cards/components/date-picker.tsx +18 -0
- package/templates/next/src/app/examples/cards/components/github-card.tsx +81 -0
- package/templates/next/src/app/examples/cards/components/notifications.tsx +51 -0
- package/templates/next/src/app/examples/cards/components/payment-method.tsx +117 -0
- package/templates/next/src/app/examples/cards/components/report-an-issue.tsx +82 -0
- package/templates/next/src/app/examples/cards/components/share-document.tsx +116 -0
- package/templates/next/src/app/examples/cards/components/team-members.tsx +147 -0
- package/templates/next/src/app/examples/cards/page.tsx +75 -0
- package/templates/next/src/app/examples/cards/styles.css +63 -0
- package/templates/next/src/app/examples/dashboard/components/date-range-picker.tsx +66 -0
- package/templates/next/src/app/examples/dashboard/components/main-nav.tsx +38 -0
- package/templates/next/src/app/examples/dashboard/components/overview.tsx +78 -0
- package/templates/next/src/app/examples/dashboard/components/recent-sales.tsx +67 -0
- package/templates/next/src/app/examples/dashboard/components/search.tsx +13 -0
- package/templates/next/src/app/examples/dashboard/components/team-switcher.tsx +205 -0
- package/templates/next/src/app/examples/dashboard/components/user-nav.tsx +67 -0
- package/templates/next/src/app/examples/dashboard/page.tsx +147 -0
- package/templates/next/src/app/examples/forms/account/account-form.tsx +219 -0
- package/templates/next/src/app/examples/forms/account/page.tsx +18 -0
- package/templates/next/src/app/examples/forms/appearance/appearance-form.tsx +164 -0
- package/templates/next/src/app/examples/forms/appearance/page.tsx +18 -0
- package/templates/next/src/app/examples/forms/components/sidebar-nav.tsx +43 -0
- package/templates/next/src/app/examples/forms/display/display-form.tsx +132 -0
- package/templates/next/src/app/examples/forms/display/page.tsx +17 -0
- package/templates/next/src/app/examples/forms/layout.tsx +57 -0
- package/templates/next/src/app/examples/forms/notifications/notifications-form.tsx +221 -0
- package/templates/next/src/app/examples/forms/notifications/page.tsx +18 -0
- package/templates/next/src/app/examples/forms/page.tsx +17 -0
- package/templates/next/src/app/examples/forms/profile-form.tsx +190 -0
- package/templates/next/src/app/examples/layout.tsx +7 -0
- package/templates/next/src/app/examples/music/components/album-artwork.tsx +84 -0
- package/templates/next/src/app/examples/music/components/menu.tsx +178 -0
- package/templates/next/src/app/examples/music/components/podcast-empty-placeholder.tsx +53 -0
- package/templates/next/src/app/examples/music/components/sidebar.tsx +100 -0
- package/templates/next/src/app/examples/music/data/albums.ts +71 -0
- package/templates/next/src/app/examples/music/data/playlists.ts +16 -0
- package/templates/next/src/app/examples/music/page.tsx +134 -0
- package/templates/next/src/app/examples/music/styles.css +65 -0
- package/templates/next/src/app/examples/playground/components/code-viewer.tsx +89 -0
- package/templates/next/src/app/examples/playground/components/icons.tsx +153 -0
- package/templates/next/src/app/examples/playground/components/maxlength-selector.tsx +55 -0
- package/templates/next/src/app/examples/playground/components/model-selector.tsx +163 -0
- package/templates/next/src/app/examples/playground/components/preset-actions.tsx +124 -0
- package/templates/next/src/app/examples/playground/components/preset-save.tsx +44 -0
- package/templates/next/src/app/examples/playground/components/preset-selector.tsx +82 -0
- package/templates/next/src/app/examples/playground/components/preset-share.tsx +46 -0
- package/templates/next/src/app/examples/playground/components/temperature-selector.tsx +57 -0
- package/templates/next/src/app/examples/playground/components/top-p-selector.tsx +54 -0
- package/templates/next/src/app/examples/playground/data/models.ts +62 -0
- package/templates/next/src/app/examples/playground/data/presets.ts +47 -0
- package/templates/next/src/app/examples/playground/page.tsx +160 -0
- package/templates/next/src/app/examples/playground/styles.css +65 -0
- package/templates/next/src/app/examples/tasks/components/columns.tsx +120 -0
- package/templates/next/src/app/examples/tasks/components/data-table-column-header.tsx +66 -0
- package/templates/next/src/app/examples/tasks/components/data-table-faceted-filter.tsx +147 -0
- package/templates/next/src/app/examples/tasks/components/data-table-pagination.tsx +97 -0
- package/templates/next/src/app/examples/tasks/components/data-table-row-actions.tsx +82 -0
- package/templates/next/src/app/examples/tasks/components/data-table-toolbar.tsx +63 -0
- package/templates/next/src/app/examples/tasks/components/data-table-view-options.tsx +59 -0
- package/templates/next/src/app/examples/tasks/components/data-table.tsx +126 -0
- package/templates/next/src/app/examples/tasks/components/user-nav.tsx +67 -0
- package/templates/next/src/app/examples/tasks/data/data.tsx +71 -0
- package/templates/next/src/app/examples/tasks/data/schema.ts +13 -0
- package/templates/next/src/app/examples/tasks/data/seed.ts +20 -0
- package/templates/next/src/app/examples/tasks/data/tasks.json +702 -0
- package/templates/next/src/app/examples/tasks/page.tsx +47 -0
- package/templates/next/src/app/layout.tsx +43 -0
- package/templates/next/src/app/page.tsx +5 -0
- package/templates/next/src/assets/Inter.var.woff2 +0 -0
- package/templates/next/src/assets/logo.png +0 -0
- package/templates/next/src/components/examples/.eslintrc.json +6 -0
- package/templates/next/src/components/examples/accordion/demo.tsx +32 -0
- package/templates/next/src/components/examples/alert/demo.tsx +15 -0
- package/templates/next/src/components/examples/alert/destructive.tsx +15 -0
- package/templates/next/src/components/examples/alert-dialog/demo.tsx +35 -0
- package/templates/next/src/components/examples/aspect-ratio/demo.tsx +16 -0
- package/templates/next/src/components/examples/avatar/demo.tsx +10 -0
- package/templates/next/src/components/examples/badge/demo.tsx +5 -0
- package/templates/next/src/components/examples/badge/destructive.tsx +5 -0
- package/templates/next/src/components/examples/badge/outline.tsx +5 -0
- package/templates/next/src/components/examples/badge/secondary.tsx +5 -0
- package/templates/next/src/components/examples/button/as-child.tsx +10 -0
- package/templates/next/src/components/examples/button/demo.tsx +5 -0
- package/templates/next/src/components/examples/button/destructive.tsx +5 -0
- package/templates/next/src/components/examples/button/ghost.tsx +5 -0
- package/templates/next/src/components/examples/button/link.tsx +5 -0
- package/templates/next/src/components/examples/button/loading.tsx +12 -0
- package/templates/next/src/components/examples/button/outline.tsx +5 -0
- package/templates/next/src/components/examples/button/secondary.tsx +5 -0
- package/templates/next/src/components/examples/button/with-icon.tsx +11 -0
- package/templates/next/src/components/examples/calendar/date-picker.tsx +43 -0
- package/templates/next/src/components/examples/calendar/date-range-picker.tsx +65 -0
- package/templates/next/src/components/examples/calendar/demo.tsx +18 -0
- package/templates/next/src/components/examples/calendar/react-hook-form.tsx +101 -0
- package/templates/next/src/components/examples/calendar/with-presets.tsx +62 -0
- package/templates/next/src/components/examples/card/demo.tsx +79 -0
- package/templates/next/src/components/examples/card/with-form.tsx +59 -0
- package/templates/next/src/components/examples/checkbox/demo.tsx +17 -0
- package/templates/next/src/components/examples/checkbox/disabled.tsx +15 -0
- package/templates/next/src/components/examples/checkbox/react-hook-form-multiple.tsx +127 -0
- package/templates/next/src/components/examples/checkbox/react-hook-form-single.tsx +72 -0
- package/templates/next/src/components/examples/checkbox/with-text.tsx +22 -0
- package/templates/next/src/components/examples/collapsible/demo.tsx +46 -0
- package/templates/next/src/components/examples/combobox/demo.tsx +90 -0
- package/templates/next/src/components/examples/combobox/dropdown-menu.tsx +110 -0
- package/templates/next/src/components/examples/combobox/popover.tsx +124 -0
- package/templates/next/src/components/examples/combobox/react-hook-form.tsx +135 -0
- package/templates/next/src/components/examples/command/combobox.tsx +90 -0
- package/templates/next/src/components/examples/command/demo.tsx +62 -0
- package/templates/next/src/components/examples/command/dialog.tsx +86 -0
- package/templates/next/src/components/examples/command/dropdown-menu.tsx +110 -0
- package/templates/next/src/components/examples/command/popover.tsx +124 -0
- package/templates/next/src/components/examples/context-menu/demo.tsx +67 -0
- package/templates/next/src/components/examples/data-table/columns.tsx +110 -0
- package/templates/next/src/components/examples/data-table/data-table.tsx +185 -0
- package/templates/next/src/components/examples/data-table/demo.tsx +41 -0
- package/templates/next/src/components/examples/date-picker/demo.tsx +43 -0
- package/templates/next/src/components/examples/date-picker/react-hook-form.tsx +101 -0
- package/templates/next/src/components/examples/date-picker/with-presets.tsx +62 -0
- package/templates/next/src/components/examples/date-picker/with-range.tsx +65 -0
- package/templates/next/src/components/examples/dialog/demo.tsx +47 -0
- package/templates/next/src/components/examples/dropdown-menu/checkboxes.tsx +53 -0
- package/templates/next/src/components/examples/dropdown-menu/demo.tsx +122 -0
- package/templates/next/src/components/examples/dropdown-menu/radio-group.tsx +37 -0
- package/templates/next/src/components/examples/hover-card/demo.tsx +39 -0
- package/templates/next/src/components/examples/index.tsx +213 -0
- package/templates/next/src/components/examples/input/demo.tsx +5 -0
- package/templates/next/src/components/examples/input/disabled.tsx +5 -0
- package/templates/next/src/components/examples/input/file.tsx +11 -0
- package/templates/next/src/components/examples/input/react-hook-form.tsx +65 -0
- package/templates/next/src/components/examples/input/with-button.tsx +11 -0
- package/templates/next/src/components/examples/input/with-label.tsx +11 -0
- package/templates/next/src/components/examples/input/with-text.tsx +12 -0
- package/templates/next/src/components/examples/label/demo.tsx +13 -0
- package/templates/next/src/components/examples/menubar/demo.tsx +107 -0
- package/templates/next/src/components/examples/navigation-menu/demo.tsx +144 -0
- package/templates/next/src/components/examples/popover/demo.tsx +67 -0
- package/templates/next/src/components/examples/progress/demo.tsx +16 -0
- package/templates/next/src/components/examples/radio-group/demo.tsx +21 -0
- package/templates/next/src/components/examples/radio-group/react-hook-form.tsx +88 -0
- package/templates/next/src/components/examples/scroll-area/demo.tsx +26 -0
- package/templates/next/src/components/examples/select/demo.tsx +31 -0
- package/templates/next/src/components/examples/select/react-hook-form.tsx +83 -0
- package/templates/next/src/components/examples/separator/demo.tsx +22 -0
- package/templates/next/src/components/examples/sheet/demo.tsx +47 -0
- package/templates/next/src/components/examples/sheet/position.tsx +75 -0
- package/templates/next/src/components/examples/sheet/size.tsx +75 -0
- package/templates/next/src/components/examples/skeleton/demo.tsx +13 -0
- package/templates/next/src/components/examples/slider/demo.tsx +16 -0
- package/templates/next/src/components/examples/switch/demo.tsx +11 -0
- package/templates/next/src/components/examples/switch/react-hook-form.tsx +101 -0
- package/templates/next/src/components/examples/table/demo.tsx +80 -0
- package/templates/next/src/components/examples/tabs/demo.tsx +69 -0
- package/templates/next/src/components/examples/textarea/demo.tsx +5 -0
- package/templates/next/src/components/examples/textarea/disabled.tsx +5 -0
- package/templates/next/src/components/examples/textarea/react-hook-form.tsx +77 -0
- package/templates/next/src/components/examples/textarea/with-button.tsx +11 -0
- package/templates/next/src/components/examples/textarea/with-label.tsx +11 -0
- package/templates/next/src/components/examples/textarea/with-text.tsx +14 -0
- package/templates/next/src/components/examples/toast/demo.tsx +26 -0
- package/templates/next/src/components/examples/toast/destructive.tsx +25 -0
- package/templates/next/src/components/examples/toast/simple.tsx +21 -0
- package/templates/next/src/components/examples/toast/with-action.tsx +24 -0
- package/templates/next/src/components/examples/toast/with-title.tsx +22 -0
- package/templates/next/src/components/examples/toggle/demo.tsx +11 -0
- package/templates/next/src/components/examples/toggle/disabled.tsx +11 -0
- package/templates/next/src/components/examples/toggle/lg.tsx +11 -0
- package/templates/next/src/components/examples/toggle/outline.tsx +11 -0
- package/templates/next/src/components/examples/toggle/sm.tsx +11 -0
- package/templates/next/src/components/examples/toggle/with-text.tsx +12 -0
- package/templates/next/src/components/examples/tooltip/demo.tsx +27 -0
- package/templates/next/src/components/examples/typography/blockquote.tsx +8 -0
- package/templates/next/src/components/examples/typography/demo.tsx +119 -0
- package/templates/next/src/components/examples/typography/h1.tsx +7 -0
- package/templates/next/src/components/examples/typography/h2.tsx +7 -0
- package/templates/next/src/components/examples/typography/h3.tsx +7 -0
- package/templates/next/src/components/examples/typography/h4.tsx +7 -0
- package/templates/next/src/components/examples/typography/inline-code.tsx +7 -0
- package/templates/next/src/components/examples/typography/large.tsx +5 -0
- package/templates/next/src/components/examples/typography/lead.tsx +8 -0
- package/templates/next/src/components/examples/typography/list.tsx +9 -0
- package/templates/next/src/components/examples/typography/muted.tsx +5 -0
- package/templates/next/src/components/examples/typography/p.tsx +8 -0
- package/templates/next/src/components/examples/typography/small.tsx +5 -0
- package/templates/next/src/components/examples/typography/table.tsx +44 -0
- package/templates/next/src/components/examples-nav.tsx +70 -0
- package/templates/next/src/components/greeting.tsx +21 -0
- package/templates/next/src/components/icons.tsx +154 -0
- package/templates/next/src/components/menu-mode-toggle.tsx +46 -0
- package/templates/next/src/components/menu.tsx +268 -0
- package/templates/next/src/components/mode-toggle.tsx +43 -0
- package/templates/next/src/components/page-header.tsx +50 -0
- package/templates/next/src/components/react-hook-form/form.tsx +176 -0
- package/templates/next/src/components/style-switcher.tsx +19 -0
- package/templates/next/src/components/tailwind-indicator.tsx +18 -0
- package/templates/next/src/components/theme-provider.tsx +9 -0
- package/templates/next/src/components/ui/accordion.tsx +60 -0
- package/templates/next/src/components/ui/alert-dialog.tsx +150 -0
- package/templates/next/src/components/ui/alert.tsx +61 -0
- package/templates/next/src/components/ui/aspect-ratio.tsx +7 -0
- package/templates/next/src/components/ui/avatar.tsx +50 -0
- package/templates/next/src/components/ui/badge.tsx +36 -0
- package/templates/next/src/components/ui/button.tsx +51 -0
- package/templates/next/src/components/ui/calendar.tsx +64 -0
- package/templates/next/src/components/ui/card.tsx +81 -0
- package/templates/next/src/components/ui/checkbox.tsx +30 -0
- package/templates/next/src/components/ui/collapsible.tsx +11 -0
- package/templates/next/src/components/ui/command.tsx +155 -0
- package/templates/next/src/components/ui/context-menu.tsx +200 -0
- package/templates/next/src/components/ui/dialog.tsx +128 -0
- package/templates/next/src/components/ui/dropdown-menu.tsx +200 -0
- package/templates/next/src/components/ui/hover-card.tsx +29 -0
- package/templates/next/src/components/ui/input.tsx +27 -0
- package/templates/next/src/components/ui/label.tsx +26 -0
- package/templates/next/src/components/ui/menubar.tsx +236 -0
- package/templates/next/src/components/ui/navigation-menu.tsx +130 -0
- package/templates/next/src/components/ui/popover.tsx +31 -0
- package/templates/next/src/components/ui/progress.tsx +28 -0
- package/templates/next/src/components/ui/radio-group.tsx +44 -0
- package/templates/next/src/components/ui/scroll-area.tsx +48 -0
- package/templates/next/src/components/ui/select.tsx +120 -0
- package/templates/next/src/components/ui/separator.tsx +31 -0
- package/templates/next/src/components/ui/sheet.tsx +230 -0
- package/templates/next/src/components/ui/skeleton.tsx +17 -0
- package/templates/next/src/components/ui/slider.tsx +28 -0
- package/templates/next/src/components/ui/switch.tsx +29 -0
- package/templates/next/src/components/ui/table.tsx +114 -0
- package/templates/next/src/components/ui/tabs.tsx +55 -0
- package/templates/next/src/components/ui/textarea.tsx +26 -0
- package/templates/next/src/components/ui/toast.tsx +129 -0
- package/templates/next/src/components/ui/toaster.tsx +35 -0
- package/templates/next/src/components/ui/toggle.tsx +45 -0
- package/templates/next/src/components/ui/tooltip.tsx +30 -0
- package/templates/next/src/components/ui/use-toast.ts +191 -0
- package/templates/next/src/data/albums.ts +71 -0
- package/templates/next/src/data/playlists.ts +16 -0
- package/templates/next/src/hooks/use-lock-body.ts +12 -0
- package/templates/next/src/hooks/use-mounted.ts +11 -0
- package/templates/next/src/hooks/use-mutation-observer.ts +20 -0
- package/templates/next/src/lib/fonts.ts +11 -0
- package/templates/next/src/lib/utils.ts +19 -0
- package/templates/next/src/styles/globals.css +124 -0
- package/templates/next/src-tauri/Cargo.lock +3636 -0
- package/templates/next/src-tauri/Cargo.toml +36 -0
- package/templates/next/src-tauri/build.rs +3 -0
- package/templates/next/src-tauri/icons/128x128.png +0 -0
- package/templates/next/src-tauri/icons/128x128@2x.png +0 -0
- package/templates/next/src-tauri/icons/32x32.png +0 -0
- package/templates/next/src-tauri/icons/Square107x107Logo.png +0 -0
- package/templates/next/src-tauri/icons/Square142x142Logo.png +0 -0
- package/templates/next/src-tauri/icons/Square150x150Logo.png +0 -0
- package/templates/next/src-tauri/icons/Square284x284Logo.png +0 -0
- package/templates/next/src-tauri/icons/Square30x30Logo.png +0 -0
- package/templates/next/src-tauri/icons/Square310x310Logo.png +0 -0
- package/templates/next/src-tauri/icons/Square44x44Logo.png +0 -0
- package/templates/next/src-tauri/icons/Square71x71Logo.png +0 -0
- package/templates/next/src-tauri/icons/Square89x89Logo.png +0 -0
- package/templates/next/src-tauri/icons/StoreLogo.png +0 -0
- package/templates/next/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png +0 -0
- package/templates/next/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png +0 -0
- package/templates/next/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/templates/next/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png +0 -0
- package/templates/next/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png +0 -0
- package/templates/next/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/templates/next/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png +0 -0
- package/templates/next/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
- package/templates/next/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/templates/next/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/templates/next/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
- package/templates/next/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/templates/next/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/templates/next/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
- package/templates/next/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/templates/next/src-tauri/icons/icon.icns +0 -0
- package/templates/next/src-tauri/icons/icon.ico +0 -0
- package/templates/next/src-tauri/icons/icon.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-20x20@1x.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-20x20@2x-1.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-20x20@2x.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-20x20@3x.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-29x29@1x.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-29x29@2x-1.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-29x29@2x.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-29x29@3x.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-40x40@1x.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-40x40@2x-1.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-40x40@2x.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-40x40@3x.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-512@2x.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-60x60@2x.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-60x60@3x.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-76x76@1x.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-76x76@2x.png +0 -0
- package/templates/next/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png +0 -0
- package/templates/next/src-tauri/src/main.rs +19 -0
- package/templates/next/src-tauri/tauri.conf.json +63 -0
- package/templates/next/tailwind.config.js +80 -0
- package/templates/next/tsconfig.json +35 -0
- package/templates/vite/.github/workflows/release.yml +108 -0
- package/templates/vite/.vscode/extensions.json +3 -0
- package/templates/vite/README.md +7 -0
- package/templates/vite/app-icon.png +0 -0
- package/templates/vite/index.html +16 -0
- package/templates/vite/package.json +75 -0
- package/templates/vite/pnpm-lock.yaml +4569 -0
- package/templates/vite/postcss.config.js +6 -0
- package/templates/vite/prettier.config.cjs +35 -0
- package/templates/vite/src/App.tsx +39 -0
- package/templates/vite/src/aa +34 -0
- package/templates/vite/src/assets/Inter.var.woff2 +0 -0
- package/templates/vite/src/components/icons.tsx +154 -0
- package/templates/vite/src/components/menu-mode-toggle.tsx +46 -0
- package/templates/vite/src/components/menu.tsx +232 -0
- package/templates/vite/src/components/tailwind-indicator.tsx +18 -0
- package/templates/vite/src/components/theme-provider.tsx +9 -0
- package/templates/vite/src/components/ui/accordion.tsx +60 -0
- package/templates/vite/src/components/ui/alert-dialog.tsx +150 -0
- package/templates/vite/src/components/ui/alert.tsx +61 -0
- package/templates/vite/src/components/ui/aspect-ratio.tsx +7 -0
- package/templates/vite/src/components/ui/avatar.tsx +50 -0
- package/templates/vite/src/components/ui/badge.tsx +36 -0
- package/templates/vite/src/components/ui/button.tsx +51 -0
- package/templates/vite/src/components/ui/calendar.tsx +64 -0
- package/templates/vite/src/components/ui/card.tsx +81 -0
- package/templates/vite/src/components/ui/checkbox.tsx +30 -0
- package/templates/vite/src/components/ui/collapsible.tsx +11 -0
- package/templates/vite/src/components/ui/command.tsx +155 -0
- package/templates/vite/src/components/ui/context-menu.tsx +200 -0
- package/templates/vite/src/components/ui/dialog.tsx +128 -0
- package/templates/vite/src/components/ui/dropdown-menu.tsx +200 -0
- package/templates/vite/src/components/ui/hover-card.tsx +29 -0
- package/templates/vite/src/components/ui/input.tsx +27 -0
- package/templates/vite/src/components/ui/label.tsx +26 -0
- package/templates/vite/src/components/ui/menubar.tsx +236 -0
- package/templates/vite/src/components/ui/navigation-menu.tsx +130 -0
- package/templates/vite/src/components/ui/popover.tsx +31 -0
- package/templates/vite/src/components/ui/progress.tsx +28 -0
- package/templates/vite/src/components/ui/radio-group.tsx +44 -0
- package/templates/vite/src/components/ui/scroll-area.tsx +48 -0
- package/templates/vite/src/components/ui/select.tsx +120 -0
- package/templates/vite/src/components/ui/separator.tsx +31 -0
- package/templates/vite/src/components/ui/sheet.tsx +230 -0
- package/templates/vite/src/components/ui/skeleton.tsx +17 -0
- package/templates/vite/src/components/ui/slider.tsx +28 -0
- package/templates/vite/src/components/ui/switch.tsx +29 -0
- package/templates/vite/src/components/ui/table.tsx +114 -0
- package/templates/vite/src/components/ui/tabs.tsx +55 -0
- package/templates/vite/src/components/ui/textarea.tsx +26 -0
- package/templates/vite/src/components/ui/toast.tsx +129 -0
- package/templates/vite/src/components/ui/toaster.tsx +35 -0
- package/templates/vite/src/components/ui/toggle.tsx +45 -0
- package/templates/vite/src/components/ui/tooltip.tsx +30 -0
- package/templates/vite/src/components/ui/use-toast.ts +191 -0
- package/templates/vite/src/dashboard/components/date-range-picker.tsx +66 -0
- package/templates/vite/src/dashboard/components/main-nav.tsx +38 -0
- package/templates/vite/src/dashboard/components/overview.tsx +78 -0
- package/templates/vite/src/dashboard/components/recent-sales.tsx +67 -0
- package/templates/vite/src/dashboard/components/search.tsx +13 -0
- package/templates/vite/src/dashboard/components/team-switcher.tsx +205 -0
- package/templates/vite/src/dashboard/components/user-nav.tsx +67 -0
- package/templates/vite/src/dashboard/page.tsx +140 -0
- package/templates/vite/src/lib/utils.ts +19 -0
- package/templates/vite/src/main.tsx +10 -0
- package/templates/vite/src/styles/globals.css +124 -0
- package/templates/vite/src/vite-env.d.ts +1 -0
- package/templates/vite/src-tauri/Cargo.lock +3636 -0
- package/templates/vite/src-tauri/Cargo.toml +33 -0
- package/templates/vite/src-tauri/build.rs +3 -0
- package/templates/vite/src-tauri/icons/128x128.png +0 -0
- package/templates/vite/src-tauri/icons/128x128@2x.png +0 -0
- package/templates/vite/src-tauri/icons/32x32.png +0 -0
- package/templates/vite/src-tauri/icons/Square107x107Logo.png +0 -0
- package/templates/vite/src-tauri/icons/Square142x142Logo.png +0 -0
- package/templates/vite/src-tauri/icons/Square150x150Logo.png +0 -0
- package/templates/vite/src-tauri/icons/Square284x284Logo.png +0 -0
- package/templates/vite/src-tauri/icons/Square30x30Logo.png +0 -0
- package/templates/vite/src-tauri/icons/Square310x310Logo.png +0 -0
- package/templates/vite/src-tauri/icons/Square44x44Logo.png +0 -0
- package/templates/vite/src-tauri/icons/Square71x71Logo.png +0 -0
- package/templates/vite/src-tauri/icons/Square89x89Logo.png +0 -0
- package/templates/vite/src-tauri/icons/StoreLogo.png +0 -0
- package/templates/vite/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png +0 -0
- package/templates/vite/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png +0 -0
- package/templates/vite/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/templates/vite/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png +0 -0
- package/templates/vite/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png +0 -0
- package/templates/vite/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/templates/vite/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png +0 -0
- package/templates/vite/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
- package/templates/vite/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/templates/vite/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/templates/vite/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
- package/templates/vite/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/templates/vite/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/templates/vite/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
- package/templates/vite/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/templates/vite/src-tauri/icons/icon.icns +0 -0
- package/templates/vite/src-tauri/icons/icon.ico +0 -0
- package/templates/vite/src-tauri/icons/icon.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-20x20@1x.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-20x20@2x-1.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-20x20@2x.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-20x20@3x.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-29x29@1x.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-29x29@2x-1.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-29x29@2x.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-29x29@3x.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-40x40@1x.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-40x40@2x-1.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-40x40@2x.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-40x40@3x.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-512@2x.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-60x60@2x.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-60x60@3x.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-76x76@1x.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-76x76@2x.png +0 -0
- package/templates/vite/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png +0 -0
- package/templates/vite/src-tauri/src/main.rs +16 -0
- package/templates/vite/src-tauri/tauri.conf.json +63 -0
- package/templates/vite/tailwind.config.js +78 -0
- package/templates/vite/tsconfig.json +26 -0
- package/templates/vite/tsconfig.node.json +9 -0
- package/templates/vite/vite.config.ts +33 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/** @type {import('prettier').Config} */
|
|
2
|
+
module.exports = {
|
|
3
|
+
endOfLine: "lf",
|
|
4
|
+
semi: false,
|
|
5
|
+
singleQuote: false,
|
|
6
|
+
tabWidth: 2,
|
|
7
|
+
trailingComma: "es5",
|
|
8
|
+
importOrder: [
|
|
9
|
+
"^(react/(.*)$)|^(react$)",
|
|
10
|
+
"^(next/(.*)$)|^(next$)",
|
|
11
|
+
"<THIRD_PARTY_MODULES>",
|
|
12
|
+
"",
|
|
13
|
+
"^types$",
|
|
14
|
+
"^@/types/(.*)$",
|
|
15
|
+
"^@/config/(.*)$",
|
|
16
|
+
"^@/lib/(.*)$",
|
|
17
|
+
"^@/hooks/(.*)$",
|
|
18
|
+
"^@/components/ui/(.*)$",
|
|
19
|
+
"^@/components/(.*)$",
|
|
20
|
+
"^@/styles/(.*)$",
|
|
21
|
+
"^@/app/(.*)$",
|
|
22
|
+
"",
|
|
23
|
+
"^[./]",
|
|
24
|
+
],
|
|
25
|
+
importOrderSeparation: false,
|
|
26
|
+
importOrderSortSpecifiers: true,
|
|
27
|
+
importOrderBuiltinModulesToTop: true,
|
|
28
|
+
importOrderParserPlugins: ["typescript", "jsx", "decorators-legacy"],
|
|
29
|
+
importOrderMergeDuplicateImports: true,
|
|
30
|
+
importOrderCombineTypeAndValueImports: true,
|
|
31
|
+
plugins: [
|
|
32
|
+
"@ianvs/prettier-plugin-sort-imports",
|
|
33
|
+
"prettier-plugin-tailwindcss",
|
|
34
|
+
],
|
|
35
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import * as React from "react"
|
|
4
|
+
|
|
5
|
+
import { cn } from "@/lib/utils"
|
|
6
|
+
import { Button } from "@/components/ui/button"
|
|
7
|
+
import { Input } from "@/components/ui/input"
|
|
8
|
+
import { Label } from "@/components/ui/label"
|
|
9
|
+
import { Icons } from "@/components/icons"
|
|
10
|
+
|
|
11
|
+
interface UserAuthFormProps extends React.HTMLAttributes<HTMLDivElement> {}
|
|
12
|
+
|
|
13
|
+
export function UserAuthForm({ className, ...props }: UserAuthFormProps) {
|
|
14
|
+
const [isLoading, setIsLoading] = React.useState<boolean>(false)
|
|
15
|
+
|
|
16
|
+
async function onSubmit(event: React.SyntheticEvent) {
|
|
17
|
+
event.preventDefault()
|
|
18
|
+
setIsLoading(true)
|
|
19
|
+
|
|
20
|
+
setTimeout(() => {
|
|
21
|
+
setIsLoading(false)
|
|
22
|
+
}, 3000)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<div className={cn("grid gap-6", className)} {...props}>
|
|
27
|
+
<form onSubmit={onSubmit}>
|
|
28
|
+
<div className="grid gap-2">
|
|
29
|
+
<div className="grid gap-1">
|
|
30
|
+
<Label className="sr-only" htmlFor="email">
|
|
31
|
+
Email
|
|
32
|
+
</Label>
|
|
33
|
+
<Input
|
|
34
|
+
id="email"
|
|
35
|
+
placeholder="name@example.com"
|
|
36
|
+
type="email"
|
|
37
|
+
autoCapitalize="none"
|
|
38
|
+
autoComplete="email"
|
|
39
|
+
autoCorrect="off"
|
|
40
|
+
disabled={isLoading}
|
|
41
|
+
/>
|
|
42
|
+
</div>
|
|
43
|
+
<Button disabled={isLoading}>
|
|
44
|
+
{isLoading && (
|
|
45
|
+
<Icons.spinner className="mr-2 h-4 w-4 animate-spin" />
|
|
46
|
+
)}
|
|
47
|
+
Sign In with Email
|
|
48
|
+
</Button>
|
|
49
|
+
</div>
|
|
50
|
+
</form>
|
|
51
|
+
<div className="relative">
|
|
52
|
+
<div className="absolute inset-0 flex items-center">
|
|
53
|
+
<span className="w-full border-t" />
|
|
54
|
+
</div>
|
|
55
|
+
<div className="relative flex justify-center text-xs uppercase">
|
|
56
|
+
<span className="bg-background px-2 text-muted-foreground">
|
|
57
|
+
Or continue with
|
|
58
|
+
</span>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
<Button variant="outline" type="button" disabled={isLoading}>
|
|
62
|
+
{isLoading ? (
|
|
63
|
+
<Icons.spinner className="mr-2 h-4 w-4 animate-spin" />
|
|
64
|
+
) : (
|
|
65
|
+
<Icons.gitHub className="mr-2 h-4 w-4" />
|
|
66
|
+
)}{" "}
|
|
67
|
+
Github
|
|
68
|
+
</Button>
|
|
69
|
+
</div>
|
|
70
|
+
)
|
|
71
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Metadata } from "next"
|
|
2
|
+
import Image from "next/image"
|
|
3
|
+
import { Command } from "lucide-react"
|
|
4
|
+
|
|
5
|
+
import { cn } from "@/lib/utils"
|
|
6
|
+
import { buttonVariants } from "@/components/ui/button"
|
|
7
|
+
import { UserAuthForm } from "@/app/examples/authentication/components/user-auth-form"
|
|
8
|
+
|
|
9
|
+
export const metadata: Metadata = {
|
|
10
|
+
title: "Authentication",
|
|
11
|
+
description: "Authentication forms built using the components.",
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export default function AuthenticationPage() {
|
|
15
|
+
return (
|
|
16
|
+
<div className="container relative h-[800px] flex-col items-center justify-center md:grid lg:max-w-none lg:grid-cols-2 lg:px-0">
|
|
17
|
+
<a
|
|
18
|
+
href="/examples/authentication"
|
|
19
|
+
className={cn(
|
|
20
|
+
buttonVariants({ variant: "ghost", size: "sm" }),
|
|
21
|
+
"absolute right-4 top-4 md:right-8 md:top-8"
|
|
22
|
+
)}
|
|
23
|
+
>
|
|
24
|
+
Login
|
|
25
|
+
</a>
|
|
26
|
+
<div className="relative hidden h-full flex-col bg-muted p-10 text-white dark:border-r lg:flex">
|
|
27
|
+
<div
|
|
28
|
+
className="absolute inset-0 bg-cover"
|
|
29
|
+
style={{
|
|
30
|
+
backgroundImage:
|
|
31
|
+
"url(https://images.unsplash.com/photo-1590069261209-f8e9b8642343?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1376&q=80)",
|
|
32
|
+
}}
|
|
33
|
+
/>
|
|
34
|
+
<div className="relative z-20 flex items-center text-lg font-medium">
|
|
35
|
+
<Command className="mr-2 h-6 w-6" /> Acme Inc
|
|
36
|
+
</div>
|
|
37
|
+
<div className="relative z-20 mt-auto">
|
|
38
|
+
<blockquote className="space-y-2">
|
|
39
|
+
<p className="text-lg">
|
|
40
|
+
“This library has saved me countless hours of work and
|
|
41
|
+
helped me deliver stunning designs to my clients faster than ever
|
|
42
|
+
before. Highly recommended!”
|
|
43
|
+
</p>
|
|
44
|
+
<footer className="text-sm">Sofia Davis</footer>
|
|
45
|
+
</blockquote>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
<div className="lg:p-8">
|
|
49
|
+
<div className="mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]">
|
|
50
|
+
<div className="flex flex-col space-y-2 text-center">
|
|
51
|
+
<h1 className="text-2xl font-semibold tracking-tight">
|
|
52
|
+
Create an account
|
|
53
|
+
</h1>
|
|
54
|
+
<p className="text-sm text-muted-foreground">
|
|
55
|
+
Enter your email below to create your account
|
|
56
|
+
</p>
|
|
57
|
+
</div>
|
|
58
|
+
<UserAuthForm />
|
|
59
|
+
<p className="px-8 text-center text-sm text-muted-foreground">
|
|
60
|
+
By clicking continue, you agree to our{" "}
|
|
61
|
+
<a
|
|
62
|
+
href="/terms"
|
|
63
|
+
className="underline underline-offset-4 hover:text-primary"
|
|
64
|
+
>
|
|
65
|
+
Terms of Service
|
|
66
|
+
</a>{" "}
|
|
67
|
+
and{" "}
|
|
68
|
+
<a
|
|
69
|
+
href="/privacy"
|
|
70
|
+
className="underline underline-offset-4 hover:text-primary"
|
|
71
|
+
>
|
|
72
|
+
Privacy Policy
|
|
73
|
+
</a>
|
|
74
|
+
.
|
|
75
|
+
</p>
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
)
|
|
80
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import { Button } from "@/components/ui/button"
|
|
4
|
+
import {
|
|
5
|
+
Card,
|
|
6
|
+
CardContent,
|
|
7
|
+
CardDescription,
|
|
8
|
+
CardFooter,
|
|
9
|
+
CardHeader,
|
|
10
|
+
CardTitle,
|
|
11
|
+
} from "@/components/ui/card"
|
|
12
|
+
import { Label } from "@/components/ui/label"
|
|
13
|
+
import { Switch } from "@/components/ui/switch"
|
|
14
|
+
|
|
15
|
+
export function DemoCookieSettings() {
|
|
16
|
+
return (
|
|
17
|
+
<Card>
|
|
18
|
+
<CardHeader>
|
|
19
|
+
<CardTitle>Cookie Settings</CardTitle>
|
|
20
|
+
<CardDescription>Manage your cookie settings here.</CardDescription>
|
|
21
|
+
</CardHeader>
|
|
22
|
+
<CardContent className="grid gap-6">
|
|
23
|
+
<div className="flex items-center justify-between space-x-2">
|
|
24
|
+
<Label htmlFor="necessary" className="flex flex-col space-y-1">
|
|
25
|
+
<span>Strictly Necessary</span>
|
|
26
|
+
<span className="font-normal leading-snug text-muted-foreground">
|
|
27
|
+
These cookies are essential in order to use the website and use
|
|
28
|
+
its features.
|
|
29
|
+
</span>
|
|
30
|
+
</Label>
|
|
31
|
+
<Switch id="necessary" defaultChecked />
|
|
32
|
+
</div>
|
|
33
|
+
<div className="flex items-center justify-between space-x-2">
|
|
34
|
+
<Label htmlFor="functional" className="flex flex-col space-y-1">
|
|
35
|
+
<span>Functional Cookies</span>
|
|
36
|
+
<span className="font-normal leading-snug text-muted-foreground">
|
|
37
|
+
These cookies allow the website to provide personalized
|
|
38
|
+
functionality.
|
|
39
|
+
</span>
|
|
40
|
+
</Label>
|
|
41
|
+
<Switch id="functional" />
|
|
42
|
+
</div>
|
|
43
|
+
<div className="flex items-center justify-between space-x-2">
|
|
44
|
+
<Label htmlFor="performance" className="flex flex-col space-y-1">
|
|
45
|
+
<span>Performance Cookies</span>
|
|
46
|
+
<span className="font-normal leading-snug text-muted-foreground">
|
|
47
|
+
These cookies help to improve the performance of the website.
|
|
48
|
+
</span>
|
|
49
|
+
</Label>
|
|
50
|
+
<Switch id="performance" />
|
|
51
|
+
</div>
|
|
52
|
+
</CardContent>
|
|
53
|
+
<CardFooter>
|
|
54
|
+
<Button variant="outline" className="w-full">
|
|
55
|
+
Save preferences
|
|
56
|
+
</Button>
|
|
57
|
+
</CardFooter>
|
|
58
|
+
</Card>
|
|
59
|
+
)
|
|
60
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use client"
|
|
2
|
+
|
|
3
|
+
import { Button } from "@/components/ui/button"
|
|
4
|
+
import {
|
|
5
|
+
Card,
|
|
6
|
+
CardContent,
|
|
7
|
+
CardDescription,
|
|
8
|
+
CardFooter,
|
|
9
|
+
CardHeader,
|
|
10
|
+
CardTitle,
|
|
11
|
+
} from "@/components/ui/card"
|
|
12
|
+
import { Input } from "@/components/ui/input"
|
|
13
|
+
import { Label } from "@/components/ui/label"
|
|
14
|
+
import { Icons } from "@/components/icons"
|
|
15
|
+
|
|
16
|
+
export function DemoCreateAccount() {
|
|
17
|
+
return (
|
|
18
|
+
<Card>
|
|
19
|
+
<CardHeader className="space-y-1">
|
|
20
|
+
<CardTitle className="text-2xl">Create an account</CardTitle>
|
|
21
|
+
<CardDescription>
|
|
22
|
+
Enter your email below to create your account
|
|
23
|
+
</CardDescription>
|
|
24
|
+
</CardHeader>
|
|
25
|
+
<CardContent className="grid gap-4">
|
|
26
|
+
<div className="grid grid-cols-2 gap-6">
|
|
27
|
+
<Button variant="outline">
|
|
28
|
+
<Icons.gitHub className="mr-2 h-4 w-4" />
|
|
29
|
+
Github
|
|
30
|
+
</Button>
|
|
31
|
+
<Button variant="outline">
|
|
32
|
+
<Icons.google className="mr-2 h-4 w-4" />
|
|
33
|
+
Google
|
|
34
|
+
</Button>
|
|
35
|
+
</div>
|
|
36
|
+
<div className="relative">
|
|
37
|
+
<div className="absolute inset-0 flex items-center">
|
|
38
|
+
<span className="w-full border-t" />
|
|
39
|
+
</div>
|
|
40
|
+
<div className="relative flex justify-center text-xs uppercase">
|
|
41
|
+
<span className="bg-background px-2 text-muted-foreground">
|
|
42
|
+
Or continue with
|
|
43
|
+
</span>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
<div className="grid gap-2">
|
|
47
|
+
<Label htmlFor="email">Email</Label>
|
|
48
|
+
<Input id="email" type="email" placeholder="m@example.com" />
|
|
49
|
+
</div>
|
|
50
|
+
<div className="grid gap-2">
|
|
51
|
+
<Label htmlFor="password">Password</Label>
|
|
52
|
+
<Input id="password" type="password" />
|
|
53
|
+
</div>
|
|
54
|
+
</CardContent>
|
|
55
|
+
<CardFooter>
|
|
56
|
+
<Button className="w-full">Create account</Button>
|
|
57
|
+
</CardFooter>
|
|
58
|
+
</Card>
|
|
59
|
+
)
|
|
60
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Card, CardContent } from "@/components/ui/card"
|
|
2
|
+
import { Label } from "@/components/ui/label"
|
|
3
|
+
import { CalendarDateRangePicker } from "@/components/examples/calendar/date-range-picker"
|
|
4
|
+
|
|
5
|
+
export function DemoDatePicker() {
|
|
6
|
+
return (
|
|
7
|
+
<Card>
|
|
8
|
+
<CardContent className="pt-6">
|
|
9
|
+
<div className="space-y-2">
|
|
10
|
+
<Label htmlFor="date" className="shrink-0">
|
|
11
|
+
Pick a date
|
|
12
|
+
</Label>
|
|
13
|
+
<CalendarDateRangePicker className="[&>button]:w-[260px]" />
|
|
14
|
+
</div>
|
|
15
|
+
</CardContent>
|
|
16
|
+
</Card>
|
|
17
|
+
)
|
|
18
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { ChevronDown, Circle, Plus, Star } from "lucide-react"
|
|
2
|
+
|
|
3
|
+
import { Button } from "@/components/ui/button"
|
|
4
|
+
import {
|
|
5
|
+
Card,
|
|
6
|
+
CardContent,
|
|
7
|
+
CardDescription,
|
|
8
|
+
CardHeader,
|
|
9
|
+
CardTitle,
|
|
10
|
+
} from "@/components/ui/card"
|
|
11
|
+
import {
|
|
12
|
+
DropdownMenu,
|
|
13
|
+
DropdownMenuCheckboxItem,
|
|
14
|
+
DropdownMenuContent,
|
|
15
|
+
DropdownMenuItem,
|
|
16
|
+
DropdownMenuLabel,
|
|
17
|
+
DropdownMenuSeparator,
|
|
18
|
+
DropdownMenuTrigger,
|
|
19
|
+
} from "@/components/ui/dropdown-menu"
|
|
20
|
+
import { Separator } from "@/components/ui/separator"
|
|
21
|
+
|
|
22
|
+
export function DemoGithub() {
|
|
23
|
+
return (
|
|
24
|
+
<Card>
|
|
25
|
+
<CardHeader className="grid grid-cols-[1fr_110px] items-start gap-4 space-y-0">
|
|
26
|
+
<div className="space-y-1">
|
|
27
|
+
<CardTitle>shadcn/ui</CardTitle>
|
|
28
|
+
<CardDescription>
|
|
29
|
+
Beautifully designed components built with Radix UI and Tailwind
|
|
30
|
+
CSS.
|
|
31
|
+
</CardDescription>
|
|
32
|
+
</div>
|
|
33
|
+
<div className="flex items-center space-x-1 rounded-md bg-secondary text-secondary-foreground">
|
|
34
|
+
<Button variant="secondary" className="px-3">
|
|
35
|
+
<Star className="mr-2 h-4 w-4" />
|
|
36
|
+
Star
|
|
37
|
+
</Button>
|
|
38
|
+
<Separator orientation="vertical" className="h-[20px]" />
|
|
39
|
+
<DropdownMenu>
|
|
40
|
+
<DropdownMenuTrigger asChild>
|
|
41
|
+
<Button variant="secondary" className="px-2">
|
|
42
|
+
<ChevronDown className="h-4 w-4 text-secondary-foreground" />
|
|
43
|
+
</Button>
|
|
44
|
+
</DropdownMenuTrigger>
|
|
45
|
+
<DropdownMenuContent
|
|
46
|
+
align="end"
|
|
47
|
+
alignOffset={-5}
|
|
48
|
+
className="w-[200px]"
|
|
49
|
+
forceMount
|
|
50
|
+
>
|
|
51
|
+
<DropdownMenuLabel>Suggested Lists</DropdownMenuLabel>
|
|
52
|
+
<DropdownMenuSeparator />
|
|
53
|
+
<DropdownMenuCheckboxItem checked>
|
|
54
|
+
Future Ideas
|
|
55
|
+
</DropdownMenuCheckboxItem>
|
|
56
|
+
<DropdownMenuCheckboxItem>My Stack</DropdownMenuCheckboxItem>
|
|
57
|
+
<DropdownMenuCheckboxItem>Inspiration</DropdownMenuCheckboxItem>
|
|
58
|
+
<DropdownMenuSeparator />
|
|
59
|
+
<DropdownMenuItem>
|
|
60
|
+
<Plus className="mr-2 h-4 w-4" /> Create List
|
|
61
|
+
</DropdownMenuItem>
|
|
62
|
+
</DropdownMenuContent>
|
|
63
|
+
</DropdownMenu>
|
|
64
|
+
</div>
|
|
65
|
+
</CardHeader>
|
|
66
|
+
<CardContent>
|
|
67
|
+
<div className="flex space-x-4 text-sm text-muted-foreground">
|
|
68
|
+
<div className="flex items-center">
|
|
69
|
+
<Circle className="mr-1 h-3 w-3 fill-sky-400 text-sky-400" />
|
|
70
|
+
TypeScipt
|
|
71
|
+
</div>
|
|
72
|
+
<div className="flex items-center">
|
|
73
|
+
<Star className="mr-1 h-3 w-3" />
|
|
74
|
+
10k
|
|
75
|
+
</div>
|
|
76
|
+
<div>Updated April 2023</div>
|
|
77
|
+
</div>
|
|
78
|
+
</CardContent>
|
|
79
|
+
</Card>
|
|
80
|
+
)
|
|
81
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { AtSign, Bell, BellOff } from "lucide-react"
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
Card,
|
|
5
|
+
CardContent,
|
|
6
|
+
CardDescription,
|
|
7
|
+
CardHeader,
|
|
8
|
+
CardTitle,
|
|
9
|
+
} from "@/components/ui/card"
|
|
10
|
+
|
|
11
|
+
export function DemoNotifications() {
|
|
12
|
+
return (
|
|
13
|
+
<Card>
|
|
14
|
+
<CardHeader>
|
|
15
|
+
<CardTitle>Notifications</CardTitle>
|
|
16
|
+
<CardDescription>
|
|
17
|
+
Choose what you want to be notified about.
|
|
18
|
+
</CardDescription>
|
|
19
|
+
</CardHeader>
|
|
20
|
+
<CardContent className="grid gap-1 p-1.5">
|
|
21
|
+
<div className="flex items-center space-x-4 rounded-md p-2 hover:bg-accent hover:text-accent-foreground">
|
|
22
|
+
<Bell className="h-5 w-5" />
|
|
23
|
+
<div className="space-y-1">
|
|
24
|
+
<p className="text-sm font-medium leading-none">Everything</p>
|
|
25
|
+
<p className="text-sm text-muted-foreground">
|
|
26
|
+
Email digest, mentions & all activity.
|
|
27
|
+
</p>
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
<div className="flex items-center space-x-4 rounded-md bg-accent p-2 text-accent-foreground">
|
|
31
|
+
<AtSign className="h-5 w-5" />
|
|
32
|
+
<div className="space-y-1">
|
|
33
|
+
<p className="text-sm font-medium leading-none">Available</p>
|
|
34
|
+
<p className="text-sm text-muted-foreground">
|
|
35
|
+
Only mentions and comments.
|
|
36
|
+
</p>
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
<div className="flex items-center space-x-4 rounded-md p-2 hover:bg-accent hover:text-accent-foreground">
|
|
40
|
+
<BellOff className="h-5 w-5" />
|
|
41
|
+
<div className="space-y-1">
|
|
42
|
+
<p className="text-sm font-medium leading-none">Ignoring</p>
|
|
43
|
+
<p className="text-sm text-muted-foreground">
|
|
44
|
+
Turn off all notifications.
|
|
45
|
+
</p>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
</CardContent>
|
|
49
|
+
</Card>
|
|
50
|
+
)
|
|
51
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { CreditCard } from "lucide-react"
|
|
2
|
+
|
|
3
|
+
import { Button } from "@/components/ui/button"
|
|
4
|
+
import {
|
|
5
|
+
Card,
|
|
6
|
+
CardContent,
|
|
7
|
+
CardDescription,
|
|
8
|
+
CardFooter,
|
|
9
|
+
CardHeader,
|
|
10
|
+
CardTitle,
|
|
11
|
+
} from "@/components/ui/card"
|
|
12
|
+
import { Input } from "@/components/ui/input"
|
|
13
|
+
import { Label } from "@/components/ui/label"
|
|
14
|
+
import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group"
|
|
15
|
+
import {
|
|
16
|
+
Select,
|
|
17
|
+
SelectContent,
|
|
18
|
+
SelectItem,
|
|
19
|
+
SelectTrigger,
|
|
20
|
+
SelectValue,
|
|
21
|
+
} from "@/components/ui/select"
|
|
22
|
+
import { Icons } from "@/components/icons"
|
|
23
|
+
|
|
24
|
+
export function DemoPaymentMethod() {
|
|
25
|
+
return (
|
|
26
|
+
<Card>
|
|
27
|
+
<CardHeader>
|
|
28
|
+
<CardTitle>Payment Method</CardTitle>
|
|
29
|
+
<CardDescription>
|
|
30
|
+
Add a new payment method to your account.
|
|
31
|
+
</CardDescription>
|
|
32
|
+
</CardHeader>
|
|
33
|
+
<CardContent className="grid gap-6">
|
|
34
|
+
<RadioGroup defaultValue="card" className="grid grid-cols-3 gap-4">
|
|
35
|
+
<Label
|
|
36
|
+
htmlFor="card"
|
|
37
|
+
className="flex flex-col items-center justify-between rounded-md border-2 border-muted bg-popover p-4 hover:bg-accent hover:text-accent-foreground [&:has([data-state=checked])]:border-primary"
|
|
38
|
+
>
|
|
39
|
+
<RadioGroupItem value="card" id="card" className="sr-only" />
|
|
40
|
+
<CreditCard className="mb-3 h-6 w-6" />
|
|
41
|
+
Card
|
|
42
|
+
</Label>
|
|
43
|
+
<Label
|
|
44
|
+
htmlFor="paypal"
|
|
45
|
+
className="flex flex-col items-center justify-between rounded-md border-2 border-muted bg-popover p-4 hover:bg-accent hover:text-accent-foreground [&:has([data-state=checked])]:border-primary"
|
|
46
|
+
>
|
|
47
|
+
<RadioGroupItem value="paypal" id="paypal" className="sr-only" />
|
|
48
|
+
<Icons.paypal className="mb-3 h-6 w-6" />
|
|
49
|
+
Paypal
|
|
50
|
+
</Label>
|
|
51
|
+
<Label
|
|
52
|
+
htmlFor="apple"
|
|
53
|
+
className="flex flex-col items-center justify-between rounded-md border-2 border-muted bg-popover p-4 hover:bg-accent hover:text-accent-foreground [&:has([data-state=checked])]:border-primary"
|
|
54
|
+
>
|
|
55
|
+
<RadioGroupItem value="apple" id="apple" className="sr-only" />
|
|
56
|
+
<Icons.apple className="mb-3 h-6 w-6" />
|
|
57
|
+
Apple
|
|
58
|
+
</Label>
|
|
59
|
+
</RadioGroup>
|
|
60
|
+
<div className="grid gap-2">
|
|
61
|
+
<Label htmlFor="name">Name</Label>
|
|
62
|
+
<Input id="name" placeholder="First Last" />
|
|
63
|
+
</div>
|
|
64
|
+
<div className="grid gap-2">
|
|
65
|
+
<Label htmlFor="number">Card number</Label>
|
|
66
|
+
<Input id="number" placeholder="" />
|
|
67
|
+
</div>
|
|
68
|
+
<div className="grid grid-cols-3 gap-4">
|
|
69
|
+
<div className="grid gap-2">
|
|
70
|
+
<Label htmlFor="month">Expires</Label>
|
|
71
|
+
<Select>
|
|
72
|
+
<SelectTrigger id="month">
|
|
73
|
+
<SelectValue placeholder="Month" />
|
|
74
|
+
</SelectTrigger>
|
|
75
|
+
<SelectContent>
|
|
76
|
+
<SelectItem value="1">January</SelectItem>
|
|
77
|
+
<SelectItem value="2">February</SelectItem>
|
|
78
|
+
<SelectItem value="3">March</SelectItem>
|
|
79
|
+
<SelectItem value="4">April</SelectItem>
|
|
80
|
+
<SelectItem value="5">May</SelectItem>
|
|
81
|
+
<SelectItem value="6">June</SelectItem>
|
|
82
|
+
<SelectItem value="7">July</SelectItem>
|
|
83
|
+
<SelectItem value="8">August</SelectItem>
|
|
84
|
+
<SelectItem value="9">September</SelectItem>
|
|
85
|
+
<SelectItem value="10">October</SelectItem>
|
|
86
|
+
<SelectItem value="11">November</SelectItem>
|
|
87
|
+
<SelectItem value="12">December</SelectItem>
|
|
88
|
+
</SelectContent>
|
|
89
|
+
</Select>
|
|
90
|
+
</div>
|
|
91
|
+
<div className="grid gap-2">
|
|
92
|
+
<Label htmlFor="year">Year</Label>
|
|
93
|
+
<Select>
|
|
94
|
+
<SelectTrigger id="year">
|
|
95
|
+
<SelectValue placeholder="Year" />
|
|
96
|
+
</SelectTrigger>
|
|
97
|
+
<SelectContent>
|
|
98
|
+
{Array.from({ length: 10 }, (_, i) => (
|
|
99
|
+
<SelectItem key={i} value={`${new Date().getFullYear() + i}`}>
|
|
100
|
+
{new Date().getFullYear() + i}
|
|
101
|
+
</SelectItem>
|
|
102
|
+
))}
|
|
103
|
+
</SelectContent>
|
|
104
|
+
</Select>
|
|
105
|
+
</div>
|
|
106
|
+
<div className="grid gap-2">
|
|
107
|
+
<Label htmlFor="cvc">CVC</Label>
|
|
108
|
+
<Input id="cvc" placeholder="CVC" />
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
</CardContent>
|
|
112
|
+
<CardFooter>
|
|
113
|
+
<Button className="w-full">Continue</Button>
|
|
114
|
+
</CardFooter>
|
|
115
|
+
</Card>
|
|
116
|
+
)
|
|
117
|
+
}
|