50 lines
3.7 KiB
TypeScript
50 lines
3.7 KiB
TypeScript
import type { ComponentType } from "react";
|
|
|
|
type LazyImport = () => Promise<{ default: ComponentType<any> }>;
|
|
|
|
export const componentMap: Record<string, LazyImport> = {
|
|
"akkam-bakkam": () => import("@/components/interactives/AkkamBakkam"),
|
|
"binary-number-game": () => import("@/components/interactives/BinaryNumberGame"),
|
|
"ternary-number-game": () => import("@/components/interactives/TernaryNumberGame"),
|
|
"balanced-ternary-game": () => import("@/components/interactives/BalancedTernaryGame"),
|
|
"zeckendorf-game": () => import("@/components/interactives/ZeckendorfGame"),
|
|
"zeckendorf-search-trick": () => import("@/components/interactives/ZeckendorfSearchTrick"),
|
|
"binary-search-trick": () => import("@/components/interactives/BinarySearchTrick"),
|
|
"ternary-search-trick": () => import("@/components/interactives/TernarySearchTrick"),
|
|
"game-of-sim": () => import("@/components/interactives/GameOfSim"),
|
|
"northcotts-game": () => import("@/components/interactives/NorthcottsGame"),
|
|
"nim-game": () => import("@/components/interactives/NimGame"),
|
|
"assisted-nim-game": () => import("@/components/interactives/AssistedNimGame"),
|
|
"gold-coin-game": () => import("@/components/interactives/GoldCoinGame"),
|
|
"subtraction-game": () => import("@/components/interactives/SubtractionGame"),
|
|
"craps-game": () => import("@/components/interactives/CrapsGame"),
|
|
"bagchal-game": () => import("@/components/interactives/BagchalGame"),
|
|
"guessing-game": () => import("@/components/interactives/GuessingGame"),
|
|
"knights-puzzle": () => import("@/components/interactives/KnightsPuzzle"),
|
|
"plate-swap-puzzle": () => import("@/components/interactives/PlateSwapPuzzle"),
|
|
"chessboard-repaint-puzzle": () => import("@/components/interactives/ChessboardRepaintPuzzle"),
|
|
"n-queens-puzzle": () => import("@/components/interactives/NQueensPuzzle"),
|
|
"sikinia-parliament-puzzle": () => import("@/components/interactives/SikiniaParliamentPuzzle"),
|
|
"bulgarian-solitaire": () => import("@/components/interactives/BulgarianSolitaire"),
|
|
"pebble-placement-game": () => import("@/components/interactives/PebblePlacementGame"),
|
|
"stacking-blocks": () => import("@/components/interactives/StackingBlocks"),
|
|
"domino-retiling-puzzle": () => import("@/components/interactives/DominoRetilingPuzzle"),
|
|
"asc-desc-grid-puzzle": () => import("@/components/interactives/AscDescGridPuzzle"),
|
|
"ladybug-clock-puzzle": () => import("@/components/interactives/LadybugClockPuzzle"),
|
|
"erdos-discrepancy-puzzle": () => import("@/components/interactives/ErdosDiscrepancyPuzzle"),
|
|
"parity-bits-game": () => import("@/components/interactives/ParityBitsGame"),
|
|
"rules-of-inference": () => import("@/components/interactives/RulesOfInferencePlayground"),
|
|
"neighbor-sum-avoidance": () => import("@/components/interactives/NeighborSumAvoidance"),
|
|
"burnsides-lemma": () => import("@/components/interactives/BurnsidesLemma"),
|
|
"cube-coloring": () => import("@/components/interactives/CubeColoring"),
|
|
"presents-puzzle": () => import("@/components/interactives/PresentsPuzzle"),
|
|
"ferrers-rogers-ramanujan": () => import("@/components/interactives/FerrersRogersRamanujan"),
|
|
"grid-tiling-puzzle": () => import("@/components/interactives/GridTilingPuzzle"),
|
|
"sunny-lines-puzzle": () => import("@/components/interactives/SunnyLinesPuzzle"),
|
|
"rent-division-puzzle": () => import("@/components/interactives/RentDivisionPuzzle"),
|
|
"eternal-domination-game": () => import("@/components/interactives/EternalDominationGame"),
|
|
"knights-and-knaves": () => import("@/components/interactives/KnightsAndKnavesI"),
|
|
"three-bank-accounts": () => import("@/components/interactives/ThreeBankAccounts"),
|
|
"computing-pi": () => import("@/components/interactives/ComputingPi"),
|
|
"kasuti": () => import("@/components/interactives/KasutiEmbroidery"),
|
|
};
|