@visns-studio/visns-components 5.15.3 → 5.15.5
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/README.md +53 -2
- package/package.json +4 -1
- package/src/components/CameraPlacement.jsx +1638 -0
- package/src/components/data/verkadaCameras.js +818 -0
- package/src/components/generic/GenericQuote.jsx +2 -20
- package/src/components/styles/CameraMarkers.scss +200 -0
- package/src/components/styles/CameraPlacement.module.scss +1318 -0
- package/src/components/styles/CameraPlacementModal.module.scss +185 -0
- package/src/components/styles/GenericQuote.module.scss +7 -6
- package/src/components/utils/CameraIcon.jsx +18 -0
- package/src/index.js +2 -0
package/README.md
CHANGED
|
@@ -9,10 +9,11 @@ A comprehensive React component library used by the VISNS Studio team for CRM an
|
|
|
9
9
|
|
|
10
10
|
VISNS Components is a React-based UI component library that provides a set of reusable, consistent, and customizable components for building web applications. It includes components for authentication, data grids, forms, navigation, and more, designed to work seamlessly together.
|
|
11
11
|
|
|
12
|
-
## Recent Updates (v5.15.
|
|
12
|
+
## Recent Updates (v5.15.4)
|
|
13
13
|
|
|
14
14
|
### Latest Enhancements
|
|
15
15
|
|
|
16
|
+
- **CameraPlacement Module**: New interactive camera placement tool with Verkada database integration, FOV visualization, grid-based camera selection, save/load functionality, and professional export capabilities
|
|
16
17
|
- **Complete StandardModal Migration**: All components now use StandardModal instead of reactjs-popup for consistent modal behavior across the entire library
|
|
17
18
|
- **HTML Content Support**: Terms and conditions now properly parse HTML content from TinyMCE editors with clean rendering
|
|
18
19
|
- **Improved Typography**: Refined font sizing in Terms and Conditions to match page typography hierarchy
|
|
@@ -73,6 +74,7 @@ VISNS Components is a React-based UI component library that provides a set of re
|
|
|
73
74
|
- **StandardModal** - Reusable modal component with consistent styling
|
|
74
75
|
- **Call Popup** - Modal dialogs
|
|
75
76
|
- **QR Code** - QR code generation and printing
|
|
77
|
+
- **CameraPlacement** - Interactive camera placement tool with Verkada database, FOV visualization, and save/load functionality
|
|
76
78
|
|
|
77
79
|
### Generic Pages
|
|
78
80
|
|
|
@@ -2450,6 +2452,45 @@ The CustomFetch component includes these features:
|
|
|
2450
2452
|
- **CSRF Protection**: Redirects to login page on CSRF token mismatch
|
|
2451
2453
|
- **Authentication Handling**: Silently handles unauthenticated errors without showing toast notifications
|
|
2452
2454
|
|
|
2455
|
+
#### CameraPlacement
|
|
2456
|
+
Interactive camera placement and visualization tool for security system design. Features a comprehensive Verkada camera database, FOV triangle visualization, and project save/load functionality.
|
|
2457
|
+
|
|
2458
|
+
```jsx
|
|
2459
|
+
import { CameraPlacement } from 'visns-components';
|
|
2460
|
+
|
|
2461
|
+
<CameraPlacement />
|
|
2462
|
+
```
|
|
2463
|
+
|
|
2464
|
+
**Key Features:**
|
|
2465
|
+
- **Dual Mode Support**: Switch between Mapbox map integration and image-based placement
|
|
2466
|
+
- **Verkada Database**: Complete catalog of Verkada cameras with specifications, FOV, and environmental ratings
|
|
2467
|
+
- **Grid-Based Selection**: Visual camera selection modal with categorized camera cards showing specs and icons
|
|
2468
|
+
- **FOV Visualization**: Intelligent field-of-view triangles with inverse distance scaling for realistic coverage display
|
|
2469
|
+
- **Interactive Placement**: Drag-and-drop camera positioning with rotation handles for directional adjustment
|
|
2470
|
+
- **Save/Load Projects**: Export/import camera placements as JSON files for project continuity
|
|
2471
|
+
- **Export Functionality**: Generate high-quality PNG exports with side-by-side camera reference lists
|
|
2472
|
+
- **SweetAlert Integration**: Professional modal dialogs for confirmations and notifications
|
|
2473
|
+
|
|
2474
|
+
**Camera Database:**
|
|
2475
|
+
- **29+ Camera Models**: Complete Verkada lineup including dome, bullet, PTZ, multisensor, fisheye, mini, and video intercom cameras
|
|
2476
|
+
- **Detailed Specifications**: Resolution, FOV, IR range, sensor size, environment rating, and feature lists
|
|
2477
|
+
- **Smart Categorization**: Organized by camera type with visual icons and environment compatibility
|
|
2478
|
+
- **Advanced Models**: Support for optical zoom, telephoto lenses, 4K resolution, and specialized features
|
|
2479
|
+
|
|
2480
|
+
**Technical Capabilities:**
|
|
2481
|
+
- **Map Integration**: Mapbox GL JS with geocoding search and satellite imagery
|
|
2482
|
+
- **Image Upload**: Support for floor plans and site diagrams with HTML5 file API
|
|
2483
|
+
- **FOV Calculations**: Dynamic triangle sizing based on camera specifications with mathematical precision
|
|
2484
|
+
- **Export Quality**: HTML2Canvas integration for professional-grade layout exports
|
|
2485
|
+
- **State Management**: React hooks-based architecture with real-time updates
|
|
2486
|
+
|
|
2487
|
+
**Use Cases:**
|
|
2488
|
+
- Security system design and planning
|
|
2489
|
+
- Camera coverage analysis and optimization
|
|
2490
|
+
- Client presentations with visual layouts
|
|
2491
|
+
- Installation planning and documentation
|
|
2492
|
+
- Site survey and assessment tools
|
|
2493
|
+
|
|
2453
2494
|
#### Download
|
|
2454
2495
|
|
|
2455
2496
|
File download utility.
|
|
@@ -3660,13 +3701,23 @@ All existing GenericQuote functionality remains unchanged:
|
|
|
3660
3701
|
|
|
3661
3702
|
Proposal features are **opt-in** and activated only when `proposalConfig.enabled: true` is set.
|
|
3662
3703
|
|
|
3663
|
-
**Recent Improvements (v5.15.3):**
|
|
3704
|
+
**Recent Improvements (v5.15.3 & 2025 Updates):**
|
|
3664
3705
|
- **StandardModal Integration**: Replaced reactjs-popup with StandardModal for consistent modal behavior and better maintainability
|
|
3665
3706
|
- **HTML Content Rendering**: Terms and conditions now support rich HTML content from TinyMCE editors with proper parsing via `html-react-parser`
|
|
3666
3707
|
- **Typography Optimization**: Refined font sizing (14px desktop, 12px mobile) for better visual hierarchy and page consistency
|
|
3667
3708
|
- **Enhanced Styling**: Improved CSS for HTML elements including lists, paragraphs, and formatted text in terms sections
|
|
3668
3709
|
- **Complete Modal Consistency**: All modals throughout the library now use the same StandardModal component
|
|
3669
3710
|
|
|
3711
|
+
**Latest 2025 Enhancements:**
|
|
3712
|
+
- **Enhanced Content Editor Modal**: Increased modal dimensions (98% width, 95% height) for better TinyMCE integration
|
|
3713
|
+
- **Streamlined Section Management**: Removed unnecessary section type selector from Edit Proposal Content modal
|
|
3714
|
+
- **Maximized Editor Space**: TinyMCE editor height increased from 400px to 500px with improved container sizing
|
|
3715
|
+
- **Dynamic Template Integration**: Template section titles now properly populate from backend configuration instead of hardcoded values
|
|
3716
|
+
- **Improved Content Flow**: Fixed proposal content insertion ensuring custom content appears correctly in generated PDFs
|
|
3717
|
+
- **Professional PDF Layout**: Enhanced margin handling with 40px/50px margins for all sections (except cover page preservation)
|
|
3718
|
+
- **Branding Color System**: Automatic application of branding profile colors (H1=primary, H2=secondary, H3=accent)
|
|
3719
|
+
- **Robust PDF Generation**: Improved error handling and blank page prevention during proposal PDF creation
|
|
3720
|
+
|
|
3670
3721
|
**Advanced Usage Example:**
|
|
3671
3722
|
|
|
3672
3723
|
```jsx
|
package/package.json
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
"@fontsource/barlow": "^5.2.6",
|
|
8
8
|
"@inovua/reactdatagrid-community": "^5.10.2",
|
|
9
9
|
"@inovua/reactdatagrid-enterprise": "^5.10.2",
|
|
10
|
+
"@mapbox/mapbox-gl-geocoder": "^5.1.0",
|
|
10
11
|
"@nivo/bar": "^0.99.0",
|
|
11
12
|
"@nivo/core": "^0.99.0",
|
|
12
13
|
"@nivo/line": "^0.99.0",
|
|
@@ -27,9 +28,11 @@
|
|
|
27
28
|
"file-saver": "^2.0.5",
|
|
28
29
|
"framer-motion": "^12.23.12",
|
|
29
30
|
"html-react-parser": "^5.2.6",
|
|
31
|
+
"html2canvas": "^1.4.1",
|
|
30
32
|
"lodash": "^4.17.21",
|
|
31
33
|
"lodash.debounce": "^4.0.8",
|
|
32
34
|
"lucide-react": "^0.536.0",
|
|
35
|
+
"mapbox-gl": "^3.14.0",
|
|
33
36
|
"moment": "^2.30.1",
|
|
34
37
|
"motion": "^12.23.12",
|
|
35
38
|
"numeral": "^2.0.6",
|
|
@@ -90,7 +93,7 @@
|
|
|
90
93
|
"react-dom": "^17.0.0 || ^18.0.0"
|
|
91
94
|
},
|
|
92
95
|
"name": "@visns-studio/visns-components",
|
|
93
|
-
"version": "5.15.
|
|
96
|
+
"version": "5.15.5",
|
|
94
97
|
"description": "Various packages to assist in the development of our Custom Applications.",
|
|
95
98
|
"main": "src/index.js",
|
|
96
99
|
"files": [
|