@teachinglab/omd
Version:
omd
67 lines (55 loc) • 2.44 kB
JavaScript
/**
* OMD Library - Main Entry Point
*
* This is the main entry point for the OMD (Open Math Display) library.
* It exports all core OMD components and visualization tools from a single endpoint.
*
* Usage:
* import { omdTable, omdBalanceHanger, omdEquationNode, omdDisplay } from '@teachinglab/omd'
*
* Or for dynamic imports:
* const { omdTable } = await import('@teachinglab/omd')
*/
// Export everything from the core OMD library (equations, nodes, display, etc.)
export * from './omd/core/index.js';
// Export everything from the visualization components
export * from './src/index.js';
// Export utility components
export { omdNodeOverlay, omdNodeOverlayPresets } from './omd/utils/omdNodeOverlay.js';
// Re-export the most commonly used components for easy access
export { omdTable } from './src/omdTable.js';
export { omdBalanceHanger } from './src/omdBalanceHanger.js';
export { omdCoordinatePlane } from './src/omdCoordinatePlane.js';
export { omdTapeDiagram } from './src/omdTapeDiagram.js';
// Default export combining core and visualizations
export default {
// Core OMD framework (from omd/core/index.js)
core: () => import('./omd/core/index.js'),
// Visualization components (from src/index.js)
visualizations: () => import('./src/index.js'),
// Direct access to most used components
async createTable(config) {
const { omdTable } = await import('./src/omdTable.js');
return new omdTable(config);
},
async createBalanceHanger(config) {
const { omdBalanceHanger } = await import('./src/omdBalanceHanger.js');
return new omdBalanceHanger(config);
},
async createCoordinatePlane(config) {
const { omdCoordinatePlane } = await import('./src/omdCoordinatePlane.js');
return new omdCoordinatePlane(config);
},
async createTapeDiagram(config) {
const { omdTapeDiagram } = await import('./src/omdTapeDiagram.js');
return new omdTapeDiagram(config);
},
async createEquation(equationString) {
const { omdEquationNode } = await import('./omd/core/index.js');
return omdEquationNode.fromString(equationString);
},
async createDisplay(container) {
const { omdDisplay } = await import('./omd/core/index.js');
return new omdDisplay(container);
}
};