create-tauri-ui 0.1.4 → 0.2.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 +56 -13
- package/dist/index.mjs +26 -27
- package/index.js +1 -1
- package/package.json +54 -63
- package/templates/.shared/.github/workflows/release.yml +112 -0
- package/templates/.shared/app-icon.png +0 -0
- package/templates/.shared/src-tauri/Cargo.lock +3701 -0
- package/templates/.shared/src-tauri/Cargo.toml +36 -0
- package/templates/.shared/src-tauri/build.rs +3 -0
- package/templates/.shared/src-tauri/icons/128x128.png +0 -0
- package/templates/.shared/src-tauri/icons/128x128@2x.png +0 -0
- package/templates/.shared/src-tauri/icons/32x32.png +0 -0
- package/templates/.shared/src-tauri/icons/Square107x107Logo.png +0 -0
- package/templates/.shared/src-tauri/icons/Square142x142Logo.png +0 -0
- package/templates/.shared/src-tauri/icons/Square150x150Logo.png +0 -0
- package/templates/.shared/src-tauri/icons/Square284x284Logo.png +0 -0
- package/templates/.shared/src-tauri/icons/Square30x30Logo.png +0 -0
- package/templates/.shared/src-tauri/icons/Square310x310Logo.png +0 -0
- package/templates/.shared/src-tauri/icons/Square44x44Logo.png +0 -0
- package/templates/.shared/src-tauri/icons/Square71x71Logo.png +0 -0
- package/templates/.shared/src-tauri/icons/Square89x89Logo.png +0 -0
- package/templates/.shared/src-tauri/icons/StoreLogo.png +0 -0
- package/templates/.shared/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png +0 -0
- package/templates/.shared/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png +0 -0
- package/templates/.shared/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/templates/.shared/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png +0 -0
- package/templates/.shared/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png +0 -0
- package/templates/.shared/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/templates/.shared/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png +0 -0
- package/templates/.shared/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
- package/templates/.shared/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/templates/.shared/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/templates/.shared/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
- package/templates/.shared/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/templates/.shared/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/templates/.shared/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
- package/templates/.shared/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/templates/.shared/src-tauri/icons/icon.icns +0 -0
- package/templates/.shared/src-tauri/icons/icon.ico +0 -0
- package/templates/.shared/src-tauri/icons/icon.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-20x20@1x.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-20x20@2x-1.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-20x20@2x.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-20x20@3x.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-29x29@1x.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-29x29@2x-1.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-29x29@2x.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-29x29@3x.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-40x40@1x.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-40x40@2x-1.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-40x40@2x.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-40x40@3x.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-512@2x.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-60x60@2x.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-60x60@3x.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-76x76@1x.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-76x76@2x.png +0 -0
- package/templates/.shared/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png +0 -0
- package/templates/.shared/src-tauri/src/main.rs +19 -0
- package/templates/.shared/src-tauri/tauri.conf.json +79 -0
- package/templates/next/.env +1 -1
- package/templates/next/.github/workflows/release.yml +108 -108
- package/templates/next/.vscode/extensions.json +3 -3
- package/templates/next/README.md +95 -88
- package/templates/next/components.json +16 -0
- package/templates/next/next-env.d.ts +5 -5
- package/templates/next/next.config.js +14 -17
- package/templates/next/package.json +83 -82
- package/templates/next/pnpm-lock.yaml +4869 -4754
- package/templates/next/postcss.config.js +6 -6
- package/templates/next/prettier.config.js +35 -35
- package/templates/next/src/app/examples/authentication/components/user-auth-form.tsx +1 -1
- package/templates/next/src/app/examples/authentication/page.tsx +67 -59
- package/templates/next/src/app/examples/cards/components/create-account.tsx +1 -1
- package/templates/next/src/app/examples/cards/components/date-picker.tsx +2 -2
- package/templates/next/src/app/examples/cards/components/github-card.tsx +15 -10
- package/templates/next/src/app/examples/cards/components/notifications.tsx +9 -9
- package/templates/next/src/app/examples/cards/components/payment-method.tsx +14 -4
- package/templates/next/src/app/examples/cards/components/report-an-issue.tsx +4 -1
- package/templates/next/src/app/examples/cards/components/share-document.tsx +5 -1
- package/templates/next/src/app/examples/cards/components/team-members.tsx +8 -4
- package/templates/next/src/app/examples/cards/page.tsx +37 -36
- package/templates/next/src/app/examples/dashboard/components/date-range-picker.tsx +2 -3
- package/templates/next/src/app/examples/dashboard/components/main-nav.tsx +10 -8
- package/templates/next/src/app/examples/dashboard/components/recent-sales.tsx +5 -1
- package/templates/next/src/app/examples/dashboard/components/search.tsx +1 -1
- package/templates/next/src/app/examples/dashboard/components/team-switcher.tsx +15 -7
- package/templates/next/src/app/examples/dashboard/components/user-nav.tsx +10 -15
- package/templates/next/src/app/examples/dashboard/page.tsx +164 -114
- package/templates/next/src/app/examples/forms/account/account-form.tsx +13 -13
- package/templates/next/src/app/examples/forms/appearance/appearance-form.tsx +5 -5
- package/templates/next/src/app/examples/forms/components/sidebar-nav.tsx +3 -2
- package/templates/next/src/app/examples/forms/display/display-form.tsx +2 -2
- package/templates/next/src/app/examples/forms/layout.tsx +16 -14
- package/templates/next/src/app/examples/forms/notifications/notifications-form.tsx +6 -5
- package/templates/next/src/app/examples/forms/notifications/page.tsx +0 -1
- package/templates/next/src/app/examples/forms/profile-form.tsx +16 -15
- package/templates/next/src/app/examples/layout.tsx +7 -7
- package/templates/next/src/app/examples/music/components/album-artwork.tsx +15 -4
- package/templates/next/src/app/examples/music/components/menu.tsx +27 -5
- package/templates/next/src/app/examples/music/components/podcast-empty-placeholder.tsx +15 -4
- package/templates/next/src/app/examples/music/components/sidebar.tsx +147 -43
- package/templates/next/src/app/examples/music/page.tsx +113 -106
- package/templates/next/src/app/examples/playground/components/model-selector.tsx +3 -3
- package/templates/next/src/app/examples/playground/components/preset-actions.tsx +2 -4
- package/templates/next/src/app/examples/playground/components/preset-selector.tsx +4 -4
- package/templates/next/src/app/examples/playground/components/preset-share.tsx +2 -2
- package/templates/next/src/app/examples/playground/page.tsx +268 -115
- package/templates/next/src/app/examples/tasks/components/data-table-column-header.tsx +12 -7
- package/templates/next/src/app/examples/tasks/components/data-table-faceted-filter.tsx +4 -4
- package/templates/next/src/app/examples/tasks/components/data-table-pagination.tsx +10 -10
- package/templates/next/src/app/examples/tasks/components/data-table-row-actions.tsx +6 -19
- package/templates/next/src/app/examples/tasks/components/data-table-toolbar.tsx +3 -5
- package/templates/next/src/app/examples/tasks/components/data-table-view-options.tsx +2 -2
- package/templates/next/src/app/examples/tasks/components/user-nav.tsx +10 -15
- package/templates/next/src/app/examples/tasks/data/data.tsx +17 -17
- package/templates/next/src/app/examples/tasks/data/tasks.json +1 -1
- package/templates/next/src/app/examples/tasks/page.tsx +14 -12
- package/templates/next/src/app/layout.tsx +47 -43
- package/templates/next/src/app/page.tsx +5 -5
- package/templates/next/src/components/{examples/date-picker/with-range.tsx → example/date-picker-with-range.tsx} +1 -1
- package/templates/next/src/components/examples-nav.tsx +70 -70
- package/templates/next/src/components/greeting.tsx +21 -21
- package/templates/next/src/components/icons.tsx +154 -154
- package/templates/next/src/components/menu-mode-toggle.tsx +46 -46
- package/templates/next/src/components/menu.tsx +259 -259
- package/templates/next/src/components/mode-toggle.tsx +43 -43
- package/templates/next/src/components/page-header.tsx +50 -50
- package/templates/next/src/components/style-switcher.tsx +19 -19
- package/templates/next/src/components/tailwind-indicator.tsx +18 -18
- package/templates/next/src/components/theme-provider.tsx +9 -9
- package/templates/next/src/components/ui/accordion.tsx +1 -1
- package/templates/next/src/components/ui/alert-dialog.tsx +3 -8
- package/templates/next/src/components/ui/alert.tsx +3 -5
- package/templates/next/src/components/ui/badge.tsx +5 -5
- package/templates/next/src/components/ui/button.tsx +15 -10
- package/templates/next/src/components/ui/card.tsx +1 -3
- package/templates/next/src/components/ui/checkbox.tsx +2 -2
- package/templates/next/src/components/ui/command.tsx +2 -2
- package/templates/next/src/components/ui/context-menu.tsx +6 -6
- package/templates/next/src/components/ui/dialog.tsx +4 -9
- package/templates/next/src/components/ui/dropdown-menu.tsx +6 -6
- package/templates/next/src/components/ui/hover-card.tsx +1 -1
- package/templates/next/src/components/ui/input.tsx +1 -3
- package/templates/next/src/components/ui/label.tsx +1 -1
- package/templates/next/src/components/ui/menubar.tsx +7 -7
- package/templates/next/src/components/ui/navigation-menu.tsx +2 -4
- package/templates/next/src/components/ui/popover.tsx +1 -1
- package/templates/next/src/components/ui/radio-group.tsx +2 -2
- package/templates/next/src/components/ui/select.tsx +4 -3
- package/templates/next/src/components/ui/sheet.tsx +22 -108
- package/templates/next/src/components/ui/skeleton.tsx +0 -2
- package/templates/next/src/components/ui/switch.tsx +1 -1
- package/templates/next/src/components/ui/table.tsx +1 -1
- package/templates/next/src/components/ui/tabs.tsx +1 -1
- package/templates/next/src/components/ui/textarea.tsx +1 -3
- package/templates/next/src/components/ui/toast.tsx +6 -8
- package/templates/next/src/components/ui/toggle.tsx +3 -3
- package/templates/next/src/components/ui/tooltip.tsx +1 -1
- package/templates/next/src/components/ui/use-toast.ts +5 -4
- package/templates/next/src/data/albums.ts +71 -71
- package/templates/next/src/data/playlists.ts +16 -16
- package/templates/next/src/lib/utils.ts +6 -19
- package/templates/next/src/styles/globals.css +86 -124
- package/templates/next/src-tauri/Cargo.lock +3701 -3637
- package/templates/next/src-tauri/Cargo.toml +36 -36
- package/templates/next/src-tauri/build.rs +3 -3
- 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 -19
- package/templates/next/src-tauri/tauri.conf.json +79 -63
- package/templates/next/tailwind.config.js +78 -80
- package/templates/next/tsconfig.json +35 -35
- package/templates/sveltekit/.github/workflows/release.yml +108 -0
- package/templates/sveltekit/package.json +29 -29
- package/templates/sveltekit/src-tauri/Cargo.lock +268 -206
- package/templates/sveltekit/src-tauri/Cargo.toml +12 -10
- package/templates/sveltekit/src-tauri/build.rs +3 -3
- package/templates/sveltekit/src-tauri/tauri.conf.json +23 -6
- package/templates/vite/components.json +16 -0
- package/templates/vite/package.json +19 -18
- package/templates/vite/pnpm-lock.yaml +801 -696
- package/templates/vite/public/avatars/01.png +0 -0
- package/templates/vite/public/avatars/02.png +0 -0
- package/templates/vite/public/avatars/03.png +0 -0
- package/templates/vite/public/avatars/04.png +0 -0
- package/templates/vite/public/avatars/05.png +0 -0
- package/templates/vite/src/components/menu.tsx +1 -1
- package/templates/vite/src/dashboard/components/date-range-picker.tsx +2 -3
- package/templates/vite/src/dashboard/components/recent-sales.tsx +5 -1
- package/templates/vite/src/dashboard/components/search.tsx +1 -1
- package/templates/vite/src/dashboard/components/team-switcher.tsx +15 -7
- package/templates/vite/src/dashboard/components/user-nav.tsx +10 -15
- package/templates/vite/src/dashboard/page.tsx +172 -121
- package/templates/vite/src/styles/globals.css +1 -39
- package/templates/vite/src-tauri/Cargo.lock +302 -238
- package/templates/vite/src-tauri/Cargo.toml +11 -8
- package/templates/vite/src-tauri/build.rs +3 -3
- package/templates/vite/src-tauri/tauri.conf.json +79 -63
- package/templates/viteuno/.github/workflows/release.yml +108 -0
- package/templates/viteuno/.vscode/extensions.json +3 -0
- package/templates/viteuno/README.md +1 -0
- package/templates/viteuno/app-icon.png +0 -0
- package/templates/viteuno/components.json +16 -0
- package/templates/viteuno/index.html +16 -0
- package/templates/viteuno/package.json +73 -0
- package/templates/viteuno/pnpm-lock.yaml +5298 -0
- package/templates/viteuno/preset.shadcn.ts +160 -0
- package/templates/viteuno/prettier.config.cjs +34 -0
- package/templates/viteuno/public/avatars/01.png +0 -0
- package/templates/viteuno/public/avatars/02.png +0 -0
- package/templates/viteuno/public/avatars/03.png +0 -0
- package/templates/viteuno/public/avatars/04.png +0 -0
- package/templates/viteuno/public/avatars/05.png +0 -0
- package/templates/viteuno/src/App.tsx +39 -0
- package/templates/viteuno/src/assets/Inter.var.woff2 +0 -0
- package/templates/viteuno/src/components/icons.tsx +154 -0
- package/templates/viteuno/src/components/menu-mode-toggle.tsx +46 -0
- package/templates/viteuno/src/components/menu.tsx +232 -0
- package/templates/viteuno/src/components/tailwind-indicator.tsx +18 -0
- package/templates/viteuno/src/components/theme-provider.tsx +9 -0
- package/templates/viteuno/src/components/ui/accordion.tsx +60 -0
- package/templates/viteuno/src/components/ui/alert-dialog.tsx +150 -0
- package/templates/viteuno/src/components/ui/alert.tsx +61 -0
- package/templates/viteuno/src/components/ui/aspect-ratio.tsx +7 -0
- package/templates/viteuno/src/components/ui/avatar.tsx +50 -0
- package/templates/viteuno/src/components/ui/badge.tsx +36 -0
- package/templates/viteuno/src/components/ui/button.tsx +51 -0
- package/templates/viteuno/src/components/ui/calendar.tsx +64 -0
- package/templates/viteuno/src/components/ui/card.tsx +81 -0
- package/templates/viteuno/src/components/ui/checkbox.tsx +30 -0
- package/templates/viteuno/src/components/ui/collapsible.tsx +11 -0
- package/templates/viteuno/src/components/ui/command.tsx +155 -0
- package/templates/viteuno/src/components/ui/context-menu.tsx +200 -0
- package/templates/viteuno/src/components/ui/dialog.tsx +128 -0
- package/templates/viteuno/src/components/ui/dropdown-menu.tsx +200 -0
- package/templates/viteuno/src/components/ui/hover-card.tsx +29 -0
- package/templates/viteuno/src/components/ui/index.ts +0 -0
- package/templates/viteuno/src/components/ui/input.tsx +27 -0
- package/templates/viteuno/src/components/ui/label.tsx +26 -0
- package/templates/viteuno/src/components/ui/menubar.tsx +236 -0
- package/templates/viteuno/src/components/ui/navigation-menu.tsx +130 -0
- package/templates/viteuno/src/components/ui/popover.tsx +31 -0
- package/templates/viteuno/src/components/ui/progress.tsx +28 -0
- package/templates/viteuno/src/components/ui/radio-group.tsx +44 -0
- package/templates/viteuno/src/components/ui/scroll-area.tsx +48 -0
- package/templates/viteuno/src/components/ui/select.tsx +120 -0
- package/templates/viteuno/src/components/ui/separator.tsx +31 -0
- package/templates/viteuno/src/components/ui/sheet.tsx +230 -0
- package/templates/viteuno/src/components/ui/skeleton.tsx +17 -0
- package/templates/viteuno/src/components/ui/slider.tsx +28 -0
- package/templates/viteuno/src/components/ui/switch.tsx +29 -0
- package/templates/viteuno/src/components/ui/table.tsx +114 -0
- package/templates/viteuno/src/components/ui/tabs.tsx +55 -0
- package/templates/viteuno/src/components/ui/textarea.tsx +26 -0
- package/templates/viteuno/src/components/ui/toast.tsx +129 -0
- package/templates/viteuno/src/components/ui/toaster.tsx +35 -0
- package/templates/viteuno/src/components/ui/toggle.tsx +45 -0
- package/templates/viteuno/src/components/ui/tooltip.tsx +30 -0
- package/templates/viteuno/src/components/ui/use-toast.ts +191 -0
- package/templates/{next/src/components/examples/calendar → viteuno/src/dashboard/components}/date-range-picker.tsx +5 -4
- package/templates/viteuno/src/dashboard/components/main-nav.tsx +38 -0
- package/templates/viteuno/src/dashboard/components/overview.tsx +78 -0
- package/templates/viteuno/src/dashboard/components/recent-sales.tsx +67 -0
- package/templates/viteuno/src/dashboard/components/search.tsx +13 -0
- package/templates/viteuno/src/dashboard/components/team-switcher.tsx +205 -0
- package/templates/viteuno/src/dashboard/components/user-nav.tsx +67 -0
- package/templates/viteuno/src/dashboard/page.tsx +140 -0
- package/templates/viteuno/src/lib/utils.ts +19 -0
- package/templates/viteuno/src/main.tsx +14 -0
- package/templates/viteuno/src/styles/globals.css +4 -0
- package/templates/viteuno/src/vite-env.d.ts +1 -0
- package/templates/viteuno/src-tauri/Cargo.lock +3701 -0
- package/templates/viteuno/src-tauri/Cargo.toml +36 -0
- package/templates/viteuno/src-tauri/build.rs +3 -0
- package/templates/viteuno/src-tauri/icons/128x128.png +0 -0
- package/templates/viteuno/src-tauri/icons/128x128@2x.png +0 -0
- package/templates/viteuno/src-tauri/icons/32x32.png +0 -0
- package/templates/viteuno/src-tauri/icons/Square107x107Logo.png +0 -0
- package/templates/viteuno/src-tauri/icons/Square142x142Logo.png +0 -0
- package/templates/viteuno/src-tauri/icons/Square150x150Logo.png +0 -0
- package/templates/viteuno/src-tauri/icons/Square284x284Logo.png +0 -0
- package/templates/viteuno/src-tauri/icons/Square30x30Logo.png +0 -0
- package/templates/viteuno/src-tauri/icons/Square310x310Logo.png +0 -0
- package/templates/viteuno/src-tauri/icons/Square44x44Logo.png +0 -0
- package/templates/viteuno/src-tauri/icons/Square71x71Logo.png +0 -0
- package/templates/viteuno/src-tauri/icons/Square89x89Logo.png +0 -0
- package/templates/viteuno/src-tauri/icons/StoreLogo.png +0 -0
- package/templates/viteuno/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png +0 -0
- package/templates/viteuno/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png +0 -0
- package/templates/viteuno/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png +0 -0
- package/templates/viteuno/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png +0 -0
- package/templates/viteuno/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png +0 -0
- package/templates/viteuno/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png +0 -0
- package/templates/viteuno/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png +0 -0
- package/templates/viteuno/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
- package/templates/viteuno/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png +0 -0
- package/templates/viteuno/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/templates/viteuno/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
- package/templates/viteuno/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png +0 -0
- package/templates/viteuno/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/templates/viteuno/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
- package/templates/viteuno/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
- package/templates/viteuno/src-tauri/icons/icon.icns +0 -0
- package/templates/viteuno/src-tauri/icons/icon.ico +0 -0
- package/templates/viteuno/src-tauri/icons/icon.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-20x20@1x.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-20x20@2x-1.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-20x20@2x.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-20x20@3x.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-29x29@1x.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-29x29@2x-1.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-29x29@2x.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-29x29@3x.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-40x40@1x.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-40x40@2x-1.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-40x40@2x.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-40x40@3x.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-512@2x.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-60x60@2x.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-60x60@3x.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-76x76@1x.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-76x76@2x.png +0 -0
- package/templates/viteuno/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png +0 -0
- package/templates/viteuno/src-tauri/src/main.rs +16 -0
- package/templates/viteuno/src-tauri/tauri.conf.json +79 -0
- package/templates/viteuno/tsconfig.json +26 -0
- package/templates/viteuno/tsconfig.node.json +9 -0
- package/templates/viteuno/uno.config.ts +111 -0
- package/templates/viteuno/vite.config.ts +33 -0
- package/templates/next/src/app/examples/cards/styles.css +0 -63
- package/templates/next/src/app/examples/music/styles.css +0 -65
- package/templates/next/src/app/examples/playground/components/icons.tsx +0 -153
- package/templates/next/src/app/examples/playground/styles.css +0 -65
- package/templates/next/src/components/examples/.eslintrc.json +0 -6
- package/templates/next/src/components/examples/accordion/demo.tsx +0 -32
- package/templates/next/src/components/examples/alert/demo.tsx +0 -15
- package/templates/next/src/components/examples/alert/destructive.tsx +0 -15
- package/templates/next/src/components/examples/alert-dialog/demo.tsx +0 -35
- package/templates/next/src/components/examples/aspect-ratio/demo.tsx +0 -16
- package/templates/next/src/components/examples/avatar/demo.tsx +0 -10
- package/templates/next/src/components/examples/badge/demo.tsx +0 -5
- package/templates/next/src/components/examples/badge/destructive.tsx +0 -5
- package/templates/next/src/components/examples/badge/outline.tsx +0 -5
- package/templates/next/src/components/examples/badge/secondary.tsx +0 -5
- package/templates/next/src/components/examples/button/as-child.tsx +0 -10
- package/templates/next/src/components/examples/button/demo.tsx +0 -5
- package/templates/next/src/components/examples/button/destructive.tsx +0 -5
- package/templates/next/src/components/examples/button/ghost.tsx +0 -5
- package/templates/next/src/components/examples/button/link.tsx +0 -5
- package/templates/next/src/components/examples/button/loading.tsx +0 -12
- package/templates/next/src/components/examples/button/outline.tsx +0 -5
- package/templates/next/src/components/examples/button/secondary.tsx +0 -5
- package/templates/next/src/components/examples/button/with-icon.tsx +0 -11
- package/templates/next/src/components/examples/calendar/date-picker.tsx +0 -43
- package/templates/next/src/components/examples/calendar/demo.tsx +0 -18
- package/templates/next/src/components/examples/calendar/react-hook-form.tsx +0 -101
- package/templates/next/src/components/examples/calendar/with-presets.tsx +0 -62
- package/templates/next/src/components/examples/card/demo.tsx +0 -79
- package/templates/next/src/components/examples/card/with-form.tsx +0 -59
- package/templates/next/src/components/examples/checkbox/demo.tsx +0 -17
- package/templates/next/src/components/examples/checkbox/disabled.tsx +0 -15
- package/templates/next/src/components/examples/checkbox/react-hook-form-multiple.tsx +0 -127
- package/templates/next/src/components/examples/checkbox/react-hook-form-single.tsx +0 -72
- package/templates/next/src/components/examples/checkbox/with-text.tsx +0 -22
- package/templates/next/src/components/examples/collapsible/demo.tsx +0 -46
- package/templates/next/src/components/examples/combobox/demo.tsx +0 -90
- package/templates/next/src/components/examples/combobox/dropdown-menu.tsx +0 -110
- package/templates/next/src/components/examples/combobox/popover.tsx +0 -124
- package/templates/next/src/components/examples/combobox/react-hook-form.tsx +0 -135
- package/templates/next/src/components/examples/command/combobox.tsx +0 -90
- package/templates/next/src/components/examples/command/demo.tsx +0 -62
- package/templates/next/src/components/examples/command/dialog.tsx +0 -86
- package/templates/next/src/components/examples/command/dropdown-menu.tsx +0 -110
- package/templates/next/src/components/examples/command/popover.tsx +0 -124
- package/templates/next/src/components/examples/context-menu/demo.tsx +0 -67
- package/templates/next/src/components/examples/data-table/columns.tsx +0 -110
- package/templates/next/src/components/examples/data-table/data-table.tsx +0 -185
- package/templates/next/src/components/examples/data-table/demo.tsx +0 -41
- package/templates/next/src/components/examples/date-picker/demo.tsx +0 -43
- package/templates/next/src/components/examples/date-picker/react-hook-form.tsx +0 -101
- package/templates/next/src/components/examples/date-picker/with-presets.tsx +0 -62
- package/templates/next/src/components/examples/dialog/demo.tsx +0 -47
- package/templates/next/src/components/examples/dropdown-menu/checkboxes.tsx +0 -53
- package/templates/next/src/components/examples/dropdown-menu/demo.tsx +0 -122
- package/templates/next/src/components/examples/dropdown-menu/radio-group.tsx +0 -37
- package/templates/next/src/components/examples/hover-card/demo.tsx +0 -39
- package/templates/next/src/components/examples/index.tsx +0 -213
- package/templates/next/src/components/examples/input/demo.tsx +0 -5
- package/templates/next/src/components/examples/input/disabled.tsx +0 -5
- package/templates/next/src/components/examples/input/file.tsx +0 -11
- package/templates/next/src/components/examples/input/react-hook-form.tsx +0 -65
- package/templates/next/src/components/examples/input/with-button.tsx +0 -11
- package/templates/next/src/components/examples/input/with-label.tsx +0 -11
- package/templates/next/src/components/examples/input/with-text.tsx +0 -12
- package/templates/next/src/components/examples/label/demo.tsx +0 -13
- package/templates/next/src/components/examples/menubar/demo.tsx +0 -107
- package/templates/next/src/components/examples/navigation-menu/demo.tsx +0 -144
- package/templates/next/src/components/examples/popover/demo.tsx +0 -67
- package/templates/next/src/components/examples/progress/demo.tsx +0 -16
- package/templates/next/src/components/examples/radio-group/demo.tsx +0 -21
- package/templates/next/src/components/examples/radio-group/react-hook-form.tsx +0 -88
- package/templates/next/src/components/examples/scroll-area/demo.tsx +0 -26
- package/templates/next/src/components/examples/select/demo.tsx +0 -31
- package/templates/next/src/components/examples/select/react-hook-form.tsx +0 -83
- package/templates/next/src/components/examples/separator/demo.tsx +0 -22
- package/templates/next/src/components/examples/sheet/demo.tsx +0 -47
- package/templates/next/src/components/examples/sheet/position.tsx +0 -75
- package/templates/next/src/components/examples/sheet/size.tsx +0 -75
- package/templates/next/src/components/examples/skeleton/demo.tsx +0 -13
- package/templates/next/src/components/examples/slider/demo.tsx +0 -16
- package/templates/next/src/components/examples/switch/demo.tsx +0 -11
- package/templates/next/src/components/examples/switch/react-hook-form.tsx +0 -101
- package/templates/next/src/components/examples/table/demo.tsx +0 -80
- package/templates/next/src/components/examples/tabs/demo.tsx +0 -69
- package/templates/next/src/components/examples/textarea/demo.tsx +0 -5
- package/templates/next/src/components/examples/textarea/disabled.tsx +0 -5
- package/templates/next/src/components/examples/textarea/react-hook-form.tsx +0 -77
- package/templates/next/src/components/examples/textarea/with-button.tsx +0 -11
- package/templates/next/src/components/examples/textarea/with-label.tsx +0 -11
- package/templates/next/src/components/examples/textarea/with-text.tsx +0 -14
- package/templates/next/src/components/examples/toast/demo.tsx +0 -26
- package/templates/next/src/components/examples/toast/destructive.tsx +0 -25
- package/templates/next/src/components/examples/toast/simple.tsx +0 -21
- package/templates/next/src/components/examples/toast/with-action.tsx +0 -24
- package/templates/next/src/components/examples/toast/with-title.tsx +0 -22
- package/templates/next/src/components/examples/toggle/demo.tsx +0 -11
- package/templates/next/src/components/examples/toggle/disabled.tsx +0 -11
- package/templates/next/src/components/examples/toggle/lg.tsx +0 -11
- package/templates/next/src/components/examples/toggle/outline.tsx +0 -11
- package/templates/next/src/components/examples/toggle/sm.tsx +0 -11
- package/templates/next/src/components/examples/toggle/with-text.tsx +0 -12
- package/templates/next/src/components/examples/tooltip/demo.tsx +0 -27
- package/templates/next/src/components/examples/typography/blockquote.tsx +0 -8
- package/templates/next/src/components/examples/typography/demo.tsx +0 -119
- package/templates/next/src/components/examples/typography/h1.tsx +0 -7
- package/templates/next/src/components/examples/typography/h2.tsx +0 -7
- package/templates/next/src/components/examples/typography/h3.tsx +0 -7
- package/templates/next/src/components/examples/typography/h4.tsx +0 -7
- package/templates/next/src/components/examples/typography/inline-code.tsx +0 -7
- package/templates/next/src/components/examples/typography/large.tsx +0 -5
- package/templates/next/src/components/examples/typography/lead.tsx +0 -8
- package/templates/next/src/components/examples/typography/list.tsx +0 -9
- package/templates/next/src/components/examples/typography/muted.tsx +0 -5
- package/templates/next/src/components/examples/typography/p.tsx +0 -8
- package/templates/next/src/components/examples/typography/small.tsx +0 -5
- package/templates/next/src/components/examples/typography/table.tsx +0 -44
- package/templates/sveltekit/static/favicon.ico +0 -0
- /package/templates/next/src/components/{react-hook-form → ui}/form.tsx +0 -0
|
@@ -38,7 +38,7 @@ const MenubarTrigger = React.forwardRef<
|
|
|
38
38
|
<MenubarPrimitive.Trigger
|
|
39
39
|
ref={ref}
|
|
40
40
|
className={cn(
|
|
41
|
-
"flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none data-[state=open]:bg-accent data-[state=open]:text-accent-foreground
|
|
41
|
+
"flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
42
42
|
className
|
|
43
43
|
)}
|
|
44
44
|
{...props}
|
|
@@ -55,7 +55,7 @@ const MenubarSubTrigger = React.forwardRef<
|
|
|
55
55
|
<MenubarPrimitive.SubTrigger
|
|
56
56
|
ref={ref}
|
|
57
57
|
className={cn(
|
|
58
|
-
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[state=open]:bg-accent data-[state=open]:text-accent-foreground
|
|
58
|
+
"flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
|
|
59
59
|
inset && "pl-8",
|
|
60
60
|
className
|
|
61
61
|
)}
|
|
@@ -74,7 +74,7 @@ const MenubarSubContent = React.forwardRef<
|
|
|
74
74
|
<MenubarPrimitive.SubContent
|
|
75
75
|
ref={ref}
|
|
76
76
|
className={cn(
|
|
77
|
-
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground
|
|
77
|
+
"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
78
78
|
className
|
|
79
79
|
)}
|
|
80
80
|
{...props}
|
|
@@ -97,7 +97,7 @@ const MenubarContent = React.forwardRef<
|
|
|
97
97
|
alignOffset={alignOffset}
|
|
98
98
|
sideOffset={sideOffset}
|
|
99
99
|
className={cn(
|
|
100
|
-
"z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in slide-in-from-top-
|
|
100
|
+
"z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
101
101
|
className
|
|
102
102
|
)}
|
|
103
103
|
{...props}
|
|
@@ -116,7 +116,7 @@ const MenubarItem = React.forwardRef<
|
|
|
116
116
|
<MenubarPrimitive.Item
|
|
117
117
|
ref={ref}
|
|
118
118
|
className={cn(
|
|
119
|
-
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50
|
|
119
|
+
"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
120
120
|
inset && "pl-8",
|
|
121
121
|
className
|
|
122
122
|
)}
|
|
@@ -132,7 +132,7 @@ const MenubarCheckboxItem = React.forwardRef<
|
|
|
132
132
|
<MenubarPrimitive.CheckboxItem
|
|
133
133
|
ref={ref}
|
|
134
134
|
className={cn(
|
|
135
|
-
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50
|
|
135
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
136
136
|
className
|
|
137
137
|
)}
|
|
138
138
|
checked={checked}
|
|
@@ -155,7 +155,7 @@ const MenubarRadioItem = React.forwardRef<
|
|
|
155
155
|
<MenubarPrimitive.RadioItem
|
|
156
156
|
ref={ref}
|
|
157
157
|
className={cn(
|
|
158
|
-
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50
|
|
158
|
+
"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
159
159
|
className
|
|
160
160
|
)}
|
|
161
161
|
{...props}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
1
|
import * as React from "react"
|
|
4
2
|
import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu"
|
|
5
3
|
import { cva } from "class-variance-authority"
|
|
@@ -14,7 +12,7 @@ const NavigationMenu = React.forwardRef<
|
|
|
14
12
|
<NavigationMenuPrimitive.Root
|
|
15
13
|
ref={ref}
|
|
16
14
|
className={cn(
|
|
17
|
-
"relative z-10 flex flex-1 items-center justify-center",
|
|
15
|
+
"relative z-10 flex max-w-max flex-1 items-center justify-center",
|
|
18
16
|
className
|
|
19
17
|
)}
|
|
20
18
|
{...props}
|
|
@@ -43,7 +41,7 @@ NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName
|
|
|
43
41
|
const NavigationMenuItem = NavigationMenuPrimitive.Item
|
|
44
42
|
|
|
45
43
|
const navigationMenuTriggerStyle = cva(
|
|
46
|
-
"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors
|
|
44
|
+
"group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50"
|
|
47
45
|
)
|
|
48
46
|
|
|
49
47
|
const NavigationMenuTrigger = React.forwardRef<
|
|
@@ -19,7 +19,7 @@ const PopoverContent = React.forwardRef<
|
|
|
19
19
|
align={align}
|
|
20
20
|
sideOffset={sideOffset}
|
|
21
21
|
className={cn(
|
|
22
|
-
"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none animate-in data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
22
|
+
"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
23
23
|
className
|
|
24
24
|
)}
|
|
25
25
|
{...props}
|
|
@@ -28,13 +28,13 @@ const RadioGroupItem = React.forwardRef<
|
|
|
28
28
|
<RadioGroupPrimitive.Item
|
|
29
29
|
ref={ref}
|
|
30
30
|
className={cn(
|
|
31
|
-
"h-4 w-4 rounded-full border border-
|
|
31
|
+
"aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
32
32
|
className
|
|
33
33
|
)}
|
|
34
34
|
{...props}
|
|
35
35
|
>
|
|
36
36
|
<RadioGroupPrimitive.Indicator className="flex items-center justify-center">
|
|
37
|
-
<Circle className="h-2.5 w-2.5 fill-
|
|
37
|
+
<Circle className="h-2.5 w-2.5 fill-current text-current" />
|
|
38
38
|
</RadioGroupPrimitive.Indicator>
|
|
39
39
|
</RadioGroupPrimitive.Item>
|
|
40
40
|
)
|
|
@@ -40,8 +40,9 @@ const SelectContent = React.forwardRef<
|
|
|
40
40
|
<SelectPrimitive.Content
|
|
41
41
|
ref={ref}
|
|
42
42
|
className={cn(
|
|
43
|
-
"relative z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md animate-in fade-in-
|
|
44
|
-
position === "popper" &&
|
|
43
|
+
"relative z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
44
|
+
position === "popper" &&
|
|
45
|
+
"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
|
|
45
46
|
className
|
|
46
47
|
)}
|
|
47
48
|
position={position}
|
|
@@ -80,7 +81,7 @@ const SelectItem = React.forwardRef<
|
|
|
80
81
|
<SelectPrimitive.Item
|
|
81
82
|
ref={ref}
|
|
82
83
|
className={cn(
|
|
83
|
-
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50
|
|
84
|
+
"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
84
85
|
className
|
|
85
86
|
)}
|
|
86
87
|
{...props}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
import * as React from "react"
|
|
4
4
|
import * as SheetPrimitive from "@radix-ui/react-dialog"
|
|
5
|
-
import {
|
|
5
|
+
import { cva, type VariantProps } from "class-variance-authority"
|
|
6
6
|
import { X } from "lucide-react"
|
|
7
7
|
|
|
8
8
|
import { cn } from "@/lib/utils"
|
|
@@ -11,41 +11,23 @@ const Sheet = SheetPrimitive.Root
|
|
|
11
11
|
|
|
12
12
|
const SheetTrigger = SheetPrimitive.Trigger
|
|
13
13
|
|
|
14
|
-
const
|
|
15
|
-
variants: {
|
|
16
|
-
position: {
|
|
17
|
-
top: "items-start",
|
|
18
|
-
bottom: "items-end",
|
|
19
|
-
left: "justify-start",
|
|
20
|
-
right: "justify-end",
|
|
21
|
-
},
|
|
22
|
-
},
|
|
23
|
-
defaultVariants: { position: "right" },
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
interface SheetPortalProps
|
|
27
|
-
extends SheetPrimitive.DialogPortalProps,
|
|
28
|
-
VariantProps<typeof portalVariants> {}
|
|
14
|
+
const SheetClose = SheetPrimitive.Close
|
|
29
15
|
|
|
30
16
|
const SheetPortal = ({
|
|
31
|
-
position,
|
|
32
17
|
className,
|
|
33
|
-
children,
|
|
34
18
|
...props
|
|
35
|
-
}:
|
|
36
|
-
<SheetPrimitive.Portal className={cn(className)} {...props}
|
|
37
|
-
<div className={portalVariants({ position })}>{children}</div>
|
|
38
|
-
</SheetPrimitive.Portal>
|
|
19
|
+
}: SheetPrimitive.DialogPortalProps) => (
|
|
20
|
+
<SheetPrimitive.Portal className={cn(className)} {...props} />
|
|
39
21
|
)
|
|
40
22
|
SheetPortal.displayName = SheetPrimitive.Portal.displayName
|
|
41
23
|
|
|
42
24
|
const SheetOverlay = React.forwardRef<
|
|
43
25
|
React.ElementRef<typeof SheetPrimitive.Overlay>,
|
|
44
26
|
React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>
|
|
45
|
-
>(({ className,
|
|
27
|
+
>(({ className, ...props }, ref) => (
|
|
46
28
|
<SheetPrimitive.Overlay
|
|
47
29
|
className={cn(
|
|
48
|
-
"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm
|
|
30
|
+
"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
49
31
|
className
|
|
50
32
|
)}
|
|
51
33
|
{...props}
|
|
@@ -55,110 +37,41 @@ const SheetOverlay = React.forwardRef<
|
|
|
55
37
|
SheetOverlay.displayName = SheetPrimitive.Overlay.displayName
|
|
56
38
|
|
|
57
39
|
const sheetVariants = cva(
|
|
58
|
-
"fixed z-50
|
|
40
|
+
"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
|
|
59
41
|
{
|
|
60
42
|
variants: {
|
|
61
|
-
|
|
62
|
-
top: "
|
|
63
|
-
bottom:
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
content: "",
|
|
69
|
-
default: "",
|
|
70
|
-
sm: "",
|
|
71
|
-
lg: "",
|
|
72
|
-
xl: "",
|
|
73
|
-
full: "",
|
|
43
|
+
side: {
|
|
44
|
+
top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
|
|
45
|
+
bottom:
|
|
46
|
+
"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
|
|
47
|
+
left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
|
|
48
|
+
right:
|
|
49
|
+
"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm",
|
|
74
50
|
},
|
|
75
51
|
},
|
|
76
|
-
compoundVariants: [
|
|
77
|
-
{
|
|
78
|
-
position: ["top", "bottom"],
|
|
79
|
-
size: "content",
|
|
80
|
-
class: "max-h-screen",
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
position: ["top", "bottom"],
|
|
84
|
-
size: "default",
|
|
85
|
-
class: "h-1/3",
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
position: ["top", "bottom"],
|
|
89
|
-
size: "sm",
|
|
90
|
-
class: "h-1/4",
|
|
91
|
-
},
|
|
92
|
-
{
|
|
93
|
-
position: ["top", "bottom"],
|
|
94
|
-
size: "lg",
|
|
95
|
-
class: "h-1/2",
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
position: ["top", "bottom"],
|
|
99
|
-
size: "xl",
|
|
100
|
-
class: "h-5/6",
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
position: ["top", "bottom"],
|
|
104
|
-
size: "full",
|
|
105
|
-
class: "h-screen",
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
position: ["right", "left"],
|
|
109
|
-
size: "content",
|
|
110
|
-
class: "max-w-screen",
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
position: ["right", "left"],
|
|
114
|
-
size: "default",
|
|
115
|
-
class: "w-1/3",
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
position: ["right", "left"],
|
|
119
|
-
size: "sm",
|
|
120
|
-
class: "w-1/4",
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
position: ["right", "left"],
|
|
124
|
-
size: "lg",
|
|
125
|
-
class: "w-1/2",
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
position: ["right", "left"],
|
|
129
|
-
size: "xl",
|
|
130
|
-
class: "w-5/6",
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
position: ["right", "left"],
|
|
134
|
-
size: "full",
|
|
135
|
-
class: "w-screen",
|
|
136
|
-
},
|
|
137
|
-
],
|
|
138
52
|
defaultVariants: {
|
|
139
|
-
|
|
140
|
-
size: "default",
|
|
53
|
+
side: "right",
|
|
141
54
|
},
|
|
142
55
|
}
|
|
143
56
|
)
|
|
144
57
|
|
|
145
|
-
|
|
58
|
+
interface SheetContentProps
|
|
146
59
|
extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,
|
|
147
60
|
VariantProps<typeof sheetVariants> {}
|
|
148
61
|
|
|
149
62
|
const SheetContent = React.forwardRef<
|
|
150
63
|
React.ElementRef<typeof SheetPrimitive.Content>,
|
|
151
|
-
|
|
152
|
-
>(({
|
|
153
|
-
<SheetPortal
|
|
64
|
+
SheetContentProps
|
|
65
|
+
>(({ side = "right", className, children, ...props }, ref) => (
|
|
66
|
+
<SheetPortal>
|
|
154
67
|
<SheetOverlay />
|
|
155
68
|
<SheetPrimitive.Content
|
|
156
69
|
ref={ref}
|
|
157
|
-
className={cn(sheetVariants({
|
|
70
|
+
className={cn(sheetVariants({ side }), className)}
|
|
158
71
|
{...props}
|
|
159
72
|
>
|
|
160
73
|
{children}
|
|
161
|
-
<SheetPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity
|
|
74
|
+
<SheetPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary">
|
|
162
75
|
<X className="h-4 w-4" />
|
|
163
76
|
<span className="sr-only">Close</span>
|
|
164
77
|
</SheetPrimitive.Close>
|
|
@@ -222,6 +135,7 @@ SheetDescription.displayName = SheetPrimitive.Description.displayName
|
|
|
222
135
|
export {
|
|
223
136
|
Sheet,
|
|
224
137
|
SheetTrigger,
|
|
138
|
+
SheetClose,
|
|
225
139
|
SheetContent,
|
|
226
140
|
SheetHeader,
|
|
227
141
|
SheetFooter,
|
|
@@ -11,7 +11,7 @@ const Switch = React.forwardRef<
|
|
|
11
11
|
>(({ className, ...props }, ref) => (
|
|
12
12
|
<SwitchPrimitives.Root
|
|
13
13
|
className={cn(
|
|
14
|
-
"peer inline-flex h-[24px] w-[44px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors
|
|
14
|
+
"peer inline-flex h-[24px] w-[44px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
|
|
15
15
|
className
|
|
16
16
|
)}
|
|
17
17
|
{...props}
|
|
@@ -55,7 +55,7 @@ const TableRow = React.forwardRef<
|
|
|
55
55
|
<tr
|
|
56
56
|
ref={ref}
|
|
57
57
|
className={cn(
|
|
58
|
-
"border-b transition-colors data-[state=selected]:bg-muted
|
|
58
|
+
"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
|
|
59
59
|
className
|
|
60
60
|
)}
|
|
61
61
|
{...props}
|
|
@@ -29,7 +29,7 @@ const TabsTrigger = React.forwardRef<
|
|
|
29
29
|
<TabsPrimitive.Trigger
|
|
30
30
|
ref={ref}
|
|
31
31
|
className={cn(
|
|
32
|
-
"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all
|
|
32
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",
|
|
33
33
|
className
|
|
34
34
|
)}
|
|
35
35
|
{...props}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
1
|
import * as React from "react"
|
|
4
2
|
|
|
5
3
|
import { cn } from "@/lib/utils"
|
|
@@ -12,7 +10,7 @@ const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(
|
|
|
12
10
|
return (
|
|
13
11
|
<textarea
|
|
14
12
|
className={cn(
|
|
15
|
-
"flex h-
|
|
13
|
+
"flex min-h-[80px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
|
|
16
14
|
className
|
|
17
15
|
)}
|
|
18
16
|
ref={ref}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
"use client"
|
|
2
|
-
|
|
3
1
|
import * as React from "react"
|
|
4
2
|
import * as ToastPrimitives from "@radix-ui/react-toast"
|
|
5
|
-
import {
|
|
3
|
+
import { cva, type VariantProps } from "class-variance-authority"
|
|
6
4
|
import { X } from "lucide-react"
|
|
7
5
|
|
|
8
6
|
import { cn } from "@/lib/utils"
|
|
@@ -25,13 +23,13 @@ const ToastViewport = React.forwardRef<
|
|
|
25
23
|
ToastViewport.displayName = ToastPrimitives.Viewport.displayName
|
|
26
24
|
|
|
27
25
|
const toastVariants = cva(
|
|
28
|
-
"
|
|
26
|
+
"group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",
|
|
29
27
|
{
|
|
30
28
|
variants: {
|
|
31
29
|
variant: {
|
|
32
|
-
default: "bg-background
|
|
30
|
+
default: "border bg-background",
|
|
33
31
|
destructive:
|
|
34
|
-
"group
|
|
32
|
+
"destructive group border-destructive bg-destructive text-destructive-foreground",
|
|
35
33
|
},
|
|
36
34
|
},
|
|
37
35
|
defaultVariants: {
|
|
@@ -62,7 +60,7 @@ const ToastAction = React.forwardRef<
|
|
|
62
60
|
<ToastPrimitives.Action
|
|
63
61
|
ref={ref}
|
|
64
62
|
className={cn(
|
|
65
|
-
"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors group-[.destructive]:border-
|
|
63
|
+
"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",
|
|
66
64
|
className
|
|
67
65
|
)}
|
|
68
66
|
{...props}
|
|
@@ -77,7 +75,7 @@ const ToastClose = React.forwardRef<
|
|
|
77
75
|
<ToastPrimitives.Close
|
|
78
76
|
ref={ref}
|
|
79
77
|
className={cn(
|
|
80
|
-
"absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300
|
|
78
|
+
"absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",
|
|
81
79
|
className
|
|
82
80
|
)}
|
|
83
81
|
toast-close=""
|
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
import * as React from "react"
|
|
4
4
|
import * as TogglePrimitive from "@radix-ui/react-toggle"
|
|
5
|
-
import {
|
|
5
|
+
import { cva, type VariantProps } from "class-variance-authority"
|
|
6
6
|
|
|
7
7
|
import { cn } from "@/lib/utils"
|
|
8
8
|
|
|
9
9
|
const toggleVariants = cva(
|
|
10
|
-
"inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors
|
|
10
|
+
"inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground",
|
|
11
11
|
{
|
|
12
12
|
variants: {
|
|
13
13
|
variant: {
|
|
14
14
|
default: "bg-transparent",
|
|
15
15
|
outline:
|
|
16
|
-
"
|
|
16
|
+
"border border-input bg-transparent hover:bg-accent hover:text-accent-foreground",
|
|
17
17
|
},
|
|
18
18
|
size: {
|
|
19
19
|
default: "h-10 px-3",
|
|
@@ -19,7 +19,7 @@ const TooltipContent = React.forwardRef<
|
|
|
19
19
|
ref={ref}
|
|
20
20
|
sideOffset={sideOffset}
|
|
21
21
|
className={cn(
|
|
22
|
-
"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-
|
|
22
|
+
"z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
|
|
23
23
|
className
|
|
24
24
|
)}
|
|
25
25
|
{...props}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Inspired by react-hot-toast library
|
|
2
|
-
"use client"
|
|
3
|
-
|
|
4
2
|
import * as React from "react"
|
|
5
3
|
|
|
6
|
-
import
|
|
4
|
+
import type {
|
|
5
|
+
ToastActionElement,
|
|
6
|
+
ToastProps,
|
|
7
|
+
} from "@/components/ui/toast"
|
|
7
8
|
|
|
8
9
|
const TOAST_LIMIT = 1
|
|
9
10
|
const TOAST_REMOVE_DELAY = 1000000
|
|
@@ -137,7 +138,7 @@ function dispatch(action: Action) {
|
|
|
137
138
|
})
|
|
138
139
|
}
|
|
139
140
|
|
|
140
|
-
|
|
141
|
+
type Toast = Omit<ToasterToast, "id">
|
|
141
142
|
|
|
142
143
|
function toast({ ...props }: Toast) {
|
|
143
144
|
const id = genId()
|
|
@@ -1,71 +1,71 @@
|
|
|
1
|
-
export interface Album {
|
|
2
|
-
name: string
|
|
3
|
-
artist: string
|
|
4
|
-
cover: string
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export const listenNowAlbums: Album[] = [
|
|
8
|
-
{
|
|
9
|
-
name: "React Rendezvous",
|
|
10
|
-
artist: "Ethan Byte",
|
|
11
|
-
cover:
|
|
12
|
-
"https://images.unsplash.com/photo-1611348586804-61bf6c080437?w=300&dpr=2&q=80",
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
name: "Async Awakenings",
|
|
16
|
-
artist: "Nina Netcode",
|
|
17
|
-
cover:
|
|
18
|
-
"https://images.unsplash.com/photo-1468817814611-b7edf94b5d60?w=300&dpr=2&q=80",
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
name: "The Art of Reusability",
|
|
22
|
-
artist: "Lena Logic",
|
|
23
|
-
cover:
|
|
24
|
-
"https://images.unsplash.com/photo-1528143358888-6d3c7f67bd5d?w=300&dpr=2&q=80",
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: "Stateful Symphony",
|
|
28
|
-
artist: "Beth Binary",
|
|
29
|
-
cover:
|
|
30
|
-
"https://images.unsplash.com/photo-1490300472339-79e4adc6be4a?w=300&dpr=2&q=80",
|
|
31
|
-
},
|
|
32
|
-
]
|
|
33
|
-
|
|
34
|
-
export const madeForYouAlbums: Album[] = [
|
|
35
|
-
{
|
|
36
|
-
name: "Thinking Components",
|
|
37
|
-
artist: "Lena Logic",
|
|
38
|
-
cover:
|
|
39
|
-
"https://images.unsplash.com/photo-1615247001958-f4bc92fa6a4a?w=300&dpr=2&q=80",
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
name: "Functional Fury",
|
|
43
|
-
artist: "Beth Binary",
|
|
44
|
-
cover:
|
|
45
|
-
"https://images.unsplash.com/photo-1513745405825-efaf9a49315f?w=300&dpr=2&q=80",
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
name: "React Rendezvous",
|
|
49
|
-
artist: "Ethan Byte",
|
|
50
|
-
cover:
|
|
51
|
-
"https://images.unsplash.com/photo-1614113489855-66422ad300a4?w=300&dpr=2&q=80",
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
name: "Stateful Symphony",
|
|
55
|
-
artist: "Beth Binary",
|
|
56
|
-
cover:
|
|
57
|
-
"https://images.unsplash.com/photo-1446185250204-f94591f7d702?w=300&dpr=2&q=80",
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
name: "Async Awakenings",
|
|
61
|
-
artist: "Nina Netcode",
|
|
62
|
-
cover:
|
|
63
|
-
"https://images.unsplash.com/photo-1468817814611-b7edf94b5d60?w=300&dpr=2&q=80",
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
name: "The Art of Reusability",
|
|
67
|
-
artist: "Lena Logic",
|
|
68
|
-
cover:
|
|
69
|
-
"https://images.unsplash.com/photo-1490300472339-79e4adc6be4a?w=300&dpr=2&q=80",
|
|
70
|
-
},
|
|
71
|
-
]
|
|
1
|
+
export interface Album {
|
|
2
|
+
name: string
|
|
3
|
+
artist: string
|
|
4
|
+
cover: string
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
export const listenNowAlbums: Album[] = [
|
|
8
|
+
{
|
|
9
|
+
name: "React Rendezvous",
|
|
10
|
+
artist: "Ethan Byte",
|
|
11
|
+
cover:
|
|
12
|
+
"https://images.unsplash.com/photo-1611348586804-61bf6c080437?w=300&dpr=2&q=80",
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: "Async Awakenings",
|
|
16
|
+
artist: "Nina Netcode",
|
|
17
|
+
cover:
|
|
18
|
+
"https://images.unsplash.com/photo-1468817814611-b7edf94b5d60?w=300&dpr=2&q=80",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: "The Art of Reusability",
|
|
22
|
+
artist: "Lena Logic",
|
|
23
|
+
cover:
|
|
24
|
+
"https://images.unsplash.com/photo-1528143358888-6d3c7f67bd5d?w=300&dpr=2&q=80",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: "Stateful Symphony",
|
|
28
|
+
artist: "Beth Binary",
|
|
29
|
+
cover:
|
|
30
|
+
"https://images.unsplash.com/photo-1490300472339-79e4adc6be4a?w=300&dpr=2&q=80",
|
|
31
|
+
},
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
export const madeForYouAlbums: Album[] = [
|
|
35
|
+
{
|
|
36
|
+
name: "Thinking Components",
|
|
37
|
+
artist: "Lena Logic",
|
|
38
|
+
cover:
|
|
39
|
+
"https://images.unsplash.com/photo-1615247001958-f4bc92fa6a4a?w=300&dpr=2&q=80",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "Functional Fury",
|
|
43
|
+
artist: "Beth Binary",
|
|
44
|
+
cover:
|
|
45
|
+
"https://images.unsplash.com/photo-1513745405825-efaf9a49315f?w=300&dpr=2&q=80",
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: "React Rendezvous",
|
|
49
|
+
artist: "Ethan Byte",
|
|
50
|
+
cover:
|
|
51
|
+
"https://images.unsplash.com/photo-1614113489855-66422ad300a4?w=300&dpr=2&q=80",
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: "Stateful Symphony",
|
|
55
|
+
artist: "Beth Binary",
|
|
56
|
+
cover:
|
|
57
|
+
"https://images.unsplash.com/photo-1446185250204-f94591f7d702?w=300&dpr=2&q=80",
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: "Async Awakenings",
|
|
61
|
+
artist: "Nina Netcode",
|
|
62
|
+
cover:
|
|
63
|
+
"https://images.unsplash.com/photo-1468817814611-b7edf94b5d60?w=300&dpr=2&q=80",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
name: "The Art of Reusability",
|
|
67
|
+
artist: "Lena Logic",
|
|
68
|
+
cover:
|
|
69
|
+
"https://images.unsplash.com/photo-1490300472339-79e4adc6be4a?w=300&dpr=2&q=80",
|
|
70
|
+
},
|
|
71
|
+
]
|