@nice2dev/events 1.0.3 → 1.0.4

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 (2) hide show
  1. package/dist/index.d.ts +291 -0
  2. package/package.json +2 -2
package/dist/index.d.ts CHANGED
@@ -20,6 +20,27 @@ export declare interface BillingItem {
20
20
  isPaid?: boolean;
21
21
  }
22
22
 
23
+ export declare interface CateringZone {
24
+ id: string;
25
+ type: CateringZoneType;
26
+ name: string;
27
+ /** Location on venue plan */
28
+ zoneId: string;
29
+ /** Menu reference */
30
+ menuRef: string;
31
+ /** Staff count */
32
+ staffCount: number;
33
+ /** Service hours */
34
+ openTime: string;
35
+ closeTime: string;
36
+ /** Power requirements (kW) */
37
+ powerKw: number;
38
+ /** Water required */
39
+ waterRequired: boolean;
40
+ }
41
+
42
+ export declare type CateringZoneType = 'bar' | 'food-truck' | 'buffet' | 'restaurant' | 'vip-lounge' | 'backstage-catering';
43
+
23
44
  /** Chat message. */
24
45
  export declare interface ChatMessage {
25
46
  id: string;
@@ -36,6 +57,43 @@ export declare interface ChatMessage {
36
57
  /** Chat message type. */
37
58
  export declare type ChatMessageType = 'text' | 'image' | 'system' | 'reaction' | 'announcement';
38
59
 
60
+ export declare interface EvacuationPlan {
61
+ venueId: string;
62
+ routes: EvacuationRoute[];
63
+ /** Max evacuation time (minutes) */
64
+ maxEvacuationTime: number;
65
+ /** Assembly points */
66
+ assemblyPoints: Array<{
67
+ id: string;
68
+ x: number;
69
+ y: number;
70
+ capacity: number;
71
+ }>;
72
+ /** Export formats */
73
+ exportFormats: Array<'pdf' | 'svg' | 'png'>;
74
+ }
75
+
76
+ export declare interface EvacuationRoute {
77
+ id: string;
78
+ name: string;
79
+ /** Waypoints */
80
+ waypoints: Array<{
81
+ x: number;
82
+ y: number;
83
+ floor: number;
84
+ }>;
85
+ /** Exit ID */
86
+ exitId: string;
87
+ /** Capacity (persons/minute) */
88
+ flowRate: number;
89
+ /** Distance (meters) */
90
+ distance: number;
91
+ /** Compliant with fire code */
92
+ compliant: boolean;
93
+ /** Issues */
94
+ issues: string[];
95
+ }
96
+
39
97
  /** Event attraction. */
40
98
  export declare interface EventAttraction {
41
99
  id: string;
@@ -187,6 +245,19 @@ export declare interface EventSurvey {
187
245
  isActive?: boolean;
188
246
  }
189
247
 
248
+ export declare interface FloorPlanUpsellConfig {
249
+ /** Show "Add Floor Plan" button */
250
+ showButton: boolean;
251
+ /** Button placement */
252
+ placement: 'inline' | 'sidebar' | 'modal';
253
+ /** CTA text */
254
+ ctaText: string;
255
+ /** Link to Core.FloorPlan editor */
256
+ floorPlanEditorUrl: string;
257
+ /** Auto-link address */
258
+ autoLinkAddress: boolean;
259
+ }
260
+
190
261
  /** Karaoke song with lyrics. */
191
262
  export declare interface KaraokeSong extends SongEntry {
192
263
  hasLyrics: boolean;
@@ -470,6 +541,21 @@ export declare interface NiceSongPickerProps {
470
541
  style?: default_2.CSSProperties;
471
542
  }
472
543
 
544
+ export declare type OccupancyLevel = 'empty' | 'low' | 'moderate' | 'high' | 'full' | 'over-capacity';
545
+
546
+ export declare interface OccupancyMapConfig {
547
+ /** SignalR hub URL */
548
+ hubUrl: string;
549
+ /** Refresh interval (ms) */
550
+ refreshInterval: number;
551
+ /** Color scale */
552
+ colorScale: Record<OccupancyLevel, string>;
553
+ /** Show numbers */
554
+ showNumbers: boolean;
555
+ /** Alert threshold (%) */
556
+ alertThreshold: number;
557
+ }
558
+
473
559
  /** Participant role. */
474
560
  export declare type ParticipantRole = 'host' | 'co-host' | 'moderator' | 'participant' | 'spectator' | 'vip';
475
561
 
@@ -487,6 +573,74 @@ export declare interface RoundScore {
487
573
  /** Round status. */
488
574
  export declare type RoundStatus = 'upcoming' | 'active' | 'voting' | 'scored' | 'completed' | 'skipped';
489
575
 
576
+ export declare interface Seat {
577
+ id: string;
578
+ row: string;
579
+ number: number;
580
+ /** Position on plan */
581
+ x: number;
582
+ y: number;
583
+ /** Sector */
584
+ sectorId: string;
585
+ /** Price category */
586
+ priceCategoryId: string;
587
+ /** Status */
588
+ status: SeatStatus;
589
+ /** View quality score (0-100) */
590
+ viewScore?: number;
591
+ }
592
+
593
+ export declare interface SeatingChart {
594
+ id: string;
595
+ name: string;
596
+ venueId: string;
597
+ sections: SeatingSection[];
598
+ /** Price categories */
599
+ priceCategories: Array<{
600
+ id: string;
601
+ name: string;
602
+ price: number;
603
+ color: string;
604
+ }>;
605
+ /** Total seats */
606
+ totalSeats: number;
607
+ }
608
+
609
+ export declare interface SeatingSection {
610
+ id: string;
611
+ name: string;
612
+ /** Section type */
613
+ type: 'standard' | 'vip' | 'box' | 'balcony' | 'pit' | 'standing';
614
+ /** Rows of seats */
615
+ rows: Array<{
616
+ label: string;
617
+ seats: Seat[];
618
+ }>;
619
+ /** Section color */
620
+ color: string;
621
+ /** Base price */
622
+ basePrice: number;
623
+ /** Currency */
624
+ currency: string;
625
+ }
626
+
627
+ export declare interface SeatSelectionConfig {
628
+ /** Max seats per order */
629
+ maxSeats: number;
630
+ /** Show prices */
631
+ showPrices: boolean;
632
+ /** Show view preview */
633
+ showViewPreview: boolean;
634
+ /** Interactive zoom/pan */
635
+ interactive: boolean;
636
+ /** Highlight available sections */
637
+ highlightAvailable: boolean;
638
+ /** Allow section-level selection */
639
+ sectionSelect: boolean;
640
+ }
641
+
642
+ export declare type SeatStatus = 'available' | 'reserved' | 'sold' | 'blocked' | 'wheelchair' | 'companion';
643
+
490
644
  /** Song entry. */
491
645
  export declare interface SongEntry {
492
646
  id: string;
@@ -509,4 +663,141 @@ export declare interface SurveyResponse {
509
663
  answer: string | string[] | number;
510
664
  }
511
665
 
666
+ export declare interface Venue3DConfig {
667
+ /** 3D model URL */
668
+ modelUrl: string;
669
+ /** Camera presets per seat */
670
+ seatCameras: Record<string, {
671
+ posX: number;
672
+ posY: number;
673
+ posZ: number;
674
+ lookAtX: number;
675
+ lookAtY: number;
676
+ lookAtZ: number;
677
+ }>;
678
+ /** Stage position */
679
+ stagePosition: {
680
+ x: number;
681
+ y: number;
682
+ z: number;
683
+ };
684
+ /** Lighting */
685
+ ambientLight: number;
686
+ /** Quality */
687
+ quality: 'low' | 'medium' | 'high';
688
+ }
689
+
690
+ export declare interface VenueAsset {
691
+ id: string;
692
+ name: string;
693
+ category: VenueAssetCategory;
694
+ /** 2D preview */
695
+ thumbnailUrl: string;
696
+ /** 3D model URL */
697
+ modelUrl?: string;
698
+ /** Dimensions (meters) */
699
+ width: number;
700
+ height: number;
701
+ depth?: number;
702
+ /** Price per unit */
703
+ rentalPrice?: number;
704
+ /** Power requirement */
705
+ powerKw?: number;
706
+ /** Tags */
707
+ tags: string[];
708
+ }
709
+
710
+ export declare type VenueAssetCategory = 'stage' | 'stand' | 'bar' | 'furniture' | 'barrier' | 'av-equipment' | 'lighting' | 'tent' | 'signage' | 'decor' | 'safety' | 'custom';
711
+
712
+ export declare interface VenueAssetPlacement {
713
+ id: string;
714
+ assetId: string;
715
+ x: number;
716
+ y: number;
717
+ rotation: number;
718
+ scale: number;
719
+ zoneId?: string;
720
+ }
721
+
722
+ export declare interface VenueDesign {
723
+ id: string;
724
+ name: string;
725
+ /** Venue dimensions (meters) */
726
+ width: number;
727
+ height: number;
728
+ /** Floors */
729
+ floors: number;
730
+ zones: VenueZone[];
731
+ assets: VenueAssetPlacement[];
732
+ /** Total capacity */
733
+ totalCapacity: number;
734
+ }
735
+
736
+ export declare interface VenueTemplate {
737
+ id: string;
738
+ name: string;
739
+ type: VenueTemplateType;
740
+ /** Base design */
741
+ design: VenueDesign;
742
+ /** Description */
743
+ description: string;
744
+ /** Thumbnail */
745
+ thumbnailUrl: string;
746
+ /** Suggested capacity range */
747
+ capacityRange: {
748
+ min: number;
749
+ max: number;
750
+ };
751
+ }
752
+
753
+ export declare type VenueTemplateType = 'concert-hall' | 'conference-room' | 'theater' | 'stadium' | 'event-tent' | 'exhibition-hall' | 'outdoor-festival' | 'banquet-hall' | 'classroom' | 'custom';
754
+
755
+ export declare interface VenueZone {
756
+ id: string;
757
+ type: VenueZoneType;
758
+ label: string;
759
+ /** Polygon (or rect) coordinates */
760
+ polygon: Array<{
761
+ x: number;
762
+ y: number;
763
+ }>;
764
+ /** Capacity */
765
+ capacity: number;
766
+ /** Floor level */
767
+ floor: number;
768
+ /** Color for display */
769
+ color: string;
770
+ /** Access level */
771
+ accessLevel: 'public' | 'restricted' | 'staff-only' | 'vip';
772
+ /** Metadata */
773
+ metadata?: Record<string, unknown>;
774
+ }
775
+
776
+ /**
777
+ * Events & Venue Spatial Integration (EVT-001) —
778
+ * NiceVenueDesigner, NiceSeatingChartBuilder/Viewer,
779
+ * Nice3DVenuePreview, NiceOccupancyMap, NiceCateringZones,
780
+ * NiceEvacuationRoutes, Venue Asset Library, Venue Templates,
781
+ * FloorPlan Upselling UI.
782
+ *
783
+ * PRO-5.6 — 10 items
784
+ *
785
+ * @module @nice2dev/events/venue
786
+ */
787
+ export declare type VenueZoneType = 'stage' | 'vip' | 'general' | 'standing' | 'seated' | 'bar' | 'food-court' | 'backstage' | 'entrance' | 'exit' | 'emergency-exit' | 'restroom' | 'parking' | 'press' | 'tech-booth' | 'medical' | 'security' | 'custom';
788
+
789
+ export declare interface ZoneOccupancy {
790
+ zoneId: string;
791
+ /** Current count */
792
+ current: number;
793
+ /** Capacity */
794
+ capacity: number;
795
+ /** Level */
796
+ level: OccupancyLevel;
797
+ /** Percentage */
798
+ percentage: number;
799
+ /** Last updated */
800
+ updatedAt: string;
801
+ }
802
+
512
803
  export { }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nice2dev/events",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "description": "Nice2Dev Events — Party/event system with chat, rounds, music, attractions, planning, and content controls for React",
5
5
  "type": "module",
6
6
  "main": "dist/index.cjs",
@@ -47,7 +47,7 @@
47
47
  "nicetodev"
48
48
  ],
49
49
  "author": "NiceToDev <contact@nicetodev.com>",
50
- "license": "MIT",
50
+ "license": "SEE LICENSE IN LICENSE",
51
51
  "repository": {
52
52
  "type": "git",
53
53
  "url": "git+https://github.com/NiceToDev/NiceToDev.UI.git",