@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.
Files changed (98) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/index.js +1173 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/templates/mobile/base/template/package.json +1 -1
  5. package/dist/templates/web/base/template/package.json +1 -1
  6. package/dist/templates/web/ui-auth/template/package.json +2 -2
  7. package/dist/templates/web/ui-auth-payments/template/package.json +2 -2
  8. package/dist/templates/web/ui-auth-payments-audio/template/package.json +2 -2
  9. package/dist/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +136 -107
  10. package/dist/templates/web/ui-auth-payments-video/template/package.json +2 -2
  11. package/dist/templates/web/ui-only/template/package.json +2 -2
  12. package/dist/templates/web/ui-package-test/template/package.json +2 -2
  13. package/package.json +1 -1
  14. package/src/templates/mobile/base/template/package.json +1 -1
  15. package/src/templates/web/base/template/package.json +1 -1
  16. package/src/templates/web/ui-auth/template/package.json +2 -2
  17. package/src/templates/web/ui-auth-payments/template/package.json +2 -2
  18. package/src/templates/web/ui-auth-payments-audio/template/package.json +2 -2
  19. package/src/templates/web/ui-auth-payments-audio/template/src/app/page.tsx +136 -107
  20. package/src/templates/web/ui-auth-payments-video/template/package.json +2 -2
  21. package/src/templates/web/ui-only/template/package.json +2 -2
  22. package/src/templates/web/ui-package-test/template/package.json +2 -2
  23. package/dist/cli/commands/add.d.ts +0 -6
  24. package/dist/cli/commands/add.d.ts.map +0 -1
  25. package/dist/cli/commands/add.js +0 -39
  26. package/dist/cli/commands/add.js.map +0 -1
  27. package/dist/cli/commands/create.d.ts +0 -28
  28. package/dist/cli/commands/create.d.ts.map +0 -1
  29. package/dist/cli/commands/create.js +0 -130
  30. package/dist/cli/commands/create.js.map +0 -1
  31. package/dist/cli/commands/index.d.ts +0 -4
  32. package/dist/cli/commands/index.d.ts.map +0 -1
  33. package/dist/cli/commands/index.js +0 -20
  34. package/dist/cli/commands/index.js.map +0 -1
  35. package/dist/cli/commands/update.d.ts +0 -6
  36. package/dist/cli/commands/update.d.ts.map +0 -1
  37. package/dist/cli/commands/update.js +0 -68
  38. package/dist/cli/commands/update.js.map +0 -1
  39. package/dist/cli/index.d.ts +0 -4
  40. package/dist/cli/index.d.ts.map +0 -1
  41. package/dist/cli/index.js +0 -59
  42. package/dist/cli/index.js.map +0 -1
  43. package/dist/cli/prompts/index.d.ts +0 -2
  44. package/dist/cli/prompts/index.d.ts.map +0 -1
  45. package/dist/cli/prompts/index.js +0 -18
  46. package/dist/cli/prompts/index.js.map +0 -1
  47. package/dist/cli/prompts/project-setup.d.ts +0 -5
  48. package/dist/cli/prompts/project-setup.d.ts.map +0 -1
  49. package/dist/cli/prompts/project-setup.js +0 -251
  50. package/dist/cli/prompts/project-setup.js.map +0 -1
  51. package/dist/cli/utils/git.d.ts +0 -9
  52. package/dist/cli/utils/git.d.ts.map +0 -1
  53. package/dist/cli/utils/git.js +0 -77
  54. package/dist/cli/utils/git.js.map +0 -1
  55. package/dist/cli/utils/index.d.ts +0 -5
  56. package/dist/cli/utils/index.d.ts.map +0 -1
  57. package/dist/cli/utils/index.js +0 -21
  58. package/dist/cli/utils/index.js.map +0 -1
  59. package/dist/cli/utils/logger.d.ts +0 -16
  60. package/dist/cli/utils/logger.d.ts.map +0 -1
  61. package/dist/cli/utils/logger.js +0 -55
  62. package/dist/cli/utils/logger.js.map +0 -1
  63. package/dist/cli/utils/package-manager.d.ts +0 -8
  64. package/dist/cli/utils/package-manager.d.ts.map +0 -1
  65. package/dist/cli/utils/package-manager.js +0 -92
  66. package/dist/cli/utils/package-manager.js.map +0 -1
  67. package/dist/cli/utils/spinner.d.ts +0 -7
  68. package/dist/cli/utils/spinner.d.ts.map +0 -1
  69. package/dist/cli/utils/spinner.js +0 -48
  70. package/dist/cli/utils/spinner.js.map +0 -1
  71. package/dist/cli/validators/dependencies.d.ts +0 -15
  72. package/dist/cli/validators/dependencies.d.ts.map +0 -1
  73. package/dist/cli/validators/dependencies.js +0 -108
  74. package/dist/cli/validators/dependencies.js.map +0 -1
  75. package/dist/cli/validators/index.d.ts +0 -3
  76. package/dist/cli/validators/index.d.ts.map +0 -1
  77. package/dist/cli/validators/index.js +0 -19
  78. package/dist/cli/validators/index.js.map +0 -1
  79. package/dist/cli/validators/project-name.d.ts +0 -5
  80. package/dist/cli/validators/project-name.d.ts.map +0 -1
  81. package/dist/cli/validators/project-name.js +0 -151
  82. package/dist/cli/validators/project-name.js.map +0 -1
  83. package/dist/generators/file-processor.d.ts +0 -28
  84. package/dist/generators/file-processor.d.ts.map +0 -1
  85. package/dist/generators/file-processor.js +0 -203
  86. package/dist/generators/file-processor.js.map +0 -1
  87. package/dist/generators/index.d.ts +0 -4
  88. package/dist/generators/index.d.ts.map +0 -1
  89. package/dist/generators/index.js +0 -20
  90. package/dist/generators/index.js.map +0 -1
  91. package/dist/generators/package-installer.d.ts +0 -29
  92. package/dist/generators/package-installer.d.ts.map +0 -1
  93. package/dist/generators/package-installer.js +0 -167
  94. package/dist/generators/package-installer.js.map +0 -1
  95. package/dist/generators/template-generator.d.ts +0 -48
  96. package/dist/generators/template-generator.d.ts.map +0 -1
  97. package/dist/generators/template-generator.js +0 -274
  98. 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.16.1 + Auth v1.0.0 + Payments)",
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.16.1",
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.16.1)",
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.16.1",
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.16.1)",
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.16.1",
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@digilogiclabs/create-saas-app",
3
- "version": "1.9.0",
3
+ "version": "1.9.1",
4
4
  "description": "Create modern SaaS applications with Digi Logic Labs packages",
5
5
  "main": "dist/cli/index.js",
6
6
  "bin": {
@@ -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.16.1",
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.16.1",
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.16.1 + Auth v1.0.0)",
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.16.1",
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.16.1 + Auth v1.0.0 + Payments)",
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.16.1",
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.16.1 + Auth v1.0.0 + Payments)",
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.16.1",
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="min-h-screen bg-gradient-to-br from-blue-50 to-indigo-100 dark:from-gray-900 dark:to-gray-800">
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
- <AudioSearch
203
- placeholder="Search for tracks, artists, or albums..."
204
- onSearch={(query) => console.log('Searching:', query)}
205
- showTrending={true}
206
- recentSearches={['Luna Rivers', 'Ambient Flow', 'Electronic']}
207
- className="w-full"
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
- <NowPlayingCard
217
- track={currentTrack || demoPlaylist[0]}
218
- isPlaying={isPlaying}
219
- onPlayPause={() => setIsPlaying(!isPlaying)}
220
- showWaveform={true}
221
- className="mb-8"
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
- <PlaylistCard
227
- title="Today's Top Hits"
228
- description="The most played songs today"
229
- trackCount={50}
230
- coverImage="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgdmlld0JveD0iMCAwIDMwMCAzMDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjMwMCIgaGVpZ2h0PSIzMDAiIGZpbGw9IiNGRjc4NzgiLz48Y2lyY2xlIGN4PSIxNTAiIGN5PSIxNTAiIHI9IjYwIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjMiLz48cGF0aCBkPSJNMTMwIDEyMFYxODBMMTcwIDE1MEwxMzAgMTIwWiIgZmlsbD0id2hpdGUiLz48L3N2Zz4="
231
- onClick={() => console.log('Opening Top Hits playlist')}
232
- />
233
- <PlaylistCard
234
- title="Chill Vibes"
235
- description="Relaxing music for focus and creativity"
236
- trackCount={32}
237
- coverImage="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgdmlld0JveD0iMCAwIDMwMCAzMDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjMwMCIgaGVpZ2h0PSIzMDAiIGZpbGw9IiM2MEE1RkEiLz48Y2lyY2xlIGN4PSIxNTAiIGN5PSIxNTAiIHI9IjYwIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjMiLz48cGF0aCBkPSJNMTMwIDEyMFYxODBMMTcwIDE1MEwxMzAgMTIwWiIgZmlsbD0id2hpdGUiLz48L3N2Zz4="
238
- onClick={() => console.log('Opening Chill Vibes playlist')}
239
- />
240
- <PlaylistCard
241
- title="Electronic Pulse"
242
- description="High-energy electronic and dance music"
243
- trackCount={28}
244
- coverImage="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzAwIiBoZWlnaHQ9IjMwMCIgdmlld0JveD0iMCAwIDMwMCAzMDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHJlY3Qgd2lkdGg9IjMwMCIgaGVpZ2h0PSIzMDAiIGZpbGw9IiM5QzI3QjAiLz48Y2lyY2xlIGN4PSIxNTAiIGN5PSIxNTAiIHI9IjYwIiBmaWxsPSJ3aGl0ZSIgZmlsbC1vcGFjaXR5PSIwLjMiLz48cGF0aCBkPSJNMTMwIDEyMFYxODBMMTcwIDE1MEwxMzAgMTIwWiIgZmlsbD0id2hpdGUiLz48L3N2Zz4="
245
- onClick={() => console.log('Opening Electronic Pulse playlist')}
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
- <TrackList
251
- tracks={demoPlaylist}
252
- currentTrackId={currentTrack?.id}
253
- onTrackSelect={(track) => setCurrentTrack(track)}
254
- onTrackPlay={(track) => {
255
- setCurrentTrack(track)
256
- setIsPlaying(true)
257
- }}
258
- showArtwork={true}
259
- showDuration={true}
260
- showLikeButton={true}
261
- className="mb-8"
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
- <PlaylistSidebar
268
- playlists={[
269
- { id: '1', name: 'Liked Songs', trackCount: 47 },
270
- { id: '2', name: 'Recently Played', trackCount: 23 },
271
- { id: '3', name: 'My Playlist #1', trackCount: 15 },
272
- { id: '4', name: 'Favorites', trackCount: 32 }
273
- ]}
274
- onPlaylistSelect={(playlist) => console.log('Selected playlist:', playlist)}
275
- currentPlaylistId="1"
276
- className="sticky top-4"
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
- <Card className="text-center p-6">
284
- <div className="mx-auto w-12 h-12 bg-blue-100 dark:bg-blue-900 rounded-lg flex items-center justify-center mb-4">
285
- <Zap className="h-6 w-6 text-blue-600 dark:text-blue-400" />
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
- </Card>
317
+ </div>
292
318
 
293
- <Card className="text-center p-6">
294
- <div className="mx-auto w-12 h-12 bg-green-100 dark:bg-green-900 rounded-lg flex items-center justify-center mb-4">
295
- <Shield className="h-6 w-6 text-green-600 dark:text-green-400" />
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
- </Card>
327
+ </div>
302
328
 
303
- <Card className="text-center p-6">
304
- <div className="mx-auto w-12 h-12 bg-purple-100 dark:bg-purple-900 rounded-lg flex items-center justify-center mb-4">
305
- <Rocket className="h-6 w-6 text-purple-600 dark:text-purple-400" />
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
- </Card>
337
+ </div>
312
338
 
313
- <Card className="text-center p-6">
314
- <div className="mx-auto w-12 h-12 bg-orange-100 dark:bg-orange-900 rounded-lg flex items-center justify-center mb-4">
315
- <svg className="h-6 w-6 text-orange-600 dark:text-orange-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
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
- </Card>
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 - The SoundCloud Experience */}
331
- <FixedAudioBar
332
- track={currentTrack || demoPlaylist[0]}
333
- isPlaying={isPlaying}
334
- onPlayPause={() => setIsPlaying(!isPlaying)}
335
- onNext={() => {
336
- const currentIndex = demoPlaylist.findIndex(track => track.id === (currentTrack?.id || demoPlaylist[0].id))
337
- const nextIndex = (currentIndex + 1) % demoPlaylist.length
338
- setCurrentTrack(demoPlaylist[nextIndex])
339
- }}
340
- onPrevious={() => {
341
- const currentIndex = demoPlaylist.findIndex(track => track.id === (currentTrack?.id || demoPlaylist[0].id))
342
- const prevIndex = (currentIndex - 1 + demoPlaylist.length) % demoPlaylist.length
343
- setCurrentTrack(demoPlaylist[prevIndex])
344
- }}
345
- showWaveform={true}
346
- showVolumeControl={true}
347
- showTimeProgress={true}
348
- showLikeButton={true}
349
- showShareButton={true}
350
- showShuffleRepeat={true}
351
- allowMinimize={true}
352
- className="z-50"
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.16.1 + Auth v1.0.0 + Payments)",
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.16.1",
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.16.1)",
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.16.1",
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.16.1)",
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.16.1",
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,6 +0,0 @@
1
- interface AddOptions {
2
- provider?: string;
3
- }
4
- export declare function addFeature(feature: string, _options?: AddOptions): Promise<void>;
5
- export {};
6
- //# sourceMappingURL=add.d.ts.map
@@ -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"}
@@ -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"}