Thank you for your interest in contributing to Interactive Media Spots!
git clone https://github.com/rnd-pro/interactive-media-spots.git
cd interactive-media-spots
npm installlib/ — Shared base classes and utilities
ImsBaseClass.js — Base class for all widgets
FullscreenMgr.js — Fullscreen API manager
ImageReader.js — Image sequence loader with progress
tokens.css — CSS design tokens
validateConfig.js — Runtime config validation
wgt/ — Widget implementations
diff/ — Image comparison
gallery/ — Image gallery
pano/ — 360° panorama viewer
spinner/ — 360° object viewer
video/ — Video player with HLS
viewer/ — Universal CDN-driven loader
tests/ — Unit tests (Node.js test runner)
Each widget follows this structure:
index.js— Component class extendingImsBaseClasstemplate.js— HTML templatestyles.js— Shadow DOM stylesImsXxxData.js— Data schema classtest.html— Manual test pagetest-data.json— Test fixture data
npm test- Single quotes for strings
- 2-space indentation
- Semicolons required
- ESM only (no
require) - Use
#for private class fields - JSDoc for type annotations
- Modern CSS nesting
- No external CSS frameworks
- Fork and create a feature branch
- Make your changes following the code style above
- Add/update tests for new functionality
- Ensure
npm testpasses - Submit a PR with a clear description
By contributing, you agree that your contributions will be licensed under the MIT License.