popsite-ui 1.0.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.
Files changed (87) hide show
  1. package/App.jsx +95 -0
  2. package/README.md +92 -0
  3. package/components/layout/PortalHeader.jsx +18 -0
  4. package/components/layout/SystemSidebar.jsx +33 -0
  5. package/components/modules/AnalyticsDashboardModule.jsx +17 -0
  6. package/components/modules/ChatMessagingModule.jsx +17 -0
  7. package/components/modules/EcommerceStoreModule.jsx +17 -0
  8. package/components/modules/EventTicketBookingModule.jsx +17 -0
  9. package/components/modules/FlightBookingModule.jsx +17 -0
  10. package/components/modules/FoodOrderingModule.jsx +17 -0
  11. package/components/modules/HospitalAppointmentModule.jsx +17 -0
  12. package/components/modules/HotelBookingModule.jsx +17 -0
  13. package/components/modules/InvoiceBillingModule.jsx +17 -0
  14. package/components/modules/LibraryManagementModule.jsx +17 -0
  15. package/components/modules/ModuleContentDeck.jsx +44 -0
  16. package/components/modules/MovieBookingModule.jsx +17 -0
  17. package/components/modules/QuizExamModule.jsx +17 -0
  18. package/components/modules/StudentRegistrationModule.jsx +17 -0
  19. package/components/modules/SystemModuleRenderer.jsx +19 -0
  20. package/components/modules/SystemModuleTemplate.jsx +62 -0
  21. package/components/modules/SystemVisualWidget.jsx +123 -0
  22. package/components/modules/moduleContentMap.js +238 -0
  23. package/components/modules/moduleEnhancementsMap.js +439 -0
  24. package/components/modules/systemModuleMap.js +31 -0
  25. package/components/system/DynamicSystemForm.jsx +154 -0
  26. package/components/system/SystemHero.jsx +21 -0
  27. package/components/system/SystemSummaryCard.jsx +53 -0
  28. package/data/systems/analyticsDashboard.js +48 -0
  29. package/data/systems/chatMessaging.js +43 -0
  30. package/data/systems/ecommerceStore.js +50 -0
  31. package/data/systems/eventTicketBooking.js +50 -0
  32. package/data/systems/flightBooking.js +38 -0
  33. package/data/systems/foodOrdering.js +48 -0
  34. package/data/systems/hospitalAppointment.js +50 -0
  35. package/data/systems/hotelBooking.js +38 -0
  36. package/data/systems/index.js +31 -0
  37. package/data/systems/invoiceBilling.js +50 -0
  38. package/data/systems/libraryManagement.js +43 -0
  39. package/data/systems/movieBooking.js +48 -0
  40. package/data/systems/quizExam.js +38 -0
  41. package/data/systems/studentRegistration.js +43 -0
  42. package/dist/popsite-ui.es.js +4368 -0
  43. package/dist/popsite-ui.umd.js +60 -0
  44. package/dist/style.css +1 -0
  45. package/index.html +13 -0
  46. package/library/index.js +20 -0
  47. package/main.jsx +15 -0
  48. package/package.json +40 -0
  49. package/src/App.jsx +12 -0
  50. package/src/components/modules/AnalyticsDashboardModule.jsx +224 -0
  51. package/src/components/modules/ChatMessagingModule.jsx +294 -0
  52. package/src/components/modules/EcommerceStoreModule.jsx +405 -0
  53. package/src/components/modules/EventTicketBookingModule.jsx +253 -0
  54. package/src/components/modules/FlightBookingModule.jsx +399 -0
  55. package/src/components/modules/FoodOrderingModule.jsx +316 -0
  56. package/src/components/modules/HospitalAppointmentModule.jsx +267 -0
  57. package/src/components/modules/HotelBookingModule.jsx +317 -0
  58. package/src/components/modules/InvoiceBillingModule.jsx +302 -0
  59. package/src/components/modules/LandingPageModule.jsx +185 -0
  60. package/src/components/modules/LibraryManagementModule.jsx +189 -0
  61. package/src/components/modules/MovieBookingModule.jsx +337 -0
  62. package/src/components/modules/QuizExamModule.jsx +255 -0
  63. package/src/components/modules/StudentRegistrationModule.jsx +292 -0
  64. package/src/components/system/SystemHero.jsx +44 -0
  65. package/src/components/system/SystemSummaryCard.jsx +29 -0
  66. package/src/components/system/Toast.jsx +69 -0
  67. package/src/data/systems/analyticsDashboard.js +32 -0
  68. package/src/data/systems/chatMessaging.js +59 -0
  69. package/src/data/systems/ecommerceStore.js +84 -0
  70. package/src/data/systems/eventBooking.js +33 -0
  71. package/src/data/systems/flightBooking.js +59 -0
  72. package/src/data/systems/foodOrdering.js +48 -0
  73. package/src/data/systems/hospitalAppointment.js +48 -0
  74. package/src/data/systems/hotelBooking.js +59 -0
  75. package/src/data/systems/invoiceBilling.js +19 -0
  76. package/src/data/systems/landingPage.js +29 -0
  77. package/src/data/systems/libraryManagement.js +17 -0
  78. package/src/data/systems/movieBooking.js +49 -0
  79. package/src/data/systems/quizExam.js +31 -0
  80. package/src/data/systems/studentRegistration.js +9 -0
  81. package/src/index.js +22 -0
  82. package/src/main.jsx +10 -0
  83. package/src/styles.css +296 -0
  84. package/styles.css +820 -0
  85. package/utils/systemEngine.js +128 -0
  86. package/vite.config.js +8 -0
  87. package/vite.lib.config.js +27 -0
package/src/styles.css ADDED
@@ -0,0 +1,296 @@
1
+ /* PopSite UI - Premium 2026 Enterprise SaaS Design System */
2
+
3
+ :root {
4
+ /* Color Palette - Vibrant, Harmonious, Modern */
5
+ --pk-primary: #6366f1;
6
+ --pk-primary-hover: #4f46e5;
7
+ --pk-primary-light: #e0e7ff;
8
+ --pk-secondary: #0ea5e9;
9
+ --pk-accent: #f43f5e;
10
+
11
+ --pk-bg-main: #f8fafc;
12
+ --pk-bg-card: #ffffff;
13
+ --pk-bg-glass: rgba(255, 255, 255, 0.7);
14
+
15
+ --pk-text-main: #0f172a;
16
+ --pk-text-muted: #64748b;
17
+ --pk-text-inverse: #ffffff;
18
+
19
+ --pk-border: #e2e8f0;
20
+
21
+ --pk-success: #10b981;
22
+ --pk-warning: #f59e0b;
23
+ --pk-danger: #ef4444;
24
+
25
+ /* Typography */
26
+ --pk-font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
27
+
28
+ /* Shadows - Soft, multi-layered */
29
+ --pk-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
30
+ --pk-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
31
+ --pk-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
32
+ --pk-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
33
+ --pk-shadow-hover: 0 20px 40px -5px rgba(99, 102, 241, 0.15), 0 10px 15px -5px rgba(0, 0, 0, 0.05);
34
+
35
+ /* Radius */
36
+ --pk-radius-sm: 8px;
37
+ --pk-radius-md: 12px;
38
+ --pk-radius-lg: 16px;
39
+ --pk-radius-full: 9999px;
40
+
41
+ /* Transitions */
42
+ --pk-transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
43
+ --pk-transition-normal: 300ms cubic-bezier(0.4, 0, 0.2, 1);
44
+ }
45
+
46
+ * {
47
+ box-sizing: border-box;
48
+ margin: 0;
49
+ padding: 0;
50
+ }
51
+
52
+ body {
53
+ font-family: var(--pk-font-family);
54
+ background-color: var(--pk-bg-main);
55
+ color: var(--pk-text-main);
56
+ line-height: 1.5;
57
+ -webkit-font-smoothing: antialiased;
58
+ }
59
+
60
+ /* Glassmorphism Utilities */
61
+ .pk-glass {
62
+ background: var(--pk-bg-glass);
63
+ backdrop-filter: blur(12px);
64
+ -webkit-backdrop-filter: blur(12px);
65
+ border: 1px solid rgba(255, 255, 255, 0.4);
66
+ }
67
+
68
+ /* Typography Utilities */
69
+ .pk-heading-xl { font-size: 3rem; font-weight: 800; letter-spacing: -0.025em; line-height: 1.1; }
70
+ .pk-heading-lg { font-size: 2.25rem; font-weight: 700; letter-spacing: -0.025em; line-height: 1.2; }
71
+ .pk-heading-md { font-size: 1.5rem; font-weight: 600; line-height: 1.3; }
72
+ .pk-text-body { font-size: 1rem; color: var(--pk-text-muted); }
73
+ .pk-text-sm { font-size: 0.875rem; color: var(--pk-text-muted); }
74
+
75
+ .pk-gradient-text {
76
+ background: linear-gradient(135deg, var(--pk-primary), var(--pk-secondary));
77
+ -webkit-background-clip: text;
78
+ -webkit-text-fill-color: transparent;
79
+ background-clip: text;
80
+ }
81
+
82
+ /* Card System */
83
+ .pk-card {
84
+ background-color: var(--pk-bg-card);
85
+ border-radius: var(--pk-radius-lg);
86
+ box-shadow: var(--pk-shadow-sm);
87
+ transition: transform var(--pk-transition-normal), box-shadow var(--pk-transition-normal);
88
+ overflow: hidden;
89
+ border: 1px solid var(--pk-border);
90
+ }
91
+
92
+ .pk-card-interactive:hover {
93
+ transform: translateY(-4px);
94
+ box-shadow: var(--pk-shadow-hover);
95
+ }
96
+
97
+ .pk-card-header { padding: 1.5rem 1.5rem 0; }
98
+ .pk-card-body { padding: 1.5rem; }
99
+ .pk-card-footer { padding: 1rem 1.5rem; border-top: 1px solid var(--pk-border); background-color: rgba(248, 250, 252, 0.5); }
100
+
101
+ /* Buttons */
102
+ .pk-btn {
103
+ display: inline-flex;
104
+ align-items: center;
105
+ justify-content: center;
106
+ padding: 0.75rem 1.5rem;
107
+ border-radius: var(--pk-radius-md);
108
+ font-weight: 600;
109
+ font-size: 0.95rem;
110
+ cursor: pointer;
111
+ transition: all var(--pk-transition-fast);
112
+ border: none;
113
+ gap: 0.5rem;
114
+ }
115
+
116
+ .pk-btn-primary {
117
+ background: linear-gradient(135deg, var(--pk-primary), var(--pk-primary-hover));
118
+ color: var(--pk-text-inverse);
119
+ box-shadow: 0 4px 10px rgba(99, 102, 241, 0.3);
120
+ }
121
+
122
+ .pk-btn-primary:hover {
123
+ transform: translateY(-2px);
124
+ box-shadow: 0 6px 15px rgba(99, 102, 241, 0.4);
125
+ }
126
+
127
+ .pk-btn-primary:active { transform: translateY(0); }
128
+
129
+ .pk-btn-secondary {
130
+ background-color: var(--pk-primary-light);
131
+ color: var(--pk-primary-hover);
132
+ }
133
+
134
+ .pk-btn-secondary:hover {
135
+ background-color: #c7d2fe;
136
+ }
137
+
138
+ .pk-btn-outline {
139
+ background-color: transparent;
140
+ border: 1px solid var(--pk-border);
141
+ color: var(--pk-text-main);
142
+ }
143
+
144
+ .pk-btn-outline:hover {
145
+ border-color: var(--pk-primary);
146
+ color: var(--pk-primary);
147
+ }
148
+
149
+ /* Forms & Inputs */
150
+ .pk-input-group {
151
+ display: flex;
152
+ flex-direction: column;
153
+ gap: 0.5rem;
154
+ margin-bottom: 1rem;
155
+ }
156
+
157
+ .pk-label {
158
+ font-size: 0.875rem;
159
+ font-weight: 600;
160
+ color: var(--pk-text-main);
161
+ }
162
+
163
+ .pk-input {
164
+ padding: 0.75rem 1rem;
165
+ border-radius: var(--pk-radius-md);
166
+ border: 1px solid var(--pk-border);
167
+ background-color: var(--pk-bg-main);
168
+ font-family: inherit;
169
+ font-size: 1rem;
170
+ transition: border-color var(--pk-transition-fast), box-shadow var(--pk-transition-fast);
171
+ }
172
+
173
+ .pk-input:focus {
174
+ outline: none;
175
+ border-color: var(--pk-primary);
176
+ box-shadow: 0 0 0 3px var(--pk-primary-light);
177
+ }
178
+
179
+ /* Layout Utilities */
180
+ .pk-container {
181
+ max-width: 1200px;
182
+ margin: 0 auto;
183
+ padding: 2rem;
184
+ }
185
+
186
+ .pk-grid {
187
+ display: grid;
188
+ gap: 2rem;
189
+ }
190
+
191
+ .pk-grid-responsive {
192
+ grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
193
+ }
194
+
195
+ .pk-flex { display: flex; }
196
+ .pk-flex-col { flex-direction: column; }
197
+ .pk-items-center { align-items: center; }
198
+ .pk-justify-between { justify-content: space-between; }
199
+ .pk-justify-center { justify-content: center; }
200
+ .pk-gap-4 { gap: 1rem; }
201
+ .pk-gap-6 { gap: 1.5rem; }
202
+
203
+ /* Toast System */
204
+ .pk-toast-container {
205
+ position: fixed;
206
+ bottom: 2rem;
207
+ right: 2rem;
208
+ display: flex;
209
+ flex-direction: column;
210
+ gap: 1rem;
211
+ z-index: 50;
212
+ pointer-events: none;
213
+ }
214
+
215
+ .pk-toast {
216
+ background-color: var(--pk-bg-card);
217
+ border-radius: var(--pk-radius-md);
218
+ box-shadow: var(--pk-shadow-xl);
219
+ padding: 1rem 1.5rem;
220
+ display: flex;
221
+ align-items: center;
222
+ gap: 0.75rem;
223
+ border-left: 4px solid var(--pk-primary);
224
+ animation: pk-slide-up 0.3s ease-out forwards;
225
+ pointer-events: auto;
226
+ }
227
+
228
+ .pk-toast.success { border-color: var(--pk-success); }
229
+ .pk-toast.error { border-color: var(--pk-danger); }
230
+
231
+ @keyframes pk-slide-up {
232
+ from { transform: translateY(100%); opacity: 0; }
233
+ to { transform: translateY(0); opacity: 1; }
234
+ }
235
+
236
+ /* Skeleton Loading */
237
+ .pk-skeleton {
238
+ background: linear-gradient(90deg, #e2e8f0 25%, #f1f5f9 50%, #e2e8f0 75%);
239
+ background-size: 200% 100%;
240
+ animation: pk-skeleton-loading 1.5s infinite;
241
+ border-radius: var(--pk-radius-sm);
242
+ }
243
+
244
+ @keyframes pk-skeleton-loading {
245
+ 0% { background-position: 200% 0; }
246
+ 100% { background-position: -200% 0; }
247
+ }
248
+
249
+ /* Badges */
250
+ .pk-badge {
251
+ display: inline-flex;
252
+ align-items: center;
253
+ padding: 0.25rem 0.75rem;
254
+ border-radius: var(--pk-radius-full);
255
+ font-size: 0.75rem;
256
+ font-weight: 600;
257
+ background-color: var(--pk-primary-light);
258
+ color: var(--pk-primary-hover);
259
+ }
260
+
261
+ /* Empty State */
262
+ .pk-empty-state {
263
+ display: flex;
264
+ flex-direction: column;
265
+ align-items: center;
266
+ justify-content: center;
267
+ padding: 4rem 2rem;
268
+ text-align: center;
269
+ background-color: rgba(248, 250, 252, 0.5);
270
+ border-radius: var(--pk-radius-lg);
271
+ border: 2px dashed var(--pk-border);
272
+ }
273
+
274
+ .pk-empty-icon {
275
+ font-size: 3rem;
276
+ margin-bottom: 1rem;
277
+ opacity: 0.7;
278
+ }
279
+
280
+ /* Top Navigation */
281
+ .pk-nav {
282
+ position: sticky;
283
+ top: 0;
284
+ z-index: 40;
285
+ display: flex;
286
+ justify-content: space-between;
287
+ align-items: center;
288
+ padding: 1rem 2rem;
289
+ border-bottom: 1px solid rgba(226, 232, 240, 0.5);
290
+ }
291
+
292
+ /* Utilities */
293
+ .pk-text-center { text-align: center; }
294
+ .pk-w-full { width: 100%; }
295
+ .pk-h-full { height: 100%; }
296
+ .pk-object-cover { object-fit: cover; }