import { generateThreeDIntersectionDiagram } from "@/widgets/generators/3d-intersection-diagram" import { generateAdditionWithRegrouping } from "@/widgets/generators/addition-with-regrouping" import { generateAngleDiagram } from "@/widgets/generators/angle-diagram" import { generateAngleTypeDiagram } from "@/widgets/generators/angle-type-diagram" import { generateAreaGraph } from "@/widgets/generators/area-graph" import { generateAreaModelMultiplication } from "@/widgets/generators/area-model-multiplication" import { generateBarChart } from "@/widgets/generators/bar-chart" import { generateBoxGrid } from "@/widgets/generators/box-grid" import { generateBoxPlot } from "@/widgets/generators/box-plot" import { generateCircleAngleDiagram } from "@/widgets/generators/circle-angle-diagram" import { generateCircleDiagram } from "@/widgets/generators/circle-diagram" import { generateClockDiagram } from "@/widgets/generators/clock-diagram" import { generateCompositeShapeDiagram } from "@/widgets/generators/composite-shape-diagram" import { generateConceptualGraph } from "@/widgets/generators/conceptual-graph" import { generateCoordinatePlaneComprehensive } from "@/widgets/generators/coordinate-plane-comprehensive" import { generateCustomPolygonDiagram } from "@/widgets/generators/custom-polygon-diagram" import { generateDataTable } from "@/widgets/generators/data-table" import { generateDecoratedNumber } from "@/widgets/generators/decorated-number" import { generateDiscreteObjectRatioDiagram } from "@/widgets/generators/discrete-object-ratio-diagram" import { generateDivergentBarChart } from "@/widgets/generators/divergent-bar-chart" import { generateDivisionAreaDiagram } from "@/widgets/generators/division-area-diagram" import { generateDivisionModelDiagram } from "@/widgets/generators/division-model-diagram" import { generateDotPlot } from "@/widgets/generators/dot-plot" import { generateDoubleNumberLine } from "@/widgets/generators/double-number-line" import { generateEmojiImage } from "@/widgets/generators/emoji-image" import { generateEquivalentFractionModel } from "@/widgets/generators/equivalent-fraction-model" import { generateFactorizationDiagram } from "@/widgets/generators/factorization-diagram" import { generateFigureComparisonDiagram } from "@/widgets/generators/figure-comparison-diagram" import { generateFractionFrequencyPlot } from "@/widgets/generators/fraction-frequency-plot" import { generateFractionMultiplicationModel } from "@/widgets/generators/fraction-multiplication-model" import { generateFractionSumDiagram } from "@/widgets/generators/fraction-sum-diagram" import { generateFractionModelDiagram } from "@/widgets/generators/fractional-model-diagram" import { generateFreeBodyDiagram } from "@/widgets/generators/free-body-diagram" import { generateFunctionPlotGraph } from "@/widgets/generators/function-plot-graph" import { generateGeometricPrimitiveDiagram } from "@/widgets/generators/geometric-primitive-diagram" import { generateGeometricSolidDiagram } from "@/widgets/generators/geometric-solid-diagram" import { generateHangerDiagram } from "@/widgets/generators/hanger-diagram" import { generateHistogram } from "@/widgets/generators/histogram" import { generateInequalityNumberLine } from "@/widgets/generators/inequality-number-line" import { generateIntegerChipLegend } from "@/widgets/generators/integer-chip-legend" import { generateIntegerChipModel } from "@/widgets/generators/integer-chip-model" import { generateKeelingCurve } from "@/widgets/generators/keeling-curve" import { generateLabeledRectangleDiagram } from "@/widgets/generators/labeled-rectangle-diagram" import { generateLineDiagram } from "@/widgets/generators/line-diagram" import { generateLineEquationGraph } from "@/widgets/generators/line-equation-graph" import { generateLineGraph } from "@/widgets/generators/line-graph" import { generateMarbleDiagram } from "@/widgets/generators/marble-diagram" import { generateNPolygon } from "@/widgets/generators/n-polygon" import { generateNumberLine } from "@/widgets/generators/number-line" import { generateNumberLineWithAction } from "@/widgets/generators/number-line-with-action" import { generateNumberLineWithFractionGroups } from "@/widgets/generators/number-line-with-fraction-groups" import { generateNumberSetDiagram } from "@/widgets/generators/number-set-diagram" import { generateParabolaGraph } from "@/widgets/generators/parabola-graph" import { generateParallelogramTrapezoidDiagram } from "@/widgets/generators/parallelogram-trapezoid-diagram" import { generatePartitionedShape } from "@/widgets/generators/partitioned-shape" import { generatePatternDiagram } from "@/widgets/generators/pattern-diagram" import { generatePentagonIntersectionDiagram } from "@/widgets/generators/pentagon-intersection-diagram" import { generatePeriodicTable } from "@/widgets/generators/periodic-table" import { generatePESSpectrum } from "@/widgets/generators/pes-spectrum" import { generatePieChart } from "@/widgets/generators/pi-chart" import { generatePictograph } from "@/widgets/generators/pictograph" import { generatePointPlotGraph } from "@/widgets/generators/point-plot-graph" import { generatePolygonGraph } from "@/widgets/generators/polygon-graph" import { generatePolyhedronDiagram } from "@/widgets/generators/polyhedron-diagram" import { generatePolyhedronNetDiagram } from "@/widgets/generators/polyhedron-net-diagram" import { generatePopulationBarChart } from "@/widgets/generators/population-bar-chart" import { generatePopulationChangeEventGraph } from "@/widgets/generators/population-change-event-graph" import { generateProbabilitySpinner } from "@/widgets/generators/probability-spinner" import { generateProtractorAngleDiagram } from "@/widgets/generators/protractor-angle-diagram" import { generatePythagoreanProofDiagram } from "@/widgets/generators/pythagorean-proof-diagram" import { generateQuadrantDiagram } from "@/widgets/generators/quadrant-diagram" import { generateQuantityFractionalDiagram } from "@/widgets/generators/quantity-fractional-diagram" import { generateRadiallyConstrainedAngleDiagram } from "@/widgets/generators/radially-constrained-angle-diagram" import { generateRatioBoxDiagram } from "@/widgets/generators/ratio-box-diagram" import { generateRectangularFrameDiagram } from "@/widgets/generators/rectangular-frame-diagram" import { generateScaleCopiesSlider } from "@/widgets/generators/scale-copies-slider" import { generateScatterPlot } from "@/widgets/generators/scatter-plot" import { generateShapeTransformationGraph } from "@/widgets/generators/shape-transformation-graph" import { generateSimpleArrow } from "@/widgets/generators/simple-arrow" import { generateSinCosineWidget } from "@/widgets/generators/sin-cosine-widget" import { generateStackedItemsDiagram } from "@/widgets/generators/stacked-items-diagram" import { generateStemLeafPlot } from "@/widgets/generators/stem-leaf-plot" import { generateStickPlot } from "@/widgets/generators/stick-plot" import { generateSubtractionWithRegrouping } from "@/widgets/generators/subtraction-with-regrouping" import { generateSymmetryDiagram } from "@/widgets/generators/symmetry-diagram" import { generateTapeDiagram } from "@/widgets/generators/tape-diagram" import { generateTransformationDiagram } from "@/widgets/generators/transformation-diagram" import { generateTransversalAngleDiagram } from "@/widgets/generators/transversal-angle-diagram" import { generateTreeDiagram } from "@/widgets/generators/tree-diagram" import { generateTriangleDiagram } from "@/widgets/generators/triangle-diagram" import { generateUnitBlockDiagram } from "@/widgets/generators/unit-block-diagram" import { generateUrlImage } from "@/widgets/generators/url-image" import { generateVectorDiagram } from "@/widgets/generators/vector-diagram" import { generateVennDiagram } from "@/widgets/generators/venn-diagram" import { generateVerticalArithmeticSetup } from "@/widgets/generators/vertical-arithmetic-setup" import { generateVideo } from "@/widgets/generators/video" import { generateWheelDiagram } from "@/widgets/generators/wheel-diagram" import { allWidgetSchemas } from "@/widgets/registry" /** * The single source of truth for all widget definitions. Each entry pairs a * Zod schema with its corresponding generator function. */ export const allWidgetDefinitions = { threeDIntersectionDiagram: { schema: allWidgetSchemas.threeDIntersectionDiagram, generator: generateThreeDIntersectionDiagram }, quadrantDiagram: { schema: allWidgetSchemas.quadrantDiagram, generator: generateQuadrantDiagram }, clockDiagram: { schema: allWidgetSchemas.clockDiagram, generator: generateClockDiagram }, angleDiagram: { schema: allWidgetSchemas.angleDiagram, generator: generateAngleDiagram }, angleTypeDiagram: { schema: allWidgetSchemas.angleTypeDiagram, generator: generateAngleTypeDiagram }, circleAngleDiagram: { schema: allWidgetSchemas.circleAngleDiagram, generator: generateCircleAngleDiagram }, areaModelMultiplication: { schema: allWidgetSchemas.areaModelMultiplication, generator: generateAreaModelMultiplication }, areaGraph: { schema: allWidgetSchemas.areaGraph, generator: generateAreaGraph }, barChart: { schema: allWidgetSchemas.barChart, generator: generateBarChart }, boxGrid: { schema: allWidgetSchemas.boxGrid, generator: generateBoxGrid }, boxPlot: { schema: allWidgetSchemas.boxPlot, generator: generateBoxPlot }, circleDiagram: { schema: allWidgetSchemas.circleDiagram, generator: generateCircleDiagram }, fractionModelDiagram: { schema: allWidgetSchemas.fractionModelDiagram, generator: generateFractionModelDiagram }, fractionMultiplicationModel: { schema: allWidgetSchemas.fractionMultiplicationModel, generator: generateFractionMultiplicationModel }, compositeShapeDiagram: { schema: allWidgetSchemas.compositeShapeDiagram, generator: generateCompositeShapeDiagram }, conceptualGraph: { schema: allWidgetSchemas.conceptualGraph, generator: generateConceptualGraph }, coordinatePlane: { schema: allWidgetSchemas.coordinatePlane, generator: generateCoordinatePlaneComprehensive }, divergentBarChart: { schema: allWidgetSchemas.divergentBarChart, generator: generateDivergentBarChart }, functionPlotGraph: { schema: allWidgetSchemas.functionPlotGraph, generator: generateFunctionPlotGraph }, lineEquationGraph: { schema: allWidgetSchemas.lineEquationGraph, generator: generateLineEquationGraph }, pointPlotGraph: { schema: allWidgetSchemas.pointPlotGraph, generator: generatePointPlotGraph }, populationChangeEventGraph: { schema: allWidgetSchemas.populationChangeEventGraph, generator: generatePopulationChangeEventGraph }, polygonGraph: { schema: allWidgetSchemas.polygonGraph, generator: generatePolygonGraph }, protractorAngleDiagram: { schema: allWidgetSchemas.protractorAngleDiagram, generator: generateProtractorAngleDiagram }, radiallyConstrainedAngleDiagram: { schema: allWidgetSchemas.radiallyConstrainedAngleDiagram, generator: generateRadiallyConstrainedAngleDiagram }, shapeTransformationGraph: { schema: allWidgetSchemas.shapeTransformationGraph, generator: generateShapeTransformationGraph }, discreteObjectRatioDiagram: { schema: allWidgetSchemas.discreteObjectRatioDiagram, generator: generateDiscreteObjectRatioDiagram }, dotPlot: { schema: allWidgetSchemas.dotPlot, generator: generateDotPlot }, doubleNumberLine: { schema: allWidgetSchemas.doubleNumberLine, generator: generateDoubleNumberLine }, populationBarChart: { schema: allWidgetSchemas.populationBarChart, generator: generatePopulationBarChart }, emojiImage: { schema: allWidgetSchemas.emojiImage, generator: generateEmojiImage }, figureComparisonDiagram: { schema: allWidgetSchemas.figureComparisonDiagram, generator: generateFigureComparisonDiagram }, fractionSumDiagram: { schema: allWidgetSchemas.fractionSumDiagram, generator: generateFractionSumDiagram }, geometricPrimitiveDiagram: { schema: allWidgetSchemas.geometricPrimitiveDiagram, generator: generateGeometricPrimitiveDiagram }, geometricSolidDiagram: { schema: allWidgetSchemas.geometricSolidDiagram, generator: generateGeometricSolidDiagram }, hangerDiagram: { schema: allWidgetSchemas.hangerDiagram, generator: generateHangerDiagram }, histogram: { schema: allWidgetSchemas.histogram, generator: generateHistogram }, nPolygon: { schema: allWidgetSchemas.nPolygon, generator: generateNPolygon }, patternDiagram: { schema: allWidgetSchemas.patternDiagram, generator: generatePatternDiagram }, inequalityNumberLine: { schema: allWidgetSchemas.inequalityNumberLine, generator: generateInequalityNumberLine }, keelingCurve: { schema: allWidgetSchemas.keelingCurve, generator: generateKeelingCurve }, lineGraph: { schema: allWidgetSchemas.lineGraph, generator: generateLineGraph }, numberLine: { schema: allWidgetSchemas.numberLine, generator: generateNumberLine }, numberLineWithAction: { schema: allWidgetSchemas.numberLineWithAction, generator: generateNumberLineWithAction }, numberLineWithFractionGroups: { schema: allWidgetSchemas.numberLineWithFractionGroups, generator: generateNumberLineWithFractionGroups }, numberSetDiagram: { schema: allWidgetSchemas.numberSetDiagram, generator: generateNumberSetDiagram }, parabolaGraph: { schema: allWidgetSchemas.parabolaGraph, generator: generateParabolaGraph }, partitionedShape: { schema: allWidgetSchemas.partitionedShape, generator: generatePartitionedShape }, pentagonIntersectionDiagram: { schema: allWidgetSchemas.pentagonIntersectionDiagram, generator: generatePentagonIntersectionDiagram }, pictograph: { schema: allWidgetSchemas.pictograph, generator: generatePictograph }, integerChipModel: { schema: allWidgetSchemas.integerChipModel, generator: generateIntegerChipModel }, integerChipLegend: { schema: allWidgetSchemas.integerChipLegend, generator: generateIntegerChipLegend }, polyhedronDiagram: { schema: allWidgetSchemas.polyhedronDiagram, generator: generatePolyhedronDiagram }, probabilitySpinner: { schema: allWidgetSchemas.probabilitySpinner, generator: generateProbabilitySpinner }, polyhedronNetDiagram: { schema: allWidgetSchemas.polyhedronNetDiagram, generator: generatePolyhedronNetDiagram }, pythagoreanProofDiagram: { schema: allWidgetSchemas.pythagoreanProofDiagram, generator: generatePythagoreanProofDiagram }, quantityFractionalDiagram: { schema: allWidgetSchemas.quantityFractionalDiagram, generator: generateQuantityFractionalDiagram }, ratioBoxDiagram: { schema: allWidgetSchemas.ratioBoxDiagram, generator: generateRatioBoxDiagram }, rectangularFrameDiagram: { schema: allWidgetSchemas.rectangularFrameDiagram, generator: generateRectangularFrameDiagram }, scaleCopiesSlider: { schema: allWidgetSchemas.scaleCopiesSlider, generator: generateScaleCopiesSlider }, simpleArrow: { schema: allWidgetSchemas.simpleArrow, generator: generateSimpleArrow }, sinCosineWidget: { schema: allWidgetSchemas.sinCosineWidget, generator: generateSinCosineWidget }, scatterPlot: { schema: allWidgetSchemas.scatterPlot, generator: generateScatterPlot }, stackedItemsDiagram: { schema: allWidgetSchemas.stackedItemsDiagram, generator: generateStackedItemsDiagram }, tapeDiagram: { schema: allWidgetSchemas.tapeDiagram, generator: generateTapeDiagram }, transformationDiagram: { schema: allWidgetSchemas.transformationDiagram, generator: generateTransformationDiagram }, transversalAngleDiagram: { schema: allWidgetSchemas.transversalAngleDiagram, generator: generateTransversalAngleDiagram }, treeDiagram: { schema: allWidgetSchemas.treeDiagram, generator: generateTreeDiagram }, triangleDiagram: { schema: allWidgetSchemas.triangleDiagram, generator: generateTriangleDiagram }, unitBlockDiagram: { schema: allWidgetSchemas.unitBlockDiagram, generator: generateUnitBlockDiagram }, periodicTable: { schema: allWidgetSchemas.periodicTable, generator: generatePeriodicTable }, urlImage: { schema: allWidgetSchemas.urlImage, generator: generateUrlImage }, vennDiagram: { schema: allWidgetSchemas.vennDiagram, generator: generateVennDiagram }, verticalArithmeticSetup: { schema: allWidgetSchemas.verticalArithmeticSetup, generator: generateVerticalArithmeticSetup }, vectorDiagram: { schema: allWidgetSchemas.vectorDiagram, generator: generateVectorDiagram }, parallelogramTrapezoidDiagram: { schema: allWidgetSchemas.parallelogramTrapezoidDiagram, generator: generateParallelogramTrapezoidDiagram }, pieChart: { schema: allWidgetSchemas.pieChart, generator: generatePieChart }, fractionFrequencyPlot: { schema: allWidgetSchemas.fractionFrequencyPlot, generator: generateFractionFrequencyPlot }, freeBodyDiagram: { schema: allWidgetSchemas.freeBodyDiagram, generator: generateFreeBodyDiagram }, divisionAreaDiagram: { schema: allWidgetSchemas.divisionAreaDiagram, generator: generateDivisionAreaDiagram }, divisionModelDiagram: { schema: allWidgetSchemas.divisionModelDiagram, generator: generateDivisionModelDiagram }, factorizationDiagram: { schema: allWidgetSchemas.factorizationDiagram, generator: generateFactorizationDiagram }, equivalentFractionModel: { schema: allWidgetSchemas.equivalentFractionModel, generator: generateEquivalentFractionModel }, subtractionWithRegrouping: { schema: allWidgetSchemas.subtractionWithRegrouping, generator: generateSubtractionWithRegrouping }, additionWithRegrouping: { schema: allWidgetSchemas.additionWithRegrouping, generator: generateAdditionWithRegrouping }, wheelDiagram: { schema: allWidgetSchemas.wheelDiagram, generator: generateWheelDiagram }, labeledRectangleDiagram: { schema: allWidgetSchemas.labeledRectangleDiagram, generator: generateLabeledRectangleDiagram }, customPolygonDiagram: { schema: allWidgetSchemas.customPolygonDiagram, generator: generateCustomPolygonDiagram }, lineDiagram: { schema: allWidgetSchemas.lineDiagram, generator: generateLineDiagram }, pesSpectrum: { schema: allWidgetSchemas.pesSpectrum, generator: generatePESSpectrum }, stickPlot: { schema: allWidgetSchemas.stickPlot, generator: generateStickPlot }, video: { schema: allWidgetSchemas.video, generator: generateVideo }, marbleDiagram: { schema: allWidgetSchemas.marbleDiagram, generator: generateMarbleDiagram }, symmetryDiagram: { schema: allWidgetSchemas.symmetryDiagram, generator: generateSymmetryDiagram }, stemLeafPlot: { schema: allWidgetSchemas.stemLeafPlot, generator: generateStemLeafPlot }, dataTable: { schema: allWidgetSchemas.dataTable, generator: generateDataTable }, decoratedNumber: { schema: allWidgetSchemas.decoratedNumber, generator: generateDecoratedNumber } } as const // This type is inferred from the const object above and represents the complete, // strongly-typed set of all widget definitions. export type AllWidgetDefinitions = typeof allWidgetDefinitions