@digilogiclabs/create-saas-app 1.9.0 → 1.9.1
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/dist/.tsbuildinfo +1 -1
- package/dist/index.js +1173 -0
- package/dist/index.js.map +1 -0
- package/dist/templates/mobile/base/template/package.json +1 -1
- package/dist/templates/web/base/template/package.json +1 -1
- package/dist/templates/web/ui-auth/template/package.json +2 -2
- package/dist/templates/web/ui-auth-payments/template/package.json +2 -2
- package/dist/templates/web/ui-auth-payments-audio/template/package.json +2 -2
- package/dist/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +136 -107
- package/dist/templates/web/ui-auth-payments-video/template/package.json +2 -2
- package/dist/templates/web/ui-only/template/package.json +2 -2
- package/dist/templates/web/ui-package-test/template/package.json +2 -2
- package/package.json +1 -1
- package/src/templates/mobile/base/template/package.json +1 -1
- package/src/templates/web/base/template/package.json +1 -1
- package/src/templates/web/ui-auth/template/package.json +2 -2
- package/src/templates/web/ui-auth-payments/template/package.json +2 -2
- package/src/templates/web/ui-auth-payments-audio/template/package.json +2 -2
- package/src/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +136 -107
- package/src/templates/web/ui-auth-payments-video/template/package.json +2 -2
- package/src/templates/web/ui-only/template/package.json +2 -2
- package/src/templates/web/ui-package-test/template/package.json +2 -2
- package/dist/cli/commands/add.d.ts +0 -6
- package/dist/cli/commands/add.d.ts.map +0 -1
- package/dist/cli/commands/add.js +0 -39
- package/dist/cli/commands/add.js.map +0 -1
- package/dist/cli/commands/create.d.ts +0 -28
- package/dist/cli/commands/create.d.ts.map +0 -1
- package/dist/cli/commands/create.js +0 -130
- package/dist/cli/commands/create.js.map +0 -1
- package/dist/cli/commands/index.d.ts +0 -4
- package/dist/cli/commands/index.d.ts.map +0 -1
- package/dist/cli/commands/index.js +0 -20
- package/dist/cli/commands/index.js.map +0 -1
- package/dist/cli/commands/update.d.ts +0 -6
- package/dist/cli/commands/update.d.ts.map +0 -1
- package/dist/cli/commands/update.js +0 -68
- package/dist/cli/commands/update.js.map +0 -1
- package/dist/cli/index.d.ts +0 -4
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js +0 -59
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/prompts/index.d.ts +0 -2
- package/dist/cli/prompts/index.d.ts.map +0 -1
- package/dist/cli/prompts/index.js +0 -18
- package/dist/cli/prompts/index.js.map +0 -1
- package/dist/cli/prompts/project-setup.d.ts +0 -5
- package/dist/cli/prompts/project-setup.d.ts.map +0 -1
- package/dist/cli/prompts/project-setup.js +0 -251
- package/dist/cli/prompts/project-setup.js.map +0 -1
- package/dist/cli/utils/git.d.ts +0 -9
- package/dist/cli/utils/git.d.ts.map +0 -1
- package/dist/cli/utils/git.js +0 -77
- package/dist/cli/utils/git.js.map +0 -1
- package/dist/cli/utils/index.d.ts +0 -5
- package/dist/cli/utils/index.d.ts.map +0 -1
- package/dist/cli/utils/index.js +0 -21
- package/dist/cli/utils/index.js.map +0 -1
- package/dist/cli/utils/logger.d.ts +0 -16
- package/dist/cli/utils/logger.d.ts.map +0 -1
- package/dist/cli/utils/logger.js +0 -55
- package/dist/cli/utils/logger.js.map +0 -1
- package/dist/cli/utils/package-manager.d.ts +0 -8
- package/dist/cli/utils/package-manager.d.ts.map +0 -1
- package/dist/cli/utils/package-manager.js +0 -92
- package/dist/cli/utils/package-manager.js.map +0 -1
- package/dist/cli/utils/spinner.d.ts +0 -7
- package/dist/cli/utils/spinner.d.ts.map +0 -1
- package/dist/cli/utils/spinner.js +0 -48
- package/dist/cli/utils/spinner.js.map +0 -1
- package/dist/cli/validators/dependencies.d.ts +0 -15
- package/dist/cli/validators/dependencies.d.ts.map +0 -1
- package/dist/cli/validators/dependencies.js +0 -108
- package/dist/cli/validators/dependencies.js.map +0 -1
- package/dist/cli/validators/index.d.ts +0 -3
- package/dist/cli/validators/index.d.ts.map +0 -1
- package/dist/cli/validators/index.js +0 -19
- package/dist/cli/validators/index.js.map +0 -1
- package/dist/cli/validators/project-name.d.ts +0 -5
- package/dist/cli/validators/project-name.d.ts.map +0 -1
- package/dist/cli/validators/project-name.js +0 -151
- package/dist/cli/validators/project-name.js.map +0 -1
- package/dist/generators/file-processor.d.ts +0 -28
- package/dist/generators/file-processor.d.ts.map +0 -1
- package/dist/generators/file-processor.js +0 -203
- package/dist/generators/file-processor.js.map +0 -1
- package/dist/generators/index.d.ts +0 -4
- package/dist/generators/index.d.ts.map +0 -1
- package/dist/generators/index.js +0 -20
- package/dist/generators/index.js.map +0 -1
- package/dist/generators/package-installer.d.ts +0 -29
- package/dist/generators/package-installer.d.ts.map +0 -1
- package/dist/generators/package-installer.js +0 -167
- package/dist/generators/package-installer.js.map +0 -1
- package/dist/generators/template-generator.d.ts +0 -48
- package/dist/generators/template-generator.d.ts.map +0 -1
- package/dist/generators/template-generator.js +0 -274
- package/dist/generators/template-generator.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "{{packageName}}",
|
|
3
3
|
"version": "0.1.0",
|
|
4
|
-
"description": "{{description}} - Professional Video Platform (with UI Package v0.
|
|
4
|
+
"description": "{{description}} - Professional Video Platform (with UI Package v0.18.0 + Auth v1.0.0 + Payments)",
|
|
5
5
|
"private": true,
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "next dev",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"next": "^15.0.0",
|
|
18
18
|
"react": "^19.0.0",
|
|
19
19
|
"react-dom": "^19.0.0",
|
|
20
|
-
"@digilogiclabs/saas-factory-ui": "^0.
|
|
20
|
+
"@digilogiclabs/saas-factory-ui": "^0.18.0",
|
|
21
21
|
"@digilogiclabs/saas-factory-auth": "^1.0.0",
|
|
22
22
|
"@digilogiclabs/saas-factory-payments": "^1.0.0",
|
|
23
23
|
"stripe": "^14.0.0",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "{{packageName}}",
|
|
3
3
|
"version": "0.1.0",
|
|
4
|
-
"description": "{{description}} (with UI Package v0.
|
|
4
|
+
"description": "{{description}} (with UI Package v0.18.0)",
|
|
5
5
|
"private": true,
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "next dev",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"next": "^15.0.0",
|
|
18
18
|
"react": "^19.0.0",
|
|
19
19
|
"react-dom": "^19.0.0",
|
|
20
|
-
"@digilogiclabs/saas-factory-ui": "^0.
|
|
20
|
+
"@digilogiclabs/saas-factory-ui": "^0.18.0",
|
|
21
21
|
"tailwindcss": "^3.3.0",
|
|
22
22
|
"autoprefixer": "^10.4.16",
|
|
23
23
|
"postcss": "^8.4.31",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "{{packageName}}",
|
|
3
3
|
"version": "0.1.0",
|
|
4
|
-
"description": "{{description}} (with UI Package v0.
|
|
4
|
+
"description": "{{description}} (with UI Package v0.18.0)",
|
|
5
5
|
"private": true,
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "next dev",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"next": "15.4.5",
|
|
15
15
|
"react": "19.1.0",
|
|
16
16
|
"react-dom": "19.1.0",
|
|
17
|
-
"@digilogiclabs/saas-factory-ui": "^0.
|
|
17
|
+
"@digilogiclabs/saas-factory-ui": "^0.18.0",
|
|
18
18
|
"tailwindcss": "^3.4.0",
|
|
19
19
|
"autoprefixer": "^10.4.16",
|
|
20
20
|
"postcss": "^8.4.31",
|
package/package.json
CHANGED
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"react-native-screens": "~3.22.0",
|
|
23
23
|
"react-native-safe-area-context": "4.6.3",
|
|
24
24
|
"react-native-gesture-handler": "~2.12.0",
|
|
25
|
-
"@digilogiclabs/saas-factory-ui": "^0.
|
|
25
|
+
"@digilogiclabs/saas-factory-ui": "^0.18.0",
|
|
26
26
|
"@digilogiclabs/saas-factory-auth": "^0.4.3",
|
|
27
27
|
"@digilogiclabs/saas-factory-payments": "^0.2.0",
|
|
28
28
|
"firebase": "^10.0.0",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"next": "^15.0.0",
|
|
18
18
|
"react": "^19.0.0",
|
|
19
19
|
"react-dom": "^19.0.0",
|
|
20
|
-
"@digilogiclabs/saas-factory-ui": "^0.
|
|
20
|
+
"@digilogiclabs/saas-factory-ui": "^0.18.0",
|
|
21
21
|
"@digilogiclabs/saas-factory-auth": "^0.4.3",
|
|
22
22
|
"@digilogiclabs/saas-factory-payments": "^0.2.0",
|
|
23
23
|
"tailwindcss": "^3.3.0",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "{{packageName}}",
|
|
3
3
|
"version": "0.1.0",
|
|
4
|
-
"description": "{{description}} (with UI Package v0.
|
|
4
|
+
"description": "{{description}} (with UI Package v0.18.0 + Auth v1.0.0)",
|
|
5
5
|
"private": true,
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "next dev",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"next": "^15.0.0",
|
|
18
18
|
"react": "^19.0.0",
|
|
19
19
|
"react-dom": "^19.0.0",
|
|
20
|
-
"@digilogiclabs/saas-factory-ui": "^0.
|
|
20
|
+
"@digilogiclabs/saas-factory-ui": "^0.18.0",
|
|
21
21
|
"@digilogiclabs/saas-factory-auth": "^1.0.0",
|
|
22
22
|
"tailwindcss": "^3.3.0",
|
|
23
23
|
"autoprefixer": "^10.4.16",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "{{packageName}}",
|
|
3
3
|
"version": "0.1.0",
|
|
4
|
-
"description": "{{description}} (with UI Package v0.
|
|
4
|
+
"description": "{{description}} (with UI Package v0.18.0 + Auth v1.0.0 + Payments)",
|
|
5
5
|
"private": true,
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "next dev",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"next": "^15.0.0",
|
|
18
18
|
"react": "^19.0.0",
|
|
19
19
|
"react-dom": "^19.0.0",
|
|
20
|
-
"@digilogiclabs/saas-factory-ui": "^0.
|
|
20
|
+
"@digilogiclabs/saas-factory-ui": "^0.18.0",
|
|
21
21
|
"@digilogiclabs/saas-factory-auth": "^1.0.0",
|
|
22
22
|
"@digilogiclabs/saas-factory-payments": "^1.0.0",
|
|
23
23
|
"stripe": "^14.0.0",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "{{packageName}}",
|
|
3
3
|
"version": "0.1.0",
|
|
4
|
-
"description": "{{description}} - Professional Audio Platform (with UI Package v0.
|
|
4
|
+
"description": "{{description}} - Professional Audio Platform (with UI Package v0.18.0 + Auth v1.0.0 + Payments)",
|
|
5
5
|
"private": true,
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "next dev",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"next": "^15.0.0",
|
|
18
18
|
"react": "^19.0.0",
|
|
19
19
|
"react-dom": "^19.0.0",
|
|
20
|
-
"@digilogiclabs/saas-factory-ui": "^0.
|
|
20
|
+
"@digilogiclabs/saas-factory-ui": "^0.18.0",
|
|
21
21
|
"@digilogiclabs/saas-factory-auth": "^1.0.0",
|
|
22
22
|
"@digilogiclabs/saas-factory-payments": "^1.0.0",
|
|
23
23
|
"stripe": "^14.0.0",
|
|
@@ -27,7 +27,9 @@ import {
|
|
|
27
27
|
ShareButton,
|
|
28
28
|
PlaylistSidebar,
|
|
29
29
|
AudioSearch,
|
|
30
|
-
NowPlayingCard
|
|
30
|
+
NowPlayingCard,
|
|
31
|
+
useAnimationTokens,
|
|
32
|
+
useGlassmorphism
|
|
31
33
|
} from '@digilogiclabs/saas-factory-ui'
|
|
32
34
|
import { ArrowRight, Zap, Shield, Rocket, CheckCircle, LogOut, User, Music, Wifi, WifiOff } from 'lucide-react'
|
|
33
35
|
import { useAuth } from '@digilogiclabs/saas-factory-auth'
|
|
@@ -43,6 +45,10 @@ export default function Home() {
|
|
|
43
45
|
const [isPlaying, setIsPlaying] = useState(false)
|
|
44
46
|
const [showPlaylistSidebar, setShowPlaylistSidebar] = useState(false)
|
|
45
47
|
|
|
48
|
+
// Modern design tokens
|
|
49
|
+
const animations = useAnimationTokens()
|
|
50
|
+
const glass = useGlassmorphism()
|
|
51
|
+
|
|
46
52
|
const projectName = "{{titleCaseName}}"
|
|
47
53
|
const projectDescription = "{{description}}"
|
|
48
54
|
|
|
@@ -145,7 +151,10 @@ export default function Home() {
|
|
|
145
151
|
hapticOnTrigger={true}
|
|
146
152
|
networkAware={true}
|
|
147
153
|
>
|
|
148
|
-
<main className=
|
|
154
|
+
<main className={`min-h-screen ${glass.background.primary} relative overflow-hidden`}>
|
|
155
|
+
{/* Glassmorphism background overlay */}
|
|
156
|
+
<div className={`absolute inset-0 ${glass.background.accent} opacity-30`} />
|
|
157
|
+
<div className="relative z-10">
|
|
149
158
|
<MobileContainer className="py-8">
|
|
150
159
|
{/* Simple Auth Status */}
|
|
151
160
|
{user && (
|
|
@@ -197,122 +206,139 @@ export default function Home() {
|
|
|
197
206
|
className="text-center mb-8"
|
|
198
207
|
/>
|
|
199
208
|
|
|
200
|
-
{/* Search Bar */}
|
|
209
|
+
{/* Search Bar with Glassmorphism */}
|
|
201
210
|
<div className="max-w-2xl mx-auto mb-12">
|
|
202
|
-
<
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
211
|
+
<div className={`${glass.card} ${glass.border} p-1 rounded-2xl ${animations.hover.lift}`}>
|
|
212
|
+
<AudioSearch
|
|
213
|
+
placeholder="Search for tracks, artists, or albums..."
|
|
214
|
+
onSearch={(query) => console.log('Searching:', query)}
|
|
215
|
+
showTrending={true}
|
|
216
|
+
recentSearches={['Luna Rivers', 'Ambient Flow', 'Electronic']}
|
|
217
|
+
className="w-full bg-transparent border-none"
|
|
218
|
+
/>
|
|
219
|
+
</div>
|
|
209
220
|
</div>
|
|
210
221
|
|
|
211
222
|
{/* Main Content Area */}
|
|
212
223
|
<div className="grid grid-cols-1 lg:grid-cols-4 gap-8 mb-20">
|
|
213
224
|
{/* Main Content */}
|
|
214
225
|
<div className="lg:col-span-3 space-y-8">
|
|
215
|
-
{/* Now Playing Card */}
|
|
216
|
-
<
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
226
|
+
{/* Now Playing Card with Enhanced Glassmorphism */}
|
|
227
|
+
<div className={`${glass.card} ${glass.border} rounded-3xl p-6 mb-8 ${animations.hover.lift} ${animations.transition.smooth}`}>
|
|
228
|
+
<NowPlayingCard
|
|
229
|
+
track={currentTrack || demoPlaylist[0]}
|
|
230
|
+
isPlaying={isPlaying}
|
|
231
|
+
onPlayPause={() => setIsPlaying(!isPlaying)}
|
|
232
|
+
showWaveform={true}
|
|
233
|
+
className="bg-transparent"
|
|
234
|
+
/>
|
|
235
|
+
</div>
|
|
223
236
|
|
|
224
|
-
{/* Featured Playlists */}
|
|
237
|
+
{/* Featured Playlists with Staggered Animation */}
|
|
225
238
|
<div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 mb-8">
|
|
226
|
-
<
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
239
|
+
<div className={`${glass.card} ${glass.border} rounded-2xl overflow-hidden ${animations.hover.scale} ${animations.transition.smooth} ${animations.delay.short}`}>
|
|
240
|
+
<PlaylistCard
|
|
241
|
+
title="Today's Top Hits"
|
|
242
|
+
description="The most played songs today"
|
|
243
|
+
trackCount={50}
|
|
244
|
+
coverImage="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgdmlld0JveD0iMCAwIDMwMCAzMDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjMwMCIgaGVpZ2h0PSIzMDAiIGZpbGw9IiNGRjc4NzgiLz48Y2lyY2xlIGN4PSIxNTAiIGN5PSIxNTAiIHI9IjYwIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjMiLz48cGF0aCBkPSJNMTMwIDEyMFYxODBMMTcwIDE1MEwxMzAgMTIwWiIgZmlsbD0id2hpdGUiLz48L3N2Zz4="
|
|
245
|
+
onClick={() => console.log('Opening Top Hits playlist')}
|
|
246
|
+
className="bg-transparent border-none"
|
|
247
|
+
/>
|
|
248
|
+
</div>
|
|
249
|
+
<div className={`${glass.card} ${glass.border} rounded-2xl overflow-hidden ${animations.hover.scale} ${animations.transition.smooth} ${animations.delay.medium}`}>
|
|
250
|
+
<PlaylistCard
|
|
251
|
+
title="Chill Vibes"
|
|
252
|
+
description="Relaxing music for focus and creativity"
|
|
253
|
+
trackCount={32}
|
|
254
|
+
coverImage="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgdmlld0JveD0iMCAwIDMwMCAzMDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjMwMCIgaGVpZ2h0PSIzMDAiIGZpbGw9IiM2MEE1RkEiLz48Y2lyY2xlIGN4PSIxNTAiIGN5PSIxNTAiIHI9IjYwIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjMiLz48cGF0aCBkPSJNMTMwIDEyMFYxODBMMTcwIDE1MEwxMzAgMTIwWiIgZmlsbD0id2hpdGUiLz48L3N2Zz4="
|
|
255
|
+
onClick={() => console.log('Opening Chill Vibes playlist')}
|
|
256
|
+
className="bg-transparent border-none"
|
|
257
|
+
/>
|
|
258
|
+
</div>
|
|
259
|
+
<div className={`${glass.card} ${glass.border} rounded-2xl overflow-hidden ${animations.hover.scale} ${animations.transition.smooth} ${animations.delay.long}`}>
|
|
260
|
+
<PlaylistCard
|
|
261
|
+
title="Electronic Pulse"
|
|
262
|
+
description="High-energy electronic and dance music"
|
|
263
|
+
trackCount={28}
|
|
264
|
+
coverImage="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgdmlld0JveD0iMCAwIDMwMCAzMDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjMwMCIgaGVpZ2h0PSIzMDAiIGZpbGw9IiM5QzI3QjAiLz48Y2lyY2xlIGN4PSIxNTAiIGN5PSIxNTAiIHI9IjYwIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjMiLz48cGF0aCBkPSJNMTMwIDEyMFYxODBMMTcwIDE1MEwxMzAgMTIwWiIgZmlsbD0id2hpdGUiLz48L3N2Zz4="
|
|
265
|
+
onClick={() => console.log('Opening Electronic Pulse playlist')}
|
|
266
|
+
className="bg-transparent border-none"
|
|
267
|
+
/>
|
|
268
|
+
</div>
|
|
247
269
|
</div>
|
|
248
270
|
|
|
249
|
-
{/* Track List */}
|
|
250
|
-
<
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
271
|
+
{/* Track List with Glassmorphism */}
|
|
272
|
+
<div className={`${glass.card} ${glass.border} rounded-2xl overflow-hidden ${animations.transition.smooth}`}>
|
|
273
|
+
<TrackList
|
|
274
|
+
tracks={demoPlaylist}
|
|
275
|
+
currentTrackId={currentTrack?.id}
|
|
276
|
+
onTrackSelect={(track) => setCurrentTrack(track)}
|
|
277
|
+
onTrackPlay={(track) => {
|
|
278
|
+
setCurrentTrack(track)
|
|
279
|
+
setIsPlaying(true)
|
|
280
|
+
}}
|
|
281
|
+
showArtwork={true}
|
|
282
|
+
showDuration={true}
|
|
283
|
+
showLikeButton={true}
|
|
284
|
+
className="mb-8 bg-transparent"
|
|
285
|
+
/>
|
|
286
|
+
</div>
|
|
263
287
|
</div>
|
|
264
288
|
|
|
265
|
-
{/* Sidebar */}
|
|
289
|
+
{/* Sidebar with Glassmorphism */}
|
|
266
290
|
<div className="lg:col-span-1">
|
|
267
|
-
<
|
|
268
|
-
|
|
269
|
-
{
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
291
|
+
<div className={`${glass.card} ${glass.border} rounded-2xl overflow-hidden ${animations.hover.lift} ${animations.transition.smooth}`}>
|
|
292
|
+
<PlaylistSidebar
|
|
293
|
+
playlists={[
|
|
294
|
+
{ id: '1', name: 'Liked Songs', trackCount: 47 },
|
|
295
|
+
{ id: '2', name: 'Recently Played', trackCount: 23 },
|
|
296
|
+
{ id: '3', name: 'My Playlist #1', trackCount: 15 },
|
|
297
|
+
{ id: '4', name: 'Favorites', trackCount: 32 }
|
|
298
|
+
]}
|
|
299
|
+
onPlaylistSelect={(playlist) => console.log('Selected playlist:', playlist)}
|
|
300
|
+
currentPlaylistId="1"
|
|
301
|
+
className="sticky top-4 bg-transparent"
|
|
302
|
+
/>
|
|
303
|
+
</div>
|
|
278
304
|
</div>
|
|
279
305
|
</div>
|
|
280
306
|
|
|
281
|
-
{/* Features Overview */}
|
|
307
|
+
{/* Features Overview with Enhanced Glassmorphism */}
|
|
282
308
|
<ResponsiveGrid columns={gridConfig.columns_1_sm2_md4} gap="lg" className="mb-16">
|
|
283
|
-
<
|
|
284
|
-
<div className=
|
|
285
|
-
<Zap className="h-6 w-6 text-blue-
|
|
309
|
+
<div className={`${glass.card} ${glass.border} text-center p-6 rounded-2xl ${animations.hover.scale} ${animations.transition.smooth} ${animations.delay.short}`}>
|
|
310
|
+
<div className={`mx-auto w-12 h-12 ${glass.accent} rounded-xl flex items-center justify-center mb-4 ${animations.hover.glow}`}>
|
|
311
|
+
<Zap className="h-6 w-6 text-blue-400" />
|
|
286
312
|
</div>
|
|
287
313
|
<h3 className="text-lg font-semibold mb-2">High-Quality Streaming</h3>
|
|
288
314
|
<p className="text-sm text-gray-600 dark:text-gray-300">
|
|
289
315
|
Lossless audio with adaptive bitrate for the best experience
|
|
290
316
|
</p>
|
|
291
|
-
</
|
|
317
|
+
</div>
|
|
292
318
|
|
|
293
|
-
<
|
|
294
|
-
<div className=
|
|
295
|
-
<Shield className="h-6 w-6 text-green-
|
|
319
|
+
<div className={`${glass.card} ${glass.border} text-center p-6 rounded-2xl ${animations.hover.scale} ${animations.transition.smooth} ${animations.delay.medium}`}>
|
|
320
|
+
<div className={`mx-auto w-12 h-12 ${glass.accent} rounded-xl flex items-center justify-center mb-4 ${animations.hover.glow}`}>
|
|
321
|
+
<Shield className="h-6 w-6 text-green-400" />
|
|
296
322
|
</div>
|
|
297
323
|
<h3 className="text-lg font-semibold mb-2">Secure & Private</h3>
|
|
298
324
|
<p className="text-sm text-gray-600 dark:text-gray-300">
|
|
299
325
|
Your listening habits and data are always protected
|
|
300
326
|
</p>
|
|
301
|
-
</
|
|
327
|
+
</div>
|
|
302
328
|
|
|
303
|
-
<
|
|
304
|
-
<div className=
|
|
305
|
-
<Rocket className="h-6 w-6 text-purple-
|
|
329
|
+
<div className={`${glass.card} ${glass.border} text-center p-6 rounded-2xl ${animations.hover.scale} ${animations.transition.smooth} ${animations.delay.long}`}>
|
|
330
|
+
<div className={`mx-auto w-12 h-12 ${glass.accent} rounded-xl flex items-center justify-center mb-4 ${animations.hover.glow}`}>
|
|
331
|
+
<Rocket className="h-6 w-6 text-purple-400" />
|
|
306
332
|
</div>
|
|
307
333
|
<h3 className="text-lg font-semibold mb-2">Offline Support</h3>
|
|
308
334
|
<p className="text-sm text-gray-600 dark:text-gray-300">
|
|
309
335
|
Download your favorites for offline listening anywhere
|
|
310
336
|
</p>
|
|
311
|
-
</
|
|
337
|
+
</div>
|
|
312
338
|
|
|
313
|
-
<
|
|
314
|
-
<div className=
|
|
315
|
-
<svg className="h-6 w-6 text-orange-
|
|
339
|
+
<div className={`${glass.card} ${glass.border} text-center p-6 rounded-2xl ${animations.hover.scale} ${animations.transition.smooth} ${animations.delay.extra}`}>
|
|
340
|
+
<div className={`mx-auto w-12 h-12 ${glass.accent} rounded-xl flex items-center justify-center mb-4 ${animations.hover.glow}`}>
|
|
341
|
+
<svg className="h-6 w-6 text-orange-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
316
342
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z" />
|
|
317
343
|
</svg>
|
|
318
344
|
</div>
|
|
@@ -320,37 +346,40 @@ export default function Home() {
|
|
|
320
346
|
<p className="text-sm text-gray-600 dark:text-gray-300">
|
|
321
347
|
Flexible subscription options for every music lover
|
|
322
348
|
</p>
|
|
323
|
-
</
|
|
349
|
+
</div>
|
|
324
350
|
</ResponsiveGrid>
|
|
325
351
|
</MobileContainer>
|
|
352
|
+
</div>
|
|
326
353
|
</main>
|
|
327
354
|
</PullToRefresh>
|
|
328
355
|
</OfflineWrapper>
|
|
329
356
|
|
|
330
|
-
{/* Fixed Audio Player Bar
|
|
331
|
-
<
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
357
|
+
{/* Fixed Audio Player Bar with Enhanced Glassmorphism */}
|
|
358
|
+
<div className={`fixed bottom-0 left-0 right-0 z-50 ${glass.card} ${glass.border} border-t backdrop-blur-xl`}>
|
|
359
|
+
<FixedAudioBar
|
|
360
|
+
track={currentTrack || demoPlaylist[0]}
|
|
361
|
+
isPlaying={isPlaying}
|
|
362
|
+
onPlayPause={() => setIsPlaying(!isPlaying)}
|
|
363
|
+
onNext={() => {
|
|
364
|
+
const currentIndex = demoPlaylist.findIndex(track => track.id === (currentTrack?.id || demoPlaylist[0].id))
|
|
365
|
+
const nextIndex = (currentIndex + 1) % demoPlaylist.length
|
|
366
|
+
setCurrentTrack(demoPlaylist[nextIndex])
|
|
367
|
+
}}
|
|
368
|
+
onPrevious={() => {
|
|
369
|
+
const currentIndex = demoPlaylist.findIndex(track => track.id === (currentTrack?.id || demoPlaylist[0].id))
|
|
370
|
+
const prevIndex = (currentIndex - 1 + demoPlaylist.length) % demoPlaylist.length
|
|
371
|
+
setCurrentTrack(demoPlaylist[prevIndex])
|
|
372
|
+
}}
|
|
373
|
+
showWaveform={true}
|
|
374
|
+
showVolumeControl={true}
|
|
375
|
+
showTimeProgress={true}
|
|
376
|
+
showLikeButton={true}
|
|
377
|
+
showShareButton={true}
|
|
378
|
+
showShuffleRepeat={true}
|
|
379
|
+
allowMinimize={true}
|
|
380
|
+
className="bg-transparent"
|
|
381
|
+
/>
|
|
382
|
+
</div>
|
|
354
383
|
</PageTransition>
|
|
355
384
|
)
|
|
356
385
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "{{packageName}}",
|
|
3
3
|
"version": "0.1.0",
|
|
4
|
-
"description": "{{description}} - Professional Video Platform (with UI Package v0.
|
|
4
|
+
"description": "{{description}} - Professional Video Platform (with UI Package v0.18.0 + Auth v1.0.0 + Payments)",
|
|
5
5
|
"private": true,
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "next dev",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"next": "^15.0.0",
|
|
18
18
|
"react": "^19.0.0",
|
|
19
19
|
"react-dom": "^19.0.0",
|
|
20
|
-
"@digilogiclabs/saas-factory-ui": "^0.
|
|
20
|
+
"@digilogiclabs/saas-factory-ui": "^0.18.0",
|
|
21
21
|
"@digilogiclabs/saas-factory-auth": "^1.0.0",
|
|
22
22
|
"@digilogiclabs/saas-factory-payments": "^1.0.0",
|
|
23
23
|
"stripe": "^14.0.0",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "{{packageName}}",
|
|
3
3
|
"version": "0.1.0",
|
|
4
|
-
"description": "{{description}} (with UI Package v0.
|
|
4
|
+
"description": "{{description}} (with UI Package v0.18.0)",
|
|
5
5
|
"private": true,
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "next dev",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"next": "^15.0.0",
|
|
18
18
|
"react": "^19.0.0",
|
|
19
19
|
"react-dom": "^19.0.0",
|
|
20
|
-
"@digilogiclabs/saas-factory-ui": "^0.
|
|
20
|
+
"@digilogiclabs/saas-factory-ui": "^0.18.0",
|
|
21
21
|
"tailwindcss": "^3.3.0",
|
|
22
22
|
"autoprefixer": "^10.4.16",
|
|
23
23
|
"postcss": "^8.4.31",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "{{packageName}}",
|
|
3
3
|
"version": "0.1.0",
|
|
4
|
-
"description": "{{description}} (with UI Package v0.
|
|
4
|
+
"description": "{{description}} (with UI Package v0.18.0)",
|
|
5
5
|
"private": true,
|
|
6
6
|
"scripts": {
|
|
7
7
|
"dev": "next dev",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"next": "15.4.5",
|
|
15
15
|
"react": "19.1.0",
|
|
16
16
|
"react-dom": "19.1.0",
|
|
17
|
-
"@digilogiclabs/saas-factory-ui": "^0.
|
|
17
|
+
"@digilogiclabs/saas-factory-ui": "^0.18.0",
|
|
18
18
|
"tailwindcss": "^3.4.0",
|
|
19
19
|
"autoprefixer": "^10.4.16",
|
|
20
20
|
"postcss": "^8.4.31",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":"AAGA,UAAU,UAAU;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,UAAe,iBAqC1E"}
|
package/dist/cli/commands/add.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.addFeature = addFeature;
|
|
4
|
-
const logger_1 = require("../utils/logger");
|
|
5
|
-
const spinner_1 = require("../utils/spinner");
|
|
6
|
-
async function addFeature(feature, _options = {}) {
|
|
7
|
-
try {
|
|
8
|
-
logger_1.logger.title(`Adding ${feature} feature`);
|
|
9
|
-
const validFeatures = [
|
|
10
|
-
'auth',
|
|
11
|
-
'billing',
|
|
12
|
-
'analytics',
|
|
13
|
-
'teams',
|
|
14
|
-
'notifications',
|
|
15
|
-
'admin',
|
|
16
|
-
'api',
|
|
17
|
-
'docs',
|
|
18
|
-
];
|
|
19
|
-
if (!validFeatures.includes(feature)) {
|
|
20
|
-
logger_1.logger.error(`Invalid feature: ${feature}`);
|
|
21
|
-
logger_1.logger.info('Available features:');
|
|
22
|
-
logger_1.logger.list(validFeatures);
|
|
23
|
-
process.exit(1);
|
|
24
|
-
}
|
|
25
|
-
const addSpinner = (0, spinner_1.spinner)(`Adding ${feature} feature...`);
|
|
26
|
-
// Simulate feature addition (placeholder for now)
|
|
27
|
-
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
28
|
-
addSpinner.succeed(`${feature} feature added successfully`);
|
|
29
|
-
logger_1.logger.newLine();
|
|
30
|
-
logger_1.logger.success('Feature added successfully!');
|
|
31
|
-
logger_1.logger.info("Don't forget to update your environment variables if needed.");
|
|
32
|
-
}
|
|
33
|
-
catch (error) {
|
|
34
|
-
logger_1.logger.error('Failed to add feature:');
|
|
35
|
-
logger_1.logger.error(error instanceof Error ? error.message : String(error));
|
|
36
|
-
process.exit(1);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=add.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/cli/commands/add.ts"],"names":[],"mappings":";;AAOA,gCAqCC;AA5CD,4CAAyC;AACzC,8CAA2C;AAMpC,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,WAAuB,EAAE;IACzE,IAAI,CAAC;QACH,eAAM,CAAC,KAAK,CAAC,UAAU,OAAO,UAAU,CAAC,CAAC;QAE1C,MAAM,aAAa,GAAG;YACpB,MAAM;YACN,SAAS;YACT,WAAW;YACX,OAAO;YACP,eAAe;YACf,OAAO;YACP,KAAK;YACL,MAAM;SACP,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,eAAM,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC5C,eAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACnC,eAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,UAAU,GAAG,IAAA,iBAAO,EAAC,UAAU,OAAO,aAAa,CAAC,CAAC;QAE3D,kDAAkD;QAClD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;QAE1D,UAAU,CAAC,OAAO,CAAC,GAAG,OAAO,6BAA6B,CAAC,CAAC;QAE5D,eAAM,CAAC,OAAO,EAAE,CAAC;QACjB,eAAM,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;QAC9C,eAAM,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;IAC9E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACvC,eAAM,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
interface CreateOptions {
|
|
2
|
-
auth?: string;
|
|
3
|
-
database?: string;
|
|
4
|
-
theme?: string;
|
|
5
|
-
themeColor?: string;
|
|
6
|
-
defaultTheme?: string;
|
|
7
|
-
install?: boolean;
|
|
8
|
-
git?: boolean;
|
|
9
|
-
yes?: boolean;
|
|
10
|
-
}
|
|
11
|
-
export interface ProjectConfig {
|
|
12
|
-
platform: 'web' | 'mobile' | 'both';
|
|
13
|
-
template: string;
|
|
14
|
-
name: string;
|
|
15
|
-
auth: 'firebase' | 'supabase';
|
|
16
|
-
database: 'supabase' | 'firebase';
|
|
17
|
-
theme: 'default' | 'corporate' | 'startup';
|
|
18
|
-
themeColor: 'blue' | 'green' | 'purple' | 'orange' | 'red' | 'slate';
|
|
19
|
-
defaultTheme: 'light' | 'dark' | 'system';
|
|
20
|
-
install: boolean;
|
|
21
|
-
git: boolean;
|
|
22
|
-
}
|
|
23
|
-
export declare function createProject(platform: string, template?: string, name?: string, options?: CreateOptions & {
|
|
24
|
-
themeColor?: string;
|
|
25
|
-
defaultTheme?: string;
|
|
26
|
-
}): Promise<void>;
|
|
27
|
-
export {};
|
|
28
|
-
//# sourceMappingURL=create.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/create.ts"],"names":[],"mappings":"AAUA,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAC9B,QAAQ,EAAE,UAAU,GAAG,UAAU,CAAC;IAClC,KAAK,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC3C,UAAU,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;IACrE,YAAY,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;CACd;AAED,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,GAAE,aAAa,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,iBA+H7E"}
|