create-nextjs-cms 0.9.21 → 0.9.23

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 (58) hide show
  1. package/package.json +2 -2
  2. package/templates/default/app/(rootLayout)/(plugins)/[...slug]/page.tsx +47 -40
  3. package/templates/default/app/(rootLayout)/(plugins)/[...slug]/plugin-server-registry.ts +16 -16
  4. package/templates/default/app/(rootLayout)/admins/page.tsx +1 -1
  5. package/templates/default/app/(rootLayout)/browse/[section]/[page]/page.tsx +1 -1
  6. package/templates/default/app/(rootLayout)/categorized/[section]/page.tsx +1 -1
  7. package/templates/default/app/(rootLayout)/dashboard/page.tsx +10 -3
  8. package/templates/default/app/(rootLayout)/edit/[section]/[itemId]/page.tsx +1 -1
  9. package/templates/default/app/(rootLayout)/layout.tsx +1 -1
  10. package/templates/default/app/(rootLayout)/new/[section]/page.tsx +1 -1
  11. package/templates/default/app/(rootLayout)/section/[section]/page.tsx +1 -1
  12. package/templates/default/app/(rootLayout)/settings/page.tsx +1 -1
  13. package/templates/default/app/_trpc/client.tsx +6 -0
  14. package/templates/default/app/_trpc/server.ts +9 -0
  15. package/templates/default/app/_trpc/types.ts +6 -0
  16. package/templates/default/app/api/document/route.ts +1 -1
  17. package/templates/default/app/api/photo/route.ts +1 -1
  18. package/templates/default/app/api/trpc/[trpc]/route.ts +3 -33
  19. package/templates/default/app/api/video/route.ts +1 -1
  20. package/templates/default/app/providers.tsx +20 -152
  21. package/templates/default/components/AdminCard.tsx +1 -1
  22. package/templates/default/components/AdminPrivilegeCard.tsx +1 -1
  23. package/templates/default/components/CategorySectionSelectInput.tsx +1 -1
  24. package/templates/default/components/ItemEditPage.tsx +1 -1
  25. package/templates/default/components/NewAdminForm.tsx +1 -1
  26. package/templates/default/components/NewPage.tsx +1 -1
  27. package/templates/default/components/NewVariantComponent.tsx +1 -1
  28. package/templates/default/components/ProtectedImage.tsx +1 -1
  29. package/templates/default/components/SectionItemCard.tsx +1 -1
  30. package/templates/default/components/SectionPage.tsx +1 -1
  31. package/templates/default/components/Sidebar.tsx +25 -0
  32. package/templates/default/components/SidebarPluginGroup.tsx +63 -0
  33. package/templates/default/components/VariantCard.tsx +1 -1
  34. package/templates/default/components/VariantEditPage.tsx +1 -1
  35. package/templates/default/components/analytics/BounceRate.tsx +1 -1
  36. package/templates/default/components/analytics/LivePageViews.tsx +1 -1
  37. package/templates/default/components/analytics/LiveUsersCount.tsx +1 -1
  38. package/templates/default/components/analytics/MonthlyPageViews.tsx +1 -1
  39. package/templates/default/components/analytics/TopCountries.tsx +1 -1
  40. package/templates/default/components/analytics/TopDevices.tsx +1 -1
  41. package/templates/default/components/analytics/TopMediums.tsx +1 -1
  42. package/templates/default/components/analytics/TopSources.tsx +1 -1
  43. package/templates/default/components/analytics/TotalPageViews.tsx +1 -1
  44. package/templates/default/components/analytics/TotalSessions.tsx +1 -1
  45. package/templates/default/components/analytics/TotalUniqueUsers.tsx +1 -1
  46. package/templates/default/components/custom/RightHomeRoomVariantCard.tsx +1 -1
  47. package/templates/default/components/form/Form.tsx +9 -1
  48. package/templates/default/components/form/FormInputs.tsx +138 -136
  49. package/templates/default/components/form/helpers/_section-hot-reload.js +1 -1
  50. package/templates/default/components/form/inputs/DocumentFormInput.tsx +270 -222
  51. package/templates/default/components/form/inputs/RichTextFormInput.tsx +1 -1
  52. package/templates/default/components/form/inputs/SelectFormInput.tsx +16 -16
  53. package/templates/default/components/form/inputs/TextFormInput.tsx +1 -1
  54. package/templates/default/components/form/inputs/VideoFormInput.tsx +270 -118
  55. package/templates/default/dynamic-schemas/schema.ts +226 -13
  56. package/templates/default/next-env.d.ts +1 -1
  57. package/templates/default/package.json +1 -1
  58. package/templates/default/app/_trpc/client.ts +0 -3
@@ -45,7 +45,7 @@ export const TestSectionTable = mysqlTable('test_section', {
45
45
 
46
46
 
47
47
  export const TestTagsTable = mysqlTable('test_tags', {
48
- testId: varchar('test_id', { length: 255 }).notNull(),
48
+ testId: int('test_id').notNull(),
49
49
  tagName: varchar('tag_name', { length: 255 }).notNull(),
50
50
  locale: varchar('locale', { length: 255 }).notNull()
51
51
  }, (table) => [
@@ -110,7 +110,9 @@ export const ServicesTable = mysqlTable('services', {
110
110
  townId: int('town_id')
111
111
  }, (table) => [
112
112
  index('title_index').on(table.title),
113
- unique('title_unique').on(table.title)
113
+ unique('title_unique').on(table.title),
114
+ index('title_fulltext').on(table.title),
115
+ index('desc_fulltext').on(table.desc)
114
116
  ]);
115
117
 
116
118
 
@@ -153,10 +155,66 @@ export const RealestateTable = mysqlTable('realestate', {
153
155
  townId: int('town_id')
154
156
  }, (table) => [
155
157
  index('title_index').on(table.title),
156
- unique('title_unique').on(table.title)
158
+ unique('title_unique').on(table.title),
159
+ index('title_fulltext').on(table.title),
160
+ index('desc_fulltext').on(table.desc)
157
161
  ]);
158
162
 
159
163
 
164
+ export const RoomCountsTable = mysqlTable('room_counts', {
165
+ id: varchar('id', { length: 255 }).notNull().primaryKey(),
166
+ label: varchar('label', { length: 255 }).notNull()
167
+ });
168
+
169
+
170
+ export const BuildingAgesTable = mysqlTable('building_ages', {
171
+ id: varchar('id', { length: 255 }).notNull().primaryKey(),
172
+ label: varchar('label', { length: 255 }).notNull()
173
+ });
174
+
175
+
176
+ export const FloorCountsTable = mysqlTable('floor_counts', {
177
+ id: varchar('id', { length: 255 }).notNull().primaryKey(),
178
+ label: varchar('label', { length: 255 }).notNull()
179
+ });
180
+
181
+
182
+ export const BathroomCountsTable = mysqlTable('bathroom_counts', {
183
+ id: varchar('id', { length: 255 }).notNull().primaryKey(),
184
+ label: varchar('label', { length: 255 }).notNull()
185
+ });
186
+
187
+
188
+ export const FloorLocationsTable = mysqlTable('floor_locations', {
189
+ id: varchar('id', { length: 255 }).notNull().primaryKey(),
190
+ label: varchar('label', { length: 255 }).notNull()
191
+ });
192
+
193
+
194
+ export const HeatingTypesTable = mysqlTable('heating_types', {
195
+ id: varchar('id', { length: 255 }).notNull().primaryKey(),
196
+ label: varchar('label', { length: 255 }).notNull()
197
+ });
198
+
199
+
200
+ export const KitchenTypesTable = mysqlTable('kitchen_types', {
201
+ id: varchar('id', { length: 255 }).notNull().primaryKey(),
202
+ label: varchar('label', { length: 255 }).notNull()
203
+ });
204
+
205
+
206
+ export const ParkingTypesTable = mysqlTable('parking_types', {
207
+ id: varchar('id', { length: 255 }).notNull().primaryKey(),
208
+ label: varchar('label', { length: 255 }).notNull()
209
+ });
210
+
211
+
212
+ export const FromWhomTypesTable = mysqlTable('from_whom_types', {
213
+ id: varchar('id', { length: 255 }).notNull().primaryKey(),
214
+ label: varchar('label', { length: 255 }).notNull()
215
+ });
216
+
217
+
160
218
  export const HomepageSliderTable = mysqlTable('homepage_slider', {
161
219
  id: int('id').autoincrement().notNull().primaryKey(),
162
220
  titleEn: varchar('title_en', { length: 255 }).notNull(),
@@ -177,7 +235,7 @@ export const HomepageSliderTable = mysqlTable('homepage_slider', {
177
235
  export const ContestSubscribersTable = mysqlTable('contest_subscribers', {
178
236
  id: int('id').autoincrement().notNull().primaryKey(),
179
237
  userId: int('user_id').notNull(),
180
- contestId: varchar('contest_id', { length: 255 }).notNull()
238
+ contestId: int('contest_id').notNull()
181
239
  }, (table) => [
182
240
  unique('contest_subscriber_unique').on(table.contestId, table.userId)
183
241
  ]);
@@ -242,10 +300,30 @@ export const JobsTable = mysqlTable('jobs', {
242
300
  townId: int('town_id')
243
301
  }, (table) => [
244
302
  index('title_index').on(table.title),
245
- unique('title_unique').on(table.title)
303
+ unique('title_unique').on(table.title),
304
+ index('title_fulltext').on(table.title),
305
+ index('desc_fulltext').on(table.desc)
246
306
  ]);
247
307
 
248
308
 
309
+ export const JobWorkMethodTable = mysqlTable('job_work_method', {
310
+ id: varchar('id', { length: 255 }).notNull().primaryKey(),
311
+ label: varchar('label', { length: 255 }).notNull()
312
+ });
313
+
314
+
315
+ export const JobEducationLevelTable = mysqlTable('job_education_level', {
316
+ id: varchar('id', { length: 255 }).notNull().primaryKey(),
317
+ label: varchar('label', { length: 255 }).notNull()
318
+ });
319
+
320
+
321
+ export const JobExperienceLevelTable = mysqlTable('job_experience_level', {
322
+ id: varchar('id', { length: 255 }).notNull().primaryKey(),
323
+ label: varchar('label', { length: 255 }).notNull()
324
+ });
325
+
326
+
249
327
  export const FurnitureTable = mysqlTable('furniture', {
250
328
  id: int('id').autoincrement().notNull().primaryKey(),
251
329
  title: varchar('title', { length: 255 }).notNull(),
@@ -268,10 +346,24 @@ export const FurnitureTable = mysqlTable('furniture', {
268
346
  townId: int('town_id')
269
347
  }, (table) => [
270
348
  index('title_index').on(table.title),
271
- unique('title_unique').on(table.title)
349
+ unique('title_unique').on(table.title),
350
+ index('title_fulltext').on(table.title),
351
+ index('desc_fulltext').on(table.desc)
272
352
  ]);
273
353
 
274
354
 
355
+ export const ConditionTypesTable = mysqlTable('condition_types', {
356
+ id: varchar('id', { length: 255 }).notNull().primaryKey(),
357
+ label: varchar('label', { length: 255 }).notNull()
358
+ });
359
+
360
+
361
+ export const ClothesFromWhomTypesTable = mysqlTable('clothes_from_whom_types', {
362
+ id: varchar('id', { length: 255 }).notNull().primaryKey(),
363
+ label: varchar('label', { length: 255 }).notNull()
364
+ });
365
+
366
+
275
367
  export const FiltersTable = mysqlTable('filters', {
276
368
  id: int('id').autoincrement().notNull().primaryKey(),
277
369
  title: varchar('title', { length: 255 }).notNull(),
@@ -282,7 +374,8 @@ export const FiltersTable = mysqlTable('filters', {
282
374
  isMandatory: boolean('is_mandatory')
283
375
  }, (table) => [
284
376
  unique('title_unique').on(table.title),
285
- unique('key_unique').on(table.Key)
377
+ unique('key_unique').on(table.Key),
378
+ index('title_fulltext').on(table.title)
286
379
  ]);
287
380
 
288
381
 
@@ -297,7 +390,11 @@ export const FaqTable = mysqlTable('faq', {
297
390
  }, (table) => [
298
391
  unique('faq_q_en_unique').on(table.qEn),
299
392
  unique('title_ar_unique').on(table.qAr),
300
- unique('title_tr_unique').on(table.qTr)
393
+ unique('title_tr_unique').on(table.qTr),
394
+ index('titles_fulltext').on(table.qAr, table.qTr),
395
+ index('faq_a_en_fulltext').on(table.aEn),
396
+ index('faq_a_ar_fulltext').on(table.aAr),
397
+ index('faq_a_tr_fulltext').on(table.aTr)
301
398
  ]);
302
399
 
303
400
 
@@ -310,7 +407,9 @@ export const ErrorsTable = mysqlTable('errors', {
310
407
  desc: longtext('desc'),
311
408
  isResolved: boolean('is_resolved')
312
409
  }, (table) => [
313
- unique('key_unique').on(table.caseId)
410
+ unique('key_unique').on(table.caseId),
411
+ index('title_fulltext').on(table.title),
412
+ index('case_id_fulltext').on(table.caseId)
314
413
  ]);
315
414
 
316
415
 
@@ -337,10 +436,18 @@ export const ElectronicsTable = mysqlTable('electronics', {
337
436
  townId: int('town_id')
338
437
  }, (table) => [
339
438
  index('title_index').on(table.title),
340
- unique('title_unique').on(table.title)
439
+ unique('title_unique').on(table.title),
440
+ index('title_fulltext').on(table.title),
441
+ index('desc_fulltext').on(table.desc)
341
442
  ]);
342
443
 
343
444
 
445
+ export const ElectronicsFromWhomTypesTable = mysqlTable('electronics_from_whom_types', {
446
+ id: varchar('id', { length: 255 }).notNull().primaryKey(),
447
+ label: varchar('label', { length: 255 }).notNull()
448
+ });
449
+
450
+
344
451
  export const ClothesTable = mysqlTable('clothes', {
345
452
  id: int('id').autoincrement().notNull().primaryKey(),
346
453
  title: varchar('title', { length: 255 }).notNull(),
@@ -363,7 +470,9 @@ export const ClothesTable = mysqlTable('clothes', {
363
470
  townId: int('town_id')
364
471
  }, (table) => [
365
472
  index('title_index').on(table.title),
366
- unique('title_unique').on(table.title)
473
+ unique('title_unique').on(table.title),
474
+ index('title_fulltext').on(table.title),
475
+ index('desc_fulltext').on(table.desc)
367
476
  ]);
368
477
 
369
478
 
@@ -421,10 +530,54 @@ export const CarsTable = mysqlTable('cars', {
421
530
  viewCount: int('view_count'),
422
531
  status: mysqlEnum('status', ['pending_creation', 'active', 'pending_review', 'rejected', 'expired'])
423
532
  }, (table) => [
424
- index('title_index').on(table.title)
533
+ index('title_index').on(table.title),
534
+ index('title_fulltext').on(table.title),
535
+ index('desc_fulltext').on(table.desc)
425
536
  ]);
426
537
 
427
538
 
539
+ export const CarFromWhomTypesTable = mysqlTable('car_from_whom_types', {
540
+ Key: varchar('_key', { length: 255 }).notNull().primaryKey(),
541
+ label: varchar('label', { length: 255 }).notNull()
542
+ });
543
+
544
+
545
+ export const CarEngineCapacityTypesTable = mysqlTable('car_engine_capacity_types', {
546
+ Key: varchar('_key', { length: 255 }).notNull().primaryKey(),
547
+ label: varchar('label', { length: 255 }).notNull()
548
+ });
549
+
550
+
551
+ export const CarEnginePowerTypesTable = mysqlTable('car_engine_power_types', {
552
+ Key: varchar('_key', { length: 255 }).notNull().primaryKey(),
553
+ label: varchar('label', { length: 255 }).notNull()
554
+ });
555
+
556
+
557
+ export const CarTractionTypesTable = mysqlTable('car_traction_types', {
558
+ Key: varchar('_key', { length: 255 }).notNull().primaryKey(),
559
+ label: varchar('label', { length: 255 }).notNull()
560
+ });
561
+
562
+
563
+ export const CarBodyTypesTable = mysqlTable('car_body_types', {
564
+ Key: varchar('_key', { length: 255 }).notNull().primaryKey(),
565
+ label: varchar('label', { length: 255 }).notNull()
566
+ });
567
+
568
+
569
+ export const CarGearTypesTable = mysqlTable('car_gear_types', {
570
+ Key: varchar('_key', { length: 255 }).notNull().primaryKey(),
571
+ label: varchar('label', { length: 255 }).notNull()
572
+ });
573
+
574
+
575
+ export const CarFuelTypesTable = mysqlTable('car_fuel_types', {
576
+ Key: varchar('_key', { length: 255 }).notNull().primaryKey(),
577
+ label: varchar('label', { length: 255 }).notNull()
578
+ });
579
+
580
+
428
581
  export const CarsDbTable = mysqlTable('cars_db', {
429
582
  id: int('id').autoincrement().notNull().primaryKey(),
430
583
  name: varchar('name', { length: 255 }).notNull(),
@@ -457,10 +610,18 @@ export const BooksTable = mysqlTable('books', {
457
610
  townId: int('town_id')
458
611
  }, (table) => [
459
612
  index('title_index').on(table.title),
460
- unique('title_unique').on(table.title)
613
+ unique('title_unique').on(table.title),
614
+ index('title_fulltext').on(table.title),
615
+ index('desc_fulltext').on(table.desc)
461
616
  ]);
462
617
 
463
618
 
619
+ export const BookFromWhomTypesTable = mysqlTable('book_from_whom_types', {
620
+ id: varchar('id', { length: 255 }).notNull().primaryKey(),
621
+ label: varchar('label', { length: 255 }).notNull()
622
+ });
623
+
624
+
464
625
  export const AddressTable = mysqlTable('address', {
465
626
  id: int('id').autoincrement().notNull().primaryKey(),
466
627
  catOrder: int('cat_order').notNull(),
@@ -474,6 +635,58 @@ export const AddressTable = mysqlTable('address', {
474
635
  });
475
636
 
476
637
 
638
+ export const E2eRequiredFieldsTable = mysqlTable('e2e_required_fields', {
639
+ id: int('id').autoincrement().notNull().primaryKey(),
640
+ title: varchar('title', { length: 255 }).notNull(),
641
+ slug: varchar('slug', { length: 255 }).notNull(),
642
+ subtitle: longtext('subtitle').notNull(),
643
+ secret: varchar('secret', { length: 255 }).notNull(),
644
+ quantity: int('quantity').notNull(),
645
+ price: float('price').notNull(),
646
+ rating: double('rating').notNull(),
647
+ isPublished: boolean('is_published').notNull(),
648
+ status: mysqlEnum('status', ['draft', 'published', 'archived']).notNull(),
649
+ categories: varchar('categories', { length: 255 }).notNull(),
650
+ tags: varchar('tags', { length: 255 }).notNull(),
651
+ coverPhoto: varchar('cover_photo', { length: 255 }).notNull(),
652
+ videoClip: varchar('video_clip', { length: 255 }).notNull(),
653
+ attachment: varchar('attachment', { length: 255 }).notNull(),
654
+ bodyContent: longtext('body_content').notNull(),
655
+ publishDate: date('publish_date').notNull(),
656
+ startsAt: datetime('starts_at').notNull(),
657
+ availableFrom: date('available_from'),
658
+ availableUntil: date('available_until'),
659
+ brandColor: varchar('brand_color', { length: 7 }).notNull(),
660
+ mapLocation: varchar('map_location', { length: 255 })
661
+ });
662
+
663
+
664
+ export const E2eOptionalFieldsTable = mysqlTable('e2e_optional_fields', {
665
+ id: int('id').autoincrement().notNull().primaryKey(),
666
+ title: varchar('title', { length: 255 }),
667
+ slug: varchar('slug', { length: 255 }),
668
+ subtitle: longtext('subtitle'),
669
+ secret: varchar('secret', { length: 255 }),
670
+ quantity: int('quantity'),
671
+ price: float('price'),
672
+ rating: double('rating'),
673
+ isPublished: boolean('is_published'),
674
+ status: mysqlEnum('status', ['draft', 'published', 'archived']),
675
+ categories: varchar('categories', { length: 255 }),
676
+ tags: varchar('tags', { length: 255 }),
677
+ coverPhoto: varchar('cover_photo', { length: 255 }),
678
+ videoClip: varchar('video_clip', { length: 255 }),
679
+ attachment: varchar('attachment', { length: 255 }),
680
+ bodyContent: longtext('body_content'),
681
+ publishDate: date('publish_date'),
682
+ startsAt: datetime('starts_at'),
683
+ availableFrom: date('available_from'),
684
+ availableUntil: date('available_until'),
685
+ brandColor: varchar('brand_color', { length: 7 }),
686
+ mapLocation: varchar('map_location', { length: 255 })
687
+ });
688
+
689
+
477
690
  export const E2eAllFieldsTable = mysqlTable('e2e_all_fields', {
478
691
  id: int('id').autoincrement().notNull().primaryKey(),
479
692
  title: varchar('title', { length: 255 }).notNull(),
@@ -1,6 +1,6 @@
1
1
  /// <reference types="next" />
2
2
  /// <reference types="next/image-types/global" />
3
- import "./.next/dev/types/routes.d.ts";
3
+ import "./.next/types/routes.d.ts";
4
4
 
5
5
  // NOTE: This file should not be edited
6
6
  // see https://nextjs.org/docs/app/api-reference/config/typescript for more information.
@@ -70,7 +70,7 @@
70
70
  "nanoid": "^5.1.2",
71
71
  "next": "16.1.1",
72
72
  "next-themes": "^0.4.6",
73
- "nextjs-cms": "0.9.21",
73
+ "nextjs-cms": "0.9.23",
74
74
  "plaiceholder": "^3.0.0",
75
75
  "prettier-plugin-tailwindcss": "^0.7.2",
76
76
  "qrcode": "^1.5.4",
@@ -1,3 +0,0 @@
1
- 'use client'
2
-
3
- export { trpc } from 'nextjs-cms/api/trpc/client'