cubing 0.21.2 → 0.23.0

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.
Files changed (581) hide show
  1. package/README.md +5 -8
  2. package/alg/package.json +1 -3
  3. package/bluetooth/package.json +1 -3
  4. package/dist/bin/order.js +16675 -0
  5. package/dist/bin/order.js.map +7 -0
  6. package/dist/bin/puzzle-geometry-bin.js +13 -9
  7. package/dist/bin/puzzle-geometry-bin.js.map +2 -2
  8. package/dist/bundle-global/cubing.bundle-global.js +3285 -291
  9. package/dist/esm/2x2x2.sgs.json-FRBWMMA7.js +122 -0
  10. package/dist/esm/2x2x2.sgs.json-FRBWMMA7.js.map +7 -0
  11. package/dist/esm/3d-Q4WSD4BC.js +21 -0
  12. package/dist/esm/3d-Q4WSD4BC.js.map +7 -0
  13. package/dist/esm/alg/index.js +1 -1
  14. package/dist/esm/bluetooth/index.d.ts +1 -1
  15. package/dist/esm/bluetooth/index.js +10 -8
  16. package/dist/esm/bluetooth/index.js.map +3 -3
  17. package/dist/esm/chunk-37EHU3GZ.js +66 -0
  18. package/dist/esm/chunk-37EHU3GZ.js.map +7 -0
  19. package/dist/esm/{chunk-RE7MIN5R.js → chunk-4IUYLRHT.js} +2 -2
  20. package/dist/esm/{chunk-RE7MIN5R.js.map → chunk-4IUYLRHT.js.map} +0 -0
  21. package/dist/esm/chunk-BJIOROQC.js +18 -0
  22. package/dist/esm/chunk-BJIOROQC.js.map +7 -0
  23. package/dist/esm/{chunk-MUQMBH2S.js → chunk-DK6PXBB2.js} +16 -4
  24. package/dist/esm/chunk-DK6PXBB2.js.map +7 -0
  25. package/dist/esm/chunk-DPMEZY7V.js +1552 -0
  26. package/dist/esm/chunk-DPMEZY7V.js.map +7 -0
  27. package/dist/esm/{chunk-BU5PUJK3.js → chunk-EWRBHQFX.js} +1 -1
  28. package/dist/esm/{chunk-BU5PUJK3.js.map → chunk-EWRBHQFX.js.map} +1 -1
  29. package/dist/esm/chunk-FK2SCC3Z.js +499 -0
  30. package/dist/esm/chunk-FK2SCC3Z.js.map +7 -0
  31. package/dist/esm/chunk-JZWB7AIU.js +115 -0
  32. package/dist/esm/chunk-JZWB7AIU.js.map +7 -0
  33. package/dist/esm/chunk-MLOCDLUF.js +226 -0
  34. package/dist/esm/chunk-MLOCDLUF.js.map +7 -0
  35. package/dist/esm/{chunk-APIIMJG6.js → chunk-N3RNWU5T.js} +450 -1052
  36. package/dist/esm/chunk-N3RNWU5T.js.map +7 -0
  37. package/dist/esm/chunk-PUPUQWJC.js +4065 -0
  38. package/dist/esm/chunk-PUPUQWJC.js.map +7 -0
  39. package/dist/esm/{chunk-YV3RT5PX.js → chunk-X6JHXPDX.js} +2 -2
  40. package/dist/esm/{chunk-YV3RT5PX.js.map → chunk-X6JHXPDX.js.map} +0 -0
  41. package/dist/esm/chunk-XVZOMB6J.js +89 -0
  42. package/dist/esm/chunk-XVZOMB6J.js.map +7 -0
  43. package/dist/esm/chunk-Z6X7HTPP.js +103 -0
  44. package/dist/esm/chunk-Z6X7HTPP.js.map +7 -0
  45. package/dist/esm/entry-L6CE2HLF.js +531 -0
  46. package/dist/esm/entry-L6CE2HLF.js.map +7 -0
  47. package/dist/esm/esm-test-worker.js +3 -14
  48. package/dist/esm/esm-test-worker.js.map +3 -3
  49. package/dist/esm/fto.sgs.json-62YNULOK.js +649 -0
  50. package/dist/esm/fto.sgs.json-62YNULOK.js.map +7 -0
  51. package/dist/esm/gwt-B7CBESZR.js +1669 -0
  52. package/dist/esm/gwt-B7CBESZR.js.map +7 -0
  53. package/dist/esm/kpuzzle/index.js +2 -2
  54. package/dist/esm/megaminx.sgs.json-PRL46G5J.js +16 -0
  55. package/dist/esm/megaminx.sgs.json-PRL46G5J.js.map +7 -0
  56. package/dist/esm/module-entry-J2N3UZP7.js +18 -0
  57. package/dist/esm/module-entry-J2N3UZP7.js.map +7 -0
  58. package/dist/esm/{node-BSAQKO3G.js → node-SP4L2AKI.js} +2 -2
  59. package/dist/esm/{node-BSAQKO3G.js.map → node-SP4L2AKI.js.map} +1 -1
  60. package/dist/esm/{node-WEHVBEKP.js → node-W3AD4HBK.js} +3 -2
  61. package/dist/esm/node-W3AD4HBK.js.map +7 -0
  62. package/dist/esm/notation/index.js +2 -2
  63. package/dist/esm/protocol/index.js +2 -2
  64. package/dist/esm/puzzle-geometry/index.js +13 -4049
  65. package/dist/esm/puzzle-geometry/index.js.map +3 -3
  66. package/dist/esm/puzzles/index.js +3 -3
  67. package/dist/esm/pyraminx.sgs.json-7QMPT5XP.js +14 -0
  68. package/dist/esm/pyraminx.sgs.json-7QMPT5XP.js.map +7 -0
  69. package/dist/esm/scramble/index.js +6 -4
  70. package/dist/esm/scramble_444-JP3CWLJM.js +2572 -0
  71. package/dist/esm/scramble_444-JP3CWLJM.js.map +7 -0
  72. package/dist/esm/scramble_sq1-PQ2AYBFW.js +706 -0
  73. package/dist/esm/scramble_sq1-PQ2AYBFW.js.map +7 -0
  74. package/dist/esm/search/index.js +8 -5
  75. package/dist/esm/skewb.sgs.json-FWHYACJG.js +16 -0
  76. package/dist/esm/skewb.sgs.json-FWHYACJG.js.map +7 -0
  77. package/dist/esm/stream/index.js +1 -1
  78. package/dist/esm/twisty/index.js +721 -2343
  79. package/dist/esm/twisty/index.js.map +3 -3
  80. package/dist/esm/worker-inside-generated-string-OWJA5IIQ.js +3450 -0
  81. package/dist/esm/worker-inside-generated-string-OWJA5IIQ.js.map +7 -0
  82. package/dist/types/alg/index.d.ts +1 -0
  83. package/dist/types/alg/index.d.ts.map +1 -1
  84. package/dist/types/alg/units/leaves/Move.d.ts +1 -1
  85. package/dist/types/alg/units/leaves/Move.d.ts.map +1 -1
  86. package/dist/types/bluetooth/smart-puzzle/gan.d.ts.map +1 -1
  87. package/dist/types/cubing.bundle-global.exports.d.ts +25 -0
  88. package/dist/types/cubing.bundle-global.exports.d.ts.map +1 -0
  89. package/dist/types/puzzle-geometry/PGPuzzles.spec.d.ts +3 -0
  90. package/dist/types/puzzle-geometry/PGPuzzles.spec.d.ts.map +1 -1
  91. package/dist/types/puzzle-geometry/PuzzleGeometry.d.ts +7 -3
  92. package/dist/types/puzzle-geometry/PuzzleGeometry.d.ts.map +1 -1
  93. package/dist/types/puzzle-geometry/index.d.ts +1 -1
  94. package/dist/types/puzzle-geometry/index.d.ts.map +1 -1
  95. package/dist/types/puzzles/index.d.ts +1 -1
  96. package/dist/types/puzzles/index.d.ts.map +1 -1
  97. package/dist/types/puzzles/stickerings/cube-stickerings.d.ts.map +1 -1
  98. package/dist/types/search/inside/api.d.ts.map +1 -1
  99. package/dist/types/search/inside/module-entry-path-getter.d.ts +2 -0
  100. package/dist/types/search/inside/module-entry-path-getter.d.ts.map +1 -0
  101. package/dist/types/search/inside/module-entry.d.ts +2 -0
  102. package/dist/types/search/inside/module-entry.d.ts.map +1 -0
  103. package/dist/types/search/inside/solve/puzzles/3x3x3/index.d.ts.map +1 -1
  104. package/dist/types/search/inside/solve/puzzles/4x4x4.d.ts +2 -1
  105. package/dist/types/search/inside/solve/puzzles/4x4x4.d.ts.map +1 -1
  106. package/dist/types/search/inside/solve/puzzles/fto.d.ts +6 -0
  107. package/dist/types/search/inside/solve/puzzles/fto.d.ts.map +1 -0
  108. package/dist/types/search/inside/solve/puzzles/fto.sgs.json.d.ts +5 -0
  109. package/dist/types/search/inside/solve/puzzles/fto.sgs.json.d.ts.map +1 -0
  110. package/dist/types/search/inside/solve/puzzles/sq1.d.ts.map +1 -1
  111. package/dist/types/search/inside/solve/tremble.d.ts.map +1 -1
  112. package/dist/types/search/instantiator.d.ts +1 -2
  113. package/dist/types/search/instantiator.d.ts.map +1 -1
  114. package/dist/types/search/worker-inside-generated-string.d.ts +1 -1
  115. package/dist/types/search/worker-inside-generated-string.d.ts.map +1 -1
  116. package/dist/types/twisty/{old/animation/cursor/CursorTypes.d.ts → controllers/AnimationTypes.d.ts} +10 -3
  117. package/dist/types/twisty/controllers/AnimationTypes.d.ts.map +1 -0
  118. package/dist/types/twisty/{old/animation → controllers}/RenderScheduler.d.ts +0 -0
  119. package/dist/types/twisty/controllers/RenderScheduler.d.ts.map +1 -0
  120. package/dist/types/twisty/controllers/TwistyAnimationController.d.ts +1 -1
  121. package/dist/types/twisty/controllers/TwistyAnimationController.d.ts.map +1 -1
  122. package/dist/types/twisty/{old/animation → controllers}/easing.d.ts +0 -0
  123. package/dist/types/twisty/controllers/easing.d.ts.map +1 -0
  124. package/dist/types/twisty/{old/animation → controllers}/indexer/AlgDuration.d.ts +2 -2
  125. package/dist/types/twisty/controllers/indexer/AlgDuration.d.ts.map +1 -0
  126. package/dist/types/twisty/{old/animation → controllers}/indexer/AlgIndexer.d.ts +3 -3
  127. package/dist/types/twisty/controllers/indexer/AlgIndexer.d.ts.map +1 -0
  128. package/dist/types/twisty/{old/animation → controllers}/indexer/SimpleAlgIndexer.d.ts +3 -3
  129. package/dist/types/twisty/controllers/indexer/SimpleAlgIndexer.d.ts.map +1 -0
  130. package/dist/types/twisty/{old/animation → controllers}/indexer/simultaneous-moves/SimultaneousMoveIndexer.d.ts +3 -3
  131. package/dist/types/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexer.d.ts.map +1 -0
  132. package/dist/types/twisty/{old/animation → controllers}/indexer/simultaneous-moves/SimultaneousMoveIndexerV2.d.ts +3 -3
  133. package/dist/types/twisty/controllers/indexer/simultaneous-moves/SimultaneousMoveIndexerV2.d.ts.map +1 -0
  134. package/dist/types/twisty/{old/animation → controllers}/indexer/simultaneous-moves/simul-moves.d.ts +2 -2
  135. package/dist/types/twisty/controllers/indexer/simultaneous-moves/simul-moves.d.ts.map +1 -0
  136. package/dist/types/twisty/{old/animation → controllers}/indexer/tree/AlgWalker.d.ts +2 -2
  137. package/dist/types/twisty/controllers/indexer/tree/AlgWalker.d.ts.map +1 -0
  138. package/dist/types/twisty/{old/animation → controllers}/indexer/tree/TreeAlgIndexer.d.ts +3 -3
  139. package/dist/types/twisty/controllers/indexer/tree/TreeAlgIndexer.d.ts.map +1 -0
  140. package/dist/types/twisty/controllers/indexer/tree/chunkAlgs.d.ts +3 -0
  141. package/dist/types/twisty/controllers/indexer/tree/chunkAlgs.d.ts.map +1 -0
  142. package/dist/types/twisty/{old/animation → controllers}/stream/timeline-move-calculation-draft.d.ts +2 -2
  143. package/dist/types/twisty/controllers/stream/timeline-move-calculation-draft.d.ts.map +1 -0
  144. package/dist/types/twisty/heavy-code-imports/dynamic-entries/3d.d.ts +1 -2
  145. package/dist/types/twisty/heavy-code-imports/dynamic-entries/3d.d.ts.map +1 -1
  146. package/dist/types/twisty/index.d.ts +8 -11
  147. package/dist/types/twisty/index.d.ts.map +1 -1
  148. package/dist/types/twisty/model/TwistyPlayerModel.d.ts +11 -0
  149. package/dist/types/twisty/model/TwistyPlayerModel.d.ts.map +1 -1
  150. package/dist/types/twisty/model/props/TwistyPropDebugger.d.ts +1 -1
  151. package/dist/types/twisty/model/props/TwistyPropDebugger.d.ts.map +1 -1
  152. package/dist/types/twisty/model/props/puzzle/display/FoundationDisplayProp.d.ts +6 -0
  153. package/dist/types/twisty/model/props/puzzle/display/FoundationDisplayProp.d.ts.map +1 -0
  154. package/dist/types/twisty/model/props/puzzle/display/HintFaceletProp.d.ts +5 -1
  155. package/dist/types/twisty/model/props/puzzle/display/HintFaceletProp.d.ts.map +1 -1
  156. package/dist/types/twisty/model/props/puzzle/display/StickeringProp.d.ts +46 -1
  157. package/dist/types/twisty/model/props/puzzle/display/StickeringProp.d.ts.map +1 -1
  158. package/dist/types/twisty/model/props/puzzle/state/AnchoredStartProp.d.ts +2 -2
  159. package/dist/types/twisty/model/props/puzzle/state/AnchoredStartProp.d.ts.map +1 -1
  160. package/dist/types/twisty/model/props/puzzle/state/CurrentLeavesProp.d.ts +1 -1
  161. package/dist/types/twisty/model/props/puzzle/state/CurrentLeavesProp.d.ts.map +1 -1
  162. package/dist/types/twisty/model/props/puzzle/state/CurrentLeavesSimplified.d.ts +1 -1
  163. package/dist/types/twisty/model/props/puzzle/state/CurrentLeavesSimplified.d.ts.map +1 -1
  164. package/dist/types/twisty/model/props/puzzle/state/CurrentTransformationProp.d.ts +1 -1
  165. package/dist/types/twisty/model/props/puzzle/state/CurrentTransformationProp.d.ts.map +1 -1
  166. package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorProp.d.ts +5 -2
  167. package/dist/types/twisty/model/props/puzzle/state/IndexerConstructorProp.d.ts.map +1 -1
  168. package/dist/types/twisty/model/props/puzzle/state/IndexerProp.d.ts +2 -2
  169. package/dist/types/twisty/model/props/puzzle/state/IndexerProp.d.ts.map +1 -1
  170. package/dist/types/twisty/model/props/puzzle/state/LegacyPositionProp.d.ts +2 -2
  171. package/dist/types/twisty/model/props/puzzle/state/LegacyPositionProp.d.ts.map +1 -1
  172. package/dist/types/twisty/model/props/puzzle/state/MovePressInputProp.d.ts +11 -0
  173. package/dist/types/twisty/model/props/puzzle/state/MovePressInputProp.d.ts.map +1 -0
  174. package/dist/types/twisty/model/props/puzzle/state/NaiveMoveCountProp.d.ts +10 -0
  175. package/dist/types/twisty/model/props/puzzle/state/NaiveMoveCountProp.d.ts.map +1 -0
  176. package/dist/types/twisty/model/props/puzzle/state/SetupAnchorProp.d.ts +5 -1
  177. package/dist/types/twisty/model/props/puzzle/state/SetupAnchorProp.d.ts.map +1 -1
  178. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDProp.d.ts +1 -1
  179. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDProp.d.ts.map +1 -1
  180. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts +19 -1
  181. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts.map +1 -1
  182. package/dist/types/twisty/model/props/puzzle/structure/PuzzleLoaderProp.d.ts +1 -1
  183. package/dist/types/twisty/model/props/puzzle/structure/PuzzleLoaderProp.d.ts.map +1 -1
  184. package/dist/types/twisty/model/props/timeline/DetailedTimelineInfoProp.d.ts +2 -3
  185. package/dist/types/twisty/model/props/timeline/DetailedTimelineInfoProp.d.ts.map +1 -1
  186. package/dist/types/twisty/model/props/timeline/PlayingInfoProp.d.ts +1 -1
  187. package/dist/types/twisty/model/props/timeline/PlayingInfoProp.d.ts.map +1 -1
  188. package/dist/types/twisty/model/props/timeline/TimestampRequestProp.d.ts +1 -1
  189. package/dist/types/twisty/model/props/timeline/TimestampRequestProp.d.ts.map +1 -1
  190. package/dist/types/twisty/model/props/viewer/BackViewProp.d.ts +6 -1
  191. package/dist/types/twisty/model/props/viewer/BackViewProp.d.ts.map +1 -1
  192. package/dist/types/twisty/model/props/viewer/BackgroundProp.d.ts +5 -1
  193. package/dist/types/twisty/model/props/viewer/BackgroundProp.d.ts.map +1 -1
  194. package/dist/types/twisty/model/props/viewer/ControlPanelProp.d.ts +5 -1
  195. package/dist/types/twisty/model/props/viewer/ControlPanelProp.d.ts.map +1 -1
  196. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesProp.d.ts +18 -5
  197. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesProp.d.ts.map +1 -1
  198. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesRequestProp.d.ts +6 -6
  199. package/dist/types/twisty/model/props/viewer/OrbitCoordinatesRequestProp.d.ts.map +1 -1
  200. package/dist/types/twisty/model/props/viewer/TimeRangeProp.d.ts +2 -2
  201. package/dist/types/twisty/model/props/viewer/TimeRangeProp.d.ts.map +1 -1
  202. package/dist/types/twisty/model/props/viewer/ViewerLinkProp.d.ts +5 -1
  203. package/dist/types/twisty/model/props/viewer/ViewerLinkProp.d.ts.map +1 -1
  204. package/dist/types/twisty/model/props/viewer/VisualizationProp.d.ts +7 -1
  205. package/dist/types/twisty/model/props/viewer/VisualizationProp.d.ts.map +1 -1
  206. package/dist/types/twisty/model/props/viewer/VisualizationStrategyProp.d.ts +1 -1
  207. package/dist/types/twisty/model/props/viewer/VisualizationStrategyProp.d.ts.map +1 -1
  208. package/dist/types/twisty/views/2D/Twisty2DPuzzle.css.d.ts +3 -0
  209. package/dist/types/twisty/views/2D/Twisty2DPuzzle.css.d.ts.map +1 -0
  210. package/dist/types/twisty/views/2D/Twisty2DPuzzle.d.ts +4 -6
  211. package/dist/types/twisty/views/2D/Twisty2DPuzzle.d.ts.map +1 -1
  212. package/dist/types/twisty/views/2D/Twisty2DPuzzleWrapper.d.ts +1 -1
  213. package/dist/types/twisty/views/2D/Twisty2DPuzzleWrapper.d.ts.map +1 -1
  214. package/dist/types/twisty/views/2D/Twisty2DSceneWrapper.d.ts +2 -2
  215. package/dist/types/twisty/views/2D/Twisty2DSceneWrapper.d.ts.map +1 -1
  216. package/dist/types/twisty/views/3D/DragTracker.d.ts +28 -0
  217. package/dist/types/twisty/views/3D/DragTracker.d.ts.map +1 -0
  218. package/dist/types/twisty/views/3D/RendererPool.d.ts.map +1 -1
  219. package/dist/types/twisty/views/3D/Twisty3DPuzzleWrapper.d.ts +6 -1
  220. package/dist/types/twisty/views/3D/Twisty3DPuzzleWrapper.d.ts.map +1 -1
  221. package/dist/types/twisty/views/3D/Twisty3DSceneWrapper.d.ts +9 -4
  222. package/dist/types/twisty/views/3D/Twisty3DSceneWrapper.d.ts.map +1 -1
  223. package/dist/types/twisty/views/3D/Twisty3DVantage.css.d.ts +3 -0
  224. package/dist/types/twisty/views/3D/Twisty3DVantage.css.d.ts.map +1 -0
  225. package/dist/types/twisty/views/3D/Twisty3DVantage.d.ts +11 -7
  226. package/dist/types/twisty/views/3D/Twisty3DVantage.d.ts.map +1 -1
  227. package/dist/types/twisty/views/3D/TwistyOrbitControls.d.ts +24 -0
  228. package/dist/types/twisty/views/3D/TwistyOrbitControls.d.ts.map +1 -0
  229. package/dist/types/twisty/views/3D/TwistyOrbitControls.spec.d.ts +5 -0
  230. package/dist/types/twisty/views/3D/TwistyOrbitControls.spec.d.ts.map +1 -0
  231. package/dist/types/twisty/views/3D/puzzles/Cube3D.d.ts +4 -4
  232. package/dist/types/twisty/views/3D/puzzles/Cube3D.d.ts.map +1 -1
  233. package/dist/types/twisty/views/3D/puzzles/PG3D.d.ts +17 -10
  234. package/dist/types/twisty/views/3D/puzzles/PG3D.d.ts.map +1 -1
  235. package/dist/types/twisty/views/3D/puzzles/Twisty3DPuzzle.d.ts +1 -1
  236. package/dist/types/twisty/views/3D/puzzles/Twisty3DPuzzle.d.ts.map +1 -1
  237. package/dist/types/twisty/{old/dom/element → views}/ClassListManager.d.ts +0 -0
  238. package/dist/types/twisty/views/ClassListManager.d.ts.map +1 -0
  239. package/dist/types/twisty/{old/dom/element → views}/ManagedCustomElement.d.ts +0 -0
  240. package/dist/types/twisty/views/ManagedCustomElement.d.ts.map +1 -0
  241. package/dist/types/twisty/views/TwistyAlgEditor/LeafTokens.d.ts +1 -1
  242. package/dist/types/twisty/views/TwistyAlgEditor/LeafTokens.d.ts.map +1 -1
  243. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.d.ts +1 -1
  244. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.d.ts.map +1 -1
  245. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.d.ts +2 -1
  246. package/dist/types/twisty/views/TwistyAlgEditor/TwistyAlgEditor.d.ts.map +1 -1
  247. package/dist/types/twisty/views/TwistyAlgViewer.css.d.ts +1 -1
  248. package/dist/types/twisty/views/TwistyAlgViewer.css.d.ts.map +1 -1
  249. package/dist/types/twisty/views/TwistyAlgViewer.d.ts +2 -2
  250. package/dist/types/twisty/views/TwistyAlgViewer.d.ts.map +1 -1
  251. package/dist/types/twisty/views/TwistyPlayer.css.d.ts +3 -0
  252. package/dist/types/twisty/views/TwistyPlayer.css.d.ts.map +1 -0
  253. package/dist/types/twisty/views/TwistyPlayer.d.ts +7 -3
  254. package/dist/types/twisty/views/TwistyPlayer.d.ts.map +1 -1
  255. package/dist/types/twisty/views/TwistyPlayerSettable.d.ts +7 -4
  256. package/dist/types/twisty/views/TwistyPlayerSettable.d.ts.map +1 -1
  257. package/dist/types/twisty/views/TwistyViewerWrapper.css.d.ts +3 -0
  258. package/dist/types/twisty/views/TwistyViewerWrapper.css.d.ts.map +1 -0
  259. package/dist/types/twisty/{old/dom/viewers → views}/canvas.d.ts +0 -0
  260. package/dist/types/twisty/views/canvas.d.ts.map +1 -0
  261. package/dist/types/twisty/views/control-panel/TwistyButtonsV2.css.d.ts +4 -0
  262. package/dist/types/twisty/views/control-panel/TwistyButtonsV2.css.d.ts.map +1 -0
  263. package/dist/types/twisty/views/control-panel/TwistyButtonsV2.d.ts +1 -1
  264. package/dist/types/twisty/views/control-panel/TwistyButtonsV2.d.ts.map +1 -1
  265. package/dist/types/twisty/views/control-panel/TwistyScrubber.css.d.ts +3 -0
  266. package/dist/types/twisty/{old/dom/controls → views/control-panel}/TwistyScrubber.css.d.ts.map +1 -1
  267. package/dist/types/twisty/views/control-panel/TwistyScrubberV2.d.ts +1 -1
  268. package/dist/types/twisty/views/control-panel/TwistyScrubberV2.d.ts.map +1 -1
  269. package/dist/types/twisty/{old/dom/element → views}/node-custom-element-shims.d.ts +0 -0
  270. package/dist/types/twisty/views/node-custom-element-shims.d.ts.map +1 -0
  271. package/dist/types/twisty/views/stream/TwistyStreamSource.css.d.ts +3 -0
  272. package/dist/types/twisty/views/stream/TwistyStreamSource.css.d.ts.map +1 -0
  273. package/dist/types/twisty/{old/dom → views}/stream/TwistyStreamSource.d.ts +1 -1
  274. package/dist/types/twisty/views/stream/TwistyStreamSource.d.ts.map +1 -0
  275. package/dist/types/{search/vendor → vendor}/comlink-everywhere/inside/index.d.ts +0 -0
  276. package/dist/types/vendor/comlink-everywhere/inside/index.d.ts.map +1 -0
  277. package/dist/types/{search/vendor → vendor}/comlink-everywhere/inside/node.d.ts +0 -0
  278. package/dist/types/vendor/comlink-everywhere/inside/node.d.ts.map +1 -0
  279. package/dist/types/{search/vendor → vendor}/comlink-everywhere/outside/index.d.ts +0 -0
  280. package/dist/types/vendor/comlink-everywhere/outside/index.d.ts.map +1 -0
  281. package/dist/types/{search/vendor → vendor}/comlink-everywhere/outside/node.d.ts +0 -0
  282. package/dist/types/vendor/comlink-everywhere/outside/node.d.ts.map +1 -0
  283. package/dist/types/{search/inside/solve/vendor → vendor}/cstimer/src/js/lib/mathlib.d.ts +0 -0
  284. package/dist/types/vendor/cstimer/src/js/lib/mathlib.d.ts.map +1 -0
  285. package/dist/types/{search/inside/solve/vendor → vendor}/cstimer/src/js/scramble/scramble_444.d.ts +1 -1
  286. package/dist/types/vendor/cstimer/src/js/scramble/scramble_444.d.ts.map +1 -0
  287. package/dist/types/{search/inside/solve/vendor → vendor}/min2phase/gwt.d.ts +0 -0
  288. package/dist/types/vendor/min2phase/gwt.d.ts.map +1 -0
  289. package/dist/types/{search/inside/solve/vendor → vendor}/random-uint-below/get-random-values.d.ts +0 -0
  290. package/dist/types/vendor/random-uint-below/get-random-values.d.ts.map +1 -0
  291. package/dist/types/{search/inside/solve/vendor → vendor}/random-uint-below/index.d.ts +1 -1
  292. package/dist/types/vendor/random-uint-below/index.d.ts.map +1 -0
  293. package/dist/types/{search/inside/solve/vendor → vendor}/random-uint-below/random-choice.d.ts +0 -0
  294. package/dist/types/vendor/random-uint-below/random-choice.d.ts.map +1 -0
  295. package/dist/types/{search/inside/solve/vendor/random-uint-below/random-int.d.ts → vendor/random-uint-below/random53BitValue.d.ts} +1 -1
  296. package/dist/types/vendor/random-uint-below/random53BitValue.d.ts.map +1 -0
  297. package/dist/types/{search/inside/solve/vendor → vendor}/sq12phase/scramble_sq1.d.ts +0 -0
  298. package/dist/types/vendor/sq12phase/scramble_sq1.d.ts.map +1 -0
  299. package/dist/types/{bluetooth/smart-puzzle → vendor/unsafe-raw-aes}/unsafe-raw-aes.d.ts +0 -0
  300. package/dist/types/vendor/unsafe-raw-aes/unsafe-raw-aes.d.ts.map +1 -0
  301. package/docs/.DS_Store +0 -0
  302. package/docs/cubing/.DS_Store +0 -0
  303. package/docs/cubing/api/index.html +11 -52
  304. package/docs/cubing/index.html +67 -27
  305. package/docs/main.css +7 -6
  306. package/kpuzzle/package.json +1 -3
  307. package/notation/package.json +1 -3
  308. package/package.json +9 -14
  309. package/protocol/package.json +1 -3
  310. package/puzzle-geometry/package.json +1 -3
  311. package/puzzles/package.json +1 -3
  312. package/scramble/package.json +1 -3
  313. package/search/package.json +1 -3
  314. package/src/cubing/.DS_Store +0 -0
  315. package/src/cubing/alg/index.ts +1 -0
  316. package/src/cubing/alg/units/leaves/Move.ts +1 -1
  317. package/src/cubing/bluetooth/smart-puzzle/gan.ts +4 -1
  318. package/src/cubing/bluetooth/smart-timer/GanTimer.ts +1 -1
  319. package/src/cubing/cubing.bundle-global.exports.ts +25 -0
  320. package/src/cubing/cubing.bundle-global.ts +3 -31
  321. package/src/cubing/puzzle-geometry/PGPuzzles.spec.ts +4 -0
  322. package/src/cubing/puzzle-geometry/PuzzleGeometry.ts +20 -8
  323. package/src/cubing/puzzle-geometry/index.ts +2 -2
  324. package/src/cubing/puzzles/index.ts +1 -1
  325. package/src/cubing/puzzles/stickerings/cube-stickerings.ts +18 -0
  326. package/src/cubing/puzzles/stickerings/global-custom-stickering-hack.ts +1 -1
  327. package/src/cubing/{twisty/views/3D → search}/.DS_Store +0 -0
  328. package/src/cubing/search/esm-test-worker.js +1 -1
  329. package/src/cubing/{twisty → search/inside}/.DS_Store +0 -0
  330. package/src/cubing/search/inside/api.ts +3 -0
  331. package/src/cubing/search/inside/entry.js +1 -1
  332. package/src/cubing/search/inside/inside-worker.ts +1 -1
  333. package/src/cubing/search/inside/module-entry-path-getter.ts +5 -0
  334. package/src/cubing/search/inside/module-entry.ts +20 -0
  335. package/src/cubing/search/inside/solve/addOrientationSuffix.ts +1 -1
  336. package/src/cubing/search/inside/solve/puzzles/2x2x2.ts +1 -1
  337. package/src/cubing/search/inside/solve/puzzles/3x3x3/index.ts +14 -4
  338. package/src/cubing/search/inside/solve/puzzles/4x4x4.ts +19 -5
  339. package/src/cubing/search/inside/solve/puzzles/big-cubes.ts +1 -1
  340. package/src/cubing/search/inside/solve/puzzles/clock.ts +1 -1
  341. package/src/cubing/search/inside/solve/puzzles/fto.sgs.json.ts +643 -0
  342. package/src/cubing/search/inside/solve/puzzles/fto.ts +58 -0
  343. package/src/cubing/search/inside/solve/puzzles/sq1.ts +12 -2
  344. package/src/cubing/search/inside/solve/puzzles/wca-minx.ts +1 -1
  345. package/src/cubing/search/inside/solve/tremble.ts +2 -1
  346. package/src/cubing/search/instantiator.ts +76 -41
  347. package/src/cubing/search/worker-inside-generated-string.js +1 -1
  348. package/src/cubing/twisty/{old/animation/cursor/CursorTypes.ts → controllers/AnimationTypes.ts} +11 -2
  349. package/src/cubing/twisty/{old/animation → controllers}/RenderScheduler.ts +0 -0
  350. package/src/cubing/twisty/controllers/TwistyAnimationController.ts +4 -4
  351. package/src/cubing/twisty/{old/animation → controllers}/easing.ts +0 -0
  352. package/src/cubing/twisty/{old/animation → controllers}/indexer/AlgDuration.ts +2 -2
  353. package/src/cubing/twisty/{old/animation → controllers}/indexer/AlgIndexer.ts +4 -4
  354. package/src/cubing/twisty/{old/animation → controllers}/indexer/SimpleAlgIndexer.ts +4 -4
  355. package/src/cubing/twisty/{old/animation → controllers}/indexer/simultaneous-moves/SimultaneousMoveIndexer.ts +3 -3
  356. package/src/cubing/twisty/{old/animation → controllers}/indexer/simultaneous-moves/SimultaneousMoveIndexerV2.ts +3 -3
  357. package/src/cubing/twisty/{old/animation → controllers}/indexer/simultaneous-moves/simul-moves.ts +2 -2
  358. package/src/cubing/twisty/{old/animation → controllers}/indexer/tree/AlgWalker.ts +4 -4
  359. package/src/cubing/twisty/{old/animation → controllers}/indexer/tree/TreeAlgIndexer.ts +3 -3
  360. package/src/cubing/twisty/{old/animation → controllers}/indexer/tree/chunkAlgs.ts +2 -2
  361. package/src/cubing/twisty/{old/animation → controllers}/stream/timeline-move-calculation-draft.spec.ts.TODO +0 -0
  362. package/src/cubing/twisty/{old/animation → controllers}/stream/timeline-move-calculation-draft.ts +2 -2
  363. package/src/cubing/twisty/heavy-code-imports/dynamic-entries/3d.ts +2 -12
  364. package/src/cubing/twisty/index.ts +11 -18
  365. package/src/cubing/twisty/model/TwistyPlayerModel.ts +38 -7
  366. package/src/cubing/twisty/model/props/TwistyPropDebugger.ts +3 -3
  367. package/src/cubing/twisty/model/props/puzzle/display/FoundationDisplayProp.ts +9 -0
  368. package/src/cubing/twisty/model/props/puzzle/display/HintFaceletProp.ts +6 -1
  369. package/src/cubing/twisty/model/props/puzzle/display/StickeringProp.ts +49 -1
  370. package/src/cubing/twisty/model/props/puzzle/state/AlgTransformationProp.ts +1 -1
  371. package/src/cubing/twisty/model/props/puzzle/state/AnchoredStartProp.ts +2 -2
  372. package/src/cubing/twisty/model/props/puzzle/state/CurrentLeavesProp.ts +2 -2
  373. package/src/cubing/twisty/model/props/puzzle/state/CurrentLeavesSimplified.ts +1 -1
  374. package/src/cubing/twisty/model/props/puzzle/state/CurrentTransformationProp.ts +1 -1
  375. package/src/cubing/twisty/model/props/puzzle/state/IndexerConstructorProp.ts +12 -5
  376. package/src/cubing/twisty/model/props/puzzle/state/IndexerProp.ts +2 -2
  377. package/src/cubing/twisty/model/props/puzzle/state/LegacyPositionProp.ts +2 -2
  378. package/src/cubing/twisty/model/props/puzzle/state/MovePressInputProp.ts +14 -0
  379. package/src/cubing/twisty/model/props/puzzle/state/NaiveMoveCountProp.ts +20 -0
  380. package/src/cubing/twisty/model/props/puzzle/state/SetupAnchorProp.ts +7 -1
  381. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleIDProp.ts +1 -1
  382. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.ts +20 -1
  383. package/src/cubing/twisty/model/props/puzzle/structure/PuzzleLoaderProp.ts +1 -1
  384. package/src/cubing/twisty/model/props/timeline/DetailedTimelineInfoProp.ts +5 -3
  385. package/src/cubing/twisty/model/props/timeline/PlayingInfoProp.ts +1 -4
  386. package/src/cubing/twisty/model/props/timeline/TimestampRequestProp.ts +1 -1
  387. package/src/cubing/twisty/model/props/viewer/BackViewProp.ts +7 -1
  388. package/src/cubing/twisty/model/props/viewer/BackgroundProp.ts +6 -1
  389. package/src/cubing/twisty/model/props/viewer/ControlPanelProp.ts +5 -1
  390. package/src/cubing/twisty/model/props/viewer/OrbitCoordinatesProp.ts +83 -12
  391. package/src/cubing/twisty/model/props/viewer/OrbitCoordinatesRequestProp.ts +8 -8
  392. package/src/cubing/twisty/model/props/viewer/TimeRangeProp.ts +2 -2
  393. package/src/cubing/twisty/model/props/viewer/ViewerLinkProp.ts +5 -1
  394. package/src/cubing/twisty/model/props/viewer/VisualizationProp.ts +8 -1
  395. package/src/cubing/twisty/model/props/viewer/VisualizationStrategyProp.ts +1 -1
  396. package/src/cubing/twisty/{old/dom/viewers/Twisty2DSVGView.css.ts → views/2D/Twisty2DPuzzle.css.ts} +1 -1
  397. package/src/cubing/twisty/views/2D/Twisty2DPuzzle.ts +8 -12
  398. package/src/cubing/twisty/views/2D/Twisty2DPuzzleWrapper.ts +1 -1
  399. package/src/cubing/twisty/views/2D/Twisty2DSceneWrapper.ts +4 -4
  400. package/src/cubing/twisty/views/3D/DragTracker.ts +184 -0
  401. package/src/cubing/twisty/views/3D/RendererPool.ts +2 -1
  402. package/src/cubing/twisty/views/3D/Twisty3DPuzzleWrapper.ts +51 -5
  403. package/src/cubing/twisty/views/3D/Twisty3DSceneWrapper.ts +51 -10
  404. package/src/cubing/twisty/{old/dom/viewers/Twisty3DCanvas.css.ts → views/3D/Twisty3DVantage.css.ts} +2 -2
  405. package/src/cubing/twisty/views/3D/Twisty3DVantage.ts +88 -30
  406. package/src/cubing/twisty/views/3D/TwistyOrbitControls.spec.ts +213 -0
  407. package/src/cubing/twisty/views/3D/TwistyOrbitControls.ts +176 -0
  408. package/src/cubing/twisty/views/3D/puzzles/Cube3D.ts +5 -9
  409. package/src/cubing/twisty/views/3D/puzzles/PG3D.ts +127 -37
  410. package/src/cubing/twisty/views/3D/puzzles/Twisty3DPuzzle.ts +1 -1
  411. package/src/cubing/twisty/{old/dom/element → views}/ClassListManager.ts +0 -0
  412. package/src/cubing/twisty/{old/dom/element → views}/ManagedCustomElement.ts +0 -0
  413. package/src/cubing/twisty/views/TwistyAlgEditor/LeafTokens.ts +1 -1
  414. package/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.css.ts +1 -1
  415. package/src/cubing/twisty/views/TwistyAlgEditor/TwistyAlgEditor.ts +11 -4
  416. package/src/cubing/twisty/views/TwistyAlgViewer.css.ts +1 -1
  417. package/src/cubing/twisty/views/TwistyAlgViewer.ts +4 -4
  418. package/src/cubing/twisty/{old/dom → views}/TwistyPlayer.css.ts +4 -1
  419. package/src/cubing/twisty/views/TwistyPlayer.ts +16 -25
  420. package/src/cubing/twisty/views/TwistyPlayerSettable.ts +14 -10
  421. package/src/cubing/twisty/{old/dom/viewers → views}/TwistyViewerWrapper.css.ts +1 -1
  422. package/src/cubing/twisty/{old/dom/viewers → views}/canvas.ts +0 -0
  423. package/src/cubing/twisty/{old/dom/controls/buttons.css.ts → views/control-panel/TwistyButtonsV2.css.ts} +1 -1
  424. package/src/cubing/twisty/views/control-panel/TwistyButtonsV2.ts +5 -8
  425. package/src/cubing/twisty/{old/dom/controls → views/control-panel}/TwistyScrubber.css.ts +1 -1
  426. package/src/cubing/twisty/views/control-panel/TwistyScrubberV2.ts +3 -3
  427. package/src/cubing/twisty/{old/dom/element → views}/node-custom-element-shims.ts +2 -2
  428. package/src/cubing/twisty/{old/dom → views}/stream/TwistyStreamSource.css.ts +1 -1
  429. package/src/cubing/twisty/{old/dom → views}/stream/TwistyStreamSource.ts +9 -9
  430. package/{dist/types → src/cubing/vendor}/.DS_Store +0 -0
  431. package/{dist → src/cubing/vendor/comlink-everywhere}/.DS_Store +0 -0
  432. package/src/cubing/{search/vendor → vendor}/comlink-everywhere/comlink-everywhere.webloc +0 -0
  433. package/src/cubing/{search/vendor → vendor}/comlink-everywhere/inside/index.d.ts +0 -0
  434. package/src/cubing/{search/vendor → vendor}/comlink-everywhere/inside/index.js +0 -0
  435. package/src/cubing/{search/vendor → vendor}/comlink-everywhere/inside/node.js +0 -0
  436. package/src/cubing/{search/vendor → vendor}/comlink-everywhere/outside/index.d.ts +0 -0
  437. package/src/cubing/{search/vendor → vendor}/comlink-everywhere/outside/index.js +0 -0
  438. package/src/cubing/{search/vendor → vendor}/comlink-everywhere/outside/node.js +1 -0
  439. package/src/cubing/vendor/cstimer/.DS_Store +0 -0
  440. package/src/cubing/{search/inside/solve/vendor → vendor}/cstimer/LICENSE +0 -0
  441. package/src/cubing/vendor/cstimer/src/.DS_Store +0 -0
  442. package/src/cubing/{search/inside/solve/vendor → vendor}/cstimer/src/js/lib/mathlib.ts +0 -0
  443. package/src/cubing/{search/inside/solve/vendor → vendor}/cstimer/src/js/scramble/scramble_444.ts +3 -3
  444. package/src/cubing/{search/inside/solve/vendor → vendor}/min2phase/gwt.d.ts +0 -0
  445. package/src/cubing/{search/inside/solve/vendor → vendor}/min2phase/gwt.js +0 -0
  446. package/src/cubing/vendor/random-uint-below/get-random-values.ts +23 -0
  447. package/src/cubing/{search/inside/solve/vendor → vendor}/random-uint-below/index.ts +2 -2
  448. package/src/cubing/{search/inside/solve/vendor → vendor}/random-uint-below/random-choice.ts +1 -1
  449. package/src/cubing/{search/inside/solve/vendor/random-uint-below/random-int.ts → vendor/random-uint-below/random53BitValue.ts} +1 -1
  450. package/src/cubing/{search/inside/solve/vendor → vendor}/sq12phase/scramble_sq1.js +2 -2
  451. package/src/cubing/vendor/three/.DS_Store +0 -0
  452. package/src/cubing/vendor/three/examples/.DS_Store +0 -0
  453. package/src/cubing/{bluetooth/smart-puzzle → vendor/unsafe-raw-aes}/unsafe-raw-aes.ts +18 -20
  454. package/stream/package.json +1 -3
  455. package/twisty/package.json +1 -3
  456. package/alg/index.d.ts +0 -1
  457. package/bluetooth/index.d.ts +0 -1
  458. package/dist/esm/3d-B25DP5PE.js +0 -39
  459. package/dist/esm/3d-B25DP5PE.js.map +0 -7
  460. package/dist/esm/chunk-APIIMJG6.js.map +0 -7
  461. package/dist/esm/chunk-CSVAFZSB.js +0 -1379
  462. package/dist/esm/chunk-CSVAFZSB.js.map +0 -7
  463. package/dist/esm/chunk-MUQMBH2S.js.map +0 -7
  464. package/dist/esm/index.d.ts +0 -1
  465. package/dist/esm/node-WEHVBEKP.js.map +0 -7
  466. package/dist/esm/worker-inside-generated-string-KDZOUGJF.js +0 -2831
  467. package/dist/esm/worker-inside-generated-string-KDZOUGJF.js.map +0 -7
  468. package/dist/types/bluetooth/smart-puzzle/unsafe-raw-aes.d.ts.map +0 -1
  469. package/dist/types/search/inside/solve/vendor/cstimer/src/js/lib/mathlib.d.ts.map +0 -1
  470. package/dist/types/search/inside/solve/vendor/cstimer/src/js/scramble/scramble_444.d.ts.map +0 -1
  471. package/dist/types/search/inside/solve/vendor/min2phase/gwt.d.ts.map +0 -1
  472. package/dist/types/search/inside/solve/vendor/random-uint-below/get-random-values.d.ts.map +0 -1
  473. package/dist/types/search/inside/solve/vendor/random-uint-below/index.d.ts.map +0 -1
  474. package/dist/types/search/inside/solve/vendor/random-uint-below/random-choice.d.ts.map +0 -1
  475. package/dist/types/search/inside/solve/vendor/random-uint-below/random-int.d.ts.map +0 -1
  476. package/dist/types/search/inside/solve/vendor/sq12phase/scramble_sq1.d.ts.map +0 -1
  477. package/dist/types/search/vendor/comlink-everywhere/inside/index.d.ts.map +0 -1
  478. package/dist/types/search/vendor/comlink-everywhere/inside/node.d.ts.map +0 -1
  479. package/dist/types/search/vendor/comlink-everywhere/outside/index.d.ts.map +0 -1
  480. package/dist/types/search/vendor/comlink-everywhere/outside/node.d.ts.map +0 -1
  481. package/dist/types/twisty/old/animation/RenderScheduler.d.ts.map +0 -1
  482. package/dist/types/twisty/old/animation/Timeline.d.ts +0 -72
  483. package/dist/types/twisty/old/animation/Timeline.d.ts.map +0 -1
  484. package/dist/types/twisty/old/animation/cursor/AlgCursor.d.ts +0 -53
  485. package/dist/types/twisty/old/animation/cursor/AlgCursor.d.ts.map +0 -1
  486. package/dist/types/twisty/old/animation/cursor/CursorTypes.d.ts.map +0 -1
  487. package/dist/types/twisty/old/animation/easing.d.ts.map +0 -1
  488. package/dist/types/twisty/old/animation/indexer/AlgDuration.d.ts.map +0 -1
  489. package/dist/types/twisty/old/animation/indexer/AlgIndexer.d.ts.map +0 -1
  490. package/dist/types/twisty/old/animation/indexer/SimpleAlgIndexer.d.ts.map +0 -1
  491. package/dist/types/twisty/old/animation/indexer/simultaneous-moves/SimultaneousMoveIndexer.d.ts.map +0 -1
  492. package/dist/types/twisty/old/animation/indexer/simultaneous-moves/SimultaneousMoveIndexerV2.d.ts.map +0 -1
  493. package/dist/types/twisty/old/animation/indexer/simultaneous-moves/simul-moves.d.ts.map +0 -1
  494. package/dist/types/twisty/old/animation/indexer/tree/AlgWalker.d.ts.map +0 -1
  495. package/dist/types/twisty/old/animation/indexer/tree/TreeAlgIndexer.d.ts.map +0 -1
  496. package/dist/types/twisty/old/animation/indexer/tree/chunkAlgs.d.ts +0 -3
  497. package/dist/types/twisty/old/animation/indexer/tree/chunkAlgs.d.ts.map +0 -1
  498. package/dist/types/twisty/old/animation/stream/timeline-move-calculation-draft.d.ts.map +0 -1
  499. package/dist/types/twisty/old/dom/TwistyAlgViewerV1.css.d.ts +0 -3
  500. package/dist/types/twisty/old/dom/TwistyAlgViewerV1.css.d.ts.map +0 -1
  501. package/dist/types/twisty/old/dom/TwistyAlgViewerV1.d.ts +0 -52
  502. package/dist/types/twisty/old/dom/TwistyAlgViewerV1.d.ts.map +0 -1
  503. package/dist/types/twisty/old/dom/TwistyPlayer.css.d.ts +0 -3
  504. package/dist/types/twisty/old/dom/TwistyPlayer.css.d.ts.map +0 -1
  505. package/dist/types/twisty/old/dom/TwistyPlayer.d.ts +0 -92
  506. package/dist/types/twisty/old/dom/TwistyPlayer.d.ts.map +0 -1
  507. package/dist/types/twisty/old/dom/TwistyPlayer.spec.d.ts +0 -5
  508. package/dist/types/twisty/old/dom/TwistyPlayer.spec.d.ts.map +0 -1
  509. package/dist/types/twisty/old/dom/TwistyPlayerConfig.d.ts +0 -165
  510. package/dist/types/twisty/old/dom/TwistyPlayerConfig.d.ts.map +0 -1
  511. package/dist/types/twisty/old/dom/controls/TwistyControlElement.d.ts +0 -2
  512. package/dist/types/twisty/old/dom/controls/TwistyControlElement.d.ts.map +0 -1
  513. package/dist/types/twisty/old/dom/controls/TwistyScrubber.css.d.ts +0 -3
  514. package/dist/types/twisty/old/dom/controls/TwistyScrubber.d.ts +0 -14
  515. package/dist/types/twisty/old/dom/controls/TwistyScrubber.d.ts.map +0 -1
  516. package/dist/types/twisty/old/dom/controls/buttons.css.d.ts +0 -4
  517. package/dist/types/twisty/old/dom/controls/buttons.css.d.ts.map +0 -1
  518. package/dist/types/twisty/old/dom/controls/buttons.d.ts +0 -40
  519. package/dist/types/twisty/old/dom/controls/buttons.d.ts.map +0 -1
  520. package/dist/types/twisty/old/dom/controls/buttons.spec.d.ts +0 -5
  521. package/dist/types/twisty/old/dom/controls/buttons.spec.d.ts.map +0 -1
  522. package/dist/types/twisty/old/dom/element/ClassListManager.d.ts.map +0 -1
  523. package/dist/types/twisty/old/dom/element/ElementConfig.d.ts +0 -49
  524. package/dist/types/twisty/old/dom/element/ElementConfig.d.ts.map +0 -1
  525. package/dist/types/twisty/old/dom/element/ManagedCustomElement.d.ts.map +0 -1
  526. package/dist/types/twisty/old/dom/element/node-custom-element-shims.d.ts.map +0 -1
  527. package/dist/types/twisty/old/dom/stream/TwistyStreamSource.css.d.ts +0 -3
  528. package/dist/types/twisty/old/dom/stream/TwistyStreamSource.css.d.ts.map +0 -1
  529. package/dist/types/twisty/old/dom/stream/TwistyStreamSource.d.ts.map +0 -1
  530. package/dist/types/twisty/old/dom/viewers/Twisty2DSVG.d.ts +0 -26
  531. package/dist/types/twisty/old/dom/viewers/Twisty2DSVG.d.ts.map +0 -1
  532. package/dist/types/twisty/old/dom/viewers/Twisty2DSVGView.css.d.ts +0 -3
  533. package/dist/types/twisty/old/dom/viewers/Twisty2DSVGView.css.d.ts.map +0 -1
  534. package/dist/types/twisty/old/dom/viewers/Twisty3DCanvas.css.d.ts +0 -3
  535. package/dist/types/twisty/old/dom/viewers/Twisty3DCanvas.css.d.ts.map +0 -1
  536. package/dist/types/twisty/old/dom/viewers/Twisty3DCanvas.d.ts +0 -41
  537. package/dist/types/twisty/old/dom/viewers/Twisty3DCanvas.d.ts.map +0 -1
  538. package/dist/types/twisty/old/dom/viewers/TwistyOrbitControls.d.ts +0 -59
  539. package/dist/types/twisty/old/dom/viewers/TwistyOrbitControls.d.ts.map +0 -1
  540. package/dist/types/twisty/old/dom/viewers/TwistyViewerElement.d.ts +0 -4
  541. package/dist/types/twisty/old/dom/viewers/TwistyViewerElement.d.ts.map +0 -1
  542. package/dist/types/twisty/old/dom/viewers/TwistyViewerWrapper.css.d.ts +0 -3
  543. package/dist/types/twisty/old/dom/viewers/TwistyViewerWrapper.css.d.ts.map +0 -1
  544. package/dist/types/twisty/old/dom/viewers/TwistyViewerWrapper.d.ts +0 -18
  545. package/dist/types/twisty/old/dom/viewers/TwistyViewerWrapper.d.ts.map +0 -1
  546. package/dist/types/twisty/old/dom/viewers/canvas.d.ts.map +0 -1
  547. package/dist/types/twisty/views/3D/TwistyOrbitControlsV2.d.ts +0 -41
  548. package/dist/types/twisty/views/3D/TwistyOrbitControlsV2.d.ts.map +0 -1
  549. package/dist/types/twisty/views/3D/TwistyOrbitControlsV2.spec.d.ts +0 -5
  550. package/dist/types/twisty/views/3D/TwistyOrbitControlsV2.spec.d.ts.map +0 -1
  551. package/kpuzzle/index.d.ts +0 -1
  552. package/notation/index.d.ts +0 -1
  553. package/protocol/index.d.ts +0 -1
  554. package/puzzle-geometry/index.d.ts +0 -1
  555. package/puzzles/index.d.ts +0 -1
  556. package/scramble/index.d.ts +0 -1
  557. package/search/index.d.ts +0 -1
  558. package/src/cubing/search/inside/solve/puzzles/FTO.sgs +0 -264
  559. package/src/cubing/search/inside/solve/vendor/random-uint-below/get-random-values.ts +0 -38
  560. package/src/cubing/twisty/old/animation/Timeline.ts +0 -378
  561. package/src/cubing/twisty/old/animation/cursor/AlgCursor.ts +0 -252
  562. package/src/cubing/twisty/old/dom/TwistyAlgViewerV1.css.ts +0 -25
  563. package/src/cubing/twisty/old/dom/TwistyAlgViewerV1.ts +0 -516
  564. package/src/cubing/twisty/old/dom/TwistyPlayer.spec.ts +0 -25
  565. package/src/cubing/twisty/old/dom/TwistyPlayer.ts +0 -927
  566. package/src/cubing/twisty/old/dom/TwistyPlayerConfig.ts +0 -378
  567. package/src/cubing/twisty/old/dom/controls/TwistyControlElement.ts +0 -1
  568. package/src/cubing/twisty/old/dom/controls/TwistyScrubber.ts +0 -53
  569. package/src/cubing/twisty/old/dom/controls/buttons.spec.ts +0 -37
  570. package/src/cubing/twisty/old/dom/controls/buttons.ts +0 -326
  571. package/src/cubing/twisty/old/dom/element/ElementConfig.ts +0 -180
  572. package/src/cubing/twisty/old/dom/viewers/Twisty2DSVG.ts +0 -118
  573. package/src/cubing/twisty/old/dom/viewers/Twisty3DCanvas.ts +0 -256
  574. package/src/cubing/twisty/old/dom/viewers/TwistyOrbitControls.ts +0 -420
  575. package/src/cubing/twisty/old/dom/viewers/TwistyViewerElement.ts +0 -5
  576. package/src/cubing/twisty/old/dom/viewers/TwistyViewerWrapper.ts +0 -45
  577. package/src/cubing/twisty/views/.DS_Store +0 -0
  578. package/src/cubing/twisty/views/3D/TwistyOrbitControlsV2.spec.ts +0 -209
  579. package/src/cubing/twisty/views/3D/TwistyOrbitControlsV2.ts +0 -270
  580. package/stream/index.d.ts +0 -1
  581. package/twisty/index.d.ts +0 -1
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  cube3x3x3KPuzzle,
3
3
  transformationForMove
4
- } from "./chunk-YV3RT5PX.js";
4
+ } from "./chunk-X6JHXPDX.js";
5
5
  import {
6
6
  Move,
7
7
  experimentalIs
8
- } from "./chunk-BU5PUJK3.js";
8
+ } from "./chunk-EWRBHQFX.js";
9
9
 
10
10
  // src/cubing/puzzles/customPGPuzzleLoader.ts
11
11
  async function descAsyncGetPuzzleGeometry(desc) {
@@ -254,7 +254,7 @@ function setGlobalCustomStickerer(stickerer) {
254
254
  function useGlobalCustomStickerer(puzzleStickering, m) {
255
255
  globalCustomStickerer(puzzleStickering, m);
256
256
  }
257
- if (typeof location !== "undefined" && new URL(location.href).searchParams.get("global-custom-stickerer") === "true") {
257
+ if (globalThis.location && new URL(location.href).searchParams.get("global-custom-stickerer") === "true") {
258
258
  window.setGlobalCustomStickerer = setGlobalCustomStickerer;
259
259
  window.PieceStickering = PieceStickering;
260
260
  console.log("Global custom stickerer enabled! (using: global-custom-stickerer=true)");
@@ -378,6 +378,16 @@ async function cubeAppearance(puzzleLoader, stickering) {
378
378
  puzzleStickering.set(CORNERS(), PieceStickering.Ignored);
379
379
  puzzleStickering.set(EDGES(), PieceStickering.OrientationWithoutPermutation);
380
380
  break;
381
+ case "EOline":
382
+ puzzleStickering.set(CORNERS(), PieceStickering.Ignored);
383
+ puzzleStickering.set(EDGES(), PieceStickering.OrientationWithoutPermutation);
384
+ puzzleStickering.set(m.and(m.moves(["D", "M"])), PieceStickering.Regular);
385
+ break;
386
+ case "EOcross":
387
+ puzzleStickering.set(EDGES(), PieceStickering.OrientationWithoutPermutation);
388
+ puzzleStickering.set(m.move("D"), PieceStickering.Regular);
389
+ puzzleStickering.set(CORNERS(), PieceStickering.Ignored);
390
+ break;
381
391
  case "CMLL":
382
392
  puzzleStickering.set(F2L(), PieceStickering.Dim);
383
393
  puzzleStickering.set(L6E(), PieceStickering.Ignored);
@@ -451,6 +461,8 @@ async function cubeStickerings() {
451
461
  "VLS",
452
462
  "LS",
453
463
  "EO",
464
+ "EOline",
465
+ "EOcross",
454
466
  "CMLL",
455
467
  "L6E",
456
468
  "L6EO",
@@ -759,4 +771,4 @@ export {
759
771
  puzzles,
760
772
  wcaEventInfo
761
773
  };
762
- //# sourceMappingURL=chunk-MUQMBH2S.js.map
774
+ //# sourceMappingURL=chunk-DK6PXBB2.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/cubing/puzzles/customPGPuzzleLoader.ts", "../../src/cubing/puzzles/stickerings/appearance.ts", "../../src/cubing/puzzles/stickerings/global-custom-stickering-hack.ts", "../../src/cubing/puzzles/stickerings/cube-stickerings.ts", "../../src/cubing/puzzles/async/async-pg3d.ts", "../../src/cubing/puzzles/implementations/2x2x2/index.ts", "../../src/cubing/puzzles/implementations/3x3x3/index.ts", "../../src/cubing/puzzles/implementations/clock/index.ts", "../../src/cubing/puzzles/stickerings/fto-stickerings.ts", "../../src/cubing/puzzles/implementations/fto/index.ts", "../../src/cubing/puzzles/stickerings/megaminx-stickerings.ts", "../../src/cubing/puzzles/implementations/megaminx/index.ts", "../../src/cubing/puzzles/implementations/pyraminx/index.ts", "../../src/cubing/puzzles/implementations/square1/index.ts", "../../src/cubing/puzzles/index.ts"],
4
+ "sourcesContent": ["import type { KPuzzleDefinition } from \"../kpuzzle\";\nimport type { PuzzleGeometry } from \"../puzzle-geometry\";\nimport type { PuzzleDescriptionString } from \"../puzzle-geometry/PGPuzzles\";\nimport type { PuzzleLoader } from \"./PuzzleLoader\";\n\n// TODO: modify this to handle TwistyPlayer options\nexport async function descAsyncGetPuzzleGeometry(\n desc: PuzzleDescriptionString,\n): Promise<PuzzleGeometry> {\n const puzzleGeometry = await import(\"../puzzle-geometry\");\n return puzzleGeometry.getPuzzleGeometryByDesc(desc, {\n allMoves: true,\n orientCenters: true,\n addRotations: true,\n });\n}\n\n// TODO: can we cache the puzzleGeometry to avoid duplicate calls, without\n// wasting memory? Maybe just save the latest one for successive calls about the\n// same puzzle?\nexport async function dsecAsyncGetDef(\n desc: PuzzleDescriptionString,\n): Promise<KPuzzleDefinition> {\n return (await descAsyncGetPuzzleGeometry(desc)).writekpuzzle(true);\n}\n\n// TODO: Can we avoid relying on IDs to deduplicate work at higher levels?\nlet nextCustomID = 1;\n\nexport function customPGPuzzleLoader(\n desc: PuzzleDescriptionString,\n info?: {\n fullName?: string;\n inventedBy?: string[];\n inventionYear?: number;\n },\n): PuzzleLoader {\n const customID = nextCustomID++;\n const puzzleLoader: PuzzleLoader = {\n id: `custom-${customID}`,\n fullName: info?.fullName ?? `Custom Puzzle (instance #${customID})`,\n def: async () => {\n return dsecAsyncGetDef(desc);\n },\n svg: async () => {\n const pg = await descAsyncGetPuzzleGeometry(desc);\n return pg.generatesvg();\n },\n pg: async () => {\n return descAsyncGetPuzzleGeometry(desc);\n },\n };\n if (info?.inventedBy) {\n puzzleLoader.inventedBy = info.inventedBy;\n }\n if (info?.inventionYear) {\n puzzleLoader.inventionYear = info.inventionYear;\n }\n return puzzleLoader;\n}\n", "// TODO: figure out where to house this permanently.\n\nimport { Move } from \"../../alg\";\nimport { experimentalIs } from \"../../alg\";\nimport { KPuzzleDefinition, transformationForMove } from \"../../kpuzzle\";\n\nexport type FaceletMeshAppearance =\n | \"regular\"\n | \"dim\"\n | \"oriented\"\n | \"ignored\"\n | \"invisible\";\n\nexport type FaceletAppearance = {\n appearance: FaceletMeshAppearance;\n hintAppearance?: FaceletMeshAppearance;\n};\n\nexport type PieceAppearance = {\n // TODO: foundation?\n facelets: (FaceletMeshAppearance | FaceletAppearance | null)[];\n};\n\nexport type OrbitAppearance = {\n pieces: (PieceAppearance | null)[];\n};\n\nexport type PuzzleAppearance = {\n name?: string; // TODO\n orbits: Record<string, OrbitAppearance>;\n};\n\nexport function getFaceletAppearance(\n appearance: PuzzleAppearance,\n orbitName: string,\n pieceIdx: number,\n faceletIdx: number,\n hint: boolean,\n): FaceletMeshAppearance {\n const orbitAppearance = appearance.orbits[orbitName];\n const pieceAppearance: PieceAppearance | null =\n orbitAppearance.pieces[pieceIdx];\n if (pieceAppearance === null) {\n return regular;\n }\n const faceletAppearance: FaceletMeshAppearance | FaceletAppearance | null =\n pieceAppearance.facelets[faceletIdx];\n if (faceletAppearance === null) {\n return regular;\n }\n if (typeof faceletAppearance === \"string\") {\n return faceletAppearance;\n }\n if (hint) {\n return faceletAppearance.hintAppearance ?? faceletAppearance.appearance;\n }\n return faceletAppearance.appearance;\n}\n\n// TODO: Revert this to a normal enum, or write a standard to codify the names?\nexport enum PieceStickering {\n Regular = \"Regular\",\n Dim = \"Dim\",\n Ignored = \"Ignored\",\n OrientationStickers = \"OrientationStickers\",\n Invisible = \"Invisible\",\n Ignoriented = \"Ignoriented\",\n IgnoreNonPrimary = \"IgnoreNonPrimary\",\n PermuteNonPrimary = \"PermuteNonPrimary\",\n OrientationWithoutPermutation = \"OrientationWithoutPermutation\",\n}\n\nexport class PieceAnnotation<T> {\n stickerings: Map<string, T[]> = new Map();\n constructor(def: KPuzzleDefinition, defaultValue: T) {\n for (const [orbitName, orbitDef] of Object.entries(def.orbits)) {\n this.stickerings.set(\n orbitName,\n new Array(orbitDef.numPieces).fill(defaultValue),\n );\n }\n }\n}\n\nconst regular = \"regular\";\nconst ignored = \"ignored\";\nconst oriented = \"oriented\";\nconst invisible = \"invisible\";\nconst dim = \"dim\";\n\n// regular\nconst r: PieceAppearance = {\n facelets: [regular, regular, regular, regular, regular],\n};\n\n// ignored\nconst i: PieceAppearance = {\n facelets: [ignored, ignored, ignored, ignored, ignored],\n};\n\n// oriented stickers\nconst o: PieceAppearance = {\n facelets: [oriented, oriented, oriented, oriented, oriented],\n};\n\n// invisible\nconst invisiblePiece: PieceAppearance = {\n facelets: [invisible, invisible, invisible, invisible], // TODO: 4th entry is for void cube. Should be handled properly for all stickerings.\n};\n\n// \"OLL\"\nconst riiii: PieceAppearance = {\n facelets: [regular, ignored, ignored, ignored, ignored],\n};\n\n// \"PLL\"\nconst drrrr: PieceAppearance = {\n facelets: [dim, regular, regular, regular, regular],\n};\n\n// ignored\nconst d: PieceAppearance = {\n facelets: [dim, dim, dim, dim, dim],\n};\n\n// \"OLL\"\nconst diiii: PieceAppearance = {\n facelets: [dim, ignored, ignored, ignored, ignored],\n};\n\n// oriented\nconst oiiii: PieceAppearance = {\n facelets: [oriented, ignored, ignored, ignored, ignored],\n};\n\nexport function getPieceAppearance(\n pieceStickering: PieceStickering,\n): PieceAppearance {\n switch (pieceStickering) {\n case PieceStickering.Regular:\n return r;\n case PieceStickering.Dim:\n return d;\n case PieceStickering.Ignored:\n return i;\n case PieceStickering.OrientationStickers: // TODO: Hack for centers. This shouldn't be needed.\n return o;\n case PieceStickering.Invisible: // TODO: Hack for centers. This shouldn't be needed.\n return invisiblePiece;\n case PieceStickering.IgnoreNonPrimary:\n return riiii;\n case PieceStickering.PermuteNonPrimary:\n return drrrr;\n case PieceStickering.Ignoriented:\n return diiii;\n case PieceStickering.OrientationWithoutPermutation:\n return oiiii;\n }\n}\n\nexport class PuzzleStickering extends PieceAnnotation<PieceStickering> {\n constructor(def: KPuzzleDefinition) {\n super(def, PieceStickering.Regular);\n }\n\n set(pieceSet: PieceSet, pieceStickering: PieceStickering): PuzzleStickering {\n for (const [orbitName, pieces] of this.stickerings.entries()) {\n for (let i = 0; i < pieces.length; i++) {\n if (pieceSet.stickerings.get(orbitName)![i]) {\n pieces[i] = pieceStickering;\n }\n }\n }\n return this;\n }\n\n toAppearance(): PuzzleAppearance {\n const appearance: PuzzleAppearance = { orbits: {} };\n for (const [orbitName, pieceStickerings] of this.stickerings.entries()) {\n const pieces: PieceAppearance[] = [];\n const orbitAppearance: OrbitAppearance = {\n pieces,\n };\n appearance.orbits[orbitName] = orbitAppearance;\n for (const pieceStickering of pieceStickerings) {\n pieces.push(getPieceAppearance(pieceStickering));\n }\n }\n return appearance;\n }\n}\n\nexport type PieceSet = PieceAnnotation<boolean>;\n\nexport class StickeringManager {\n constructor(private def: KPuzzleDefinition) {}\n\n and(pieceSets: PieceSet[]): PieceSet {\n const newPieceSet = new PieceAnnotation<boolean>(this.def, false);\n for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n pieceLoop: for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n for (const pieceSet of pieceSets) {\n if (!pieceSet.stickerings.get(orbitName)![i]) {\n newPieceSet.stickerings.get(orbitName)![i] = false;\n continue pieceLoop;\n }\n }\n }\n }\n return newPieceSet;\n }\n\n or(pieceSets: PieceSet[]): PieceSet {\n // TODO: unify impl with and?\n const newPieceSet = new PieceAnnotation<boolean>(this.def, false);\n for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n pieceLoop: for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] = false;\n for (const pieceSet of pieceSets) {\n if (pieceSet.stickerings.get(orbitName)![i]) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n continue pieceLoop;\n }\n }\n }\n }\n return newPieceSet;\n }\n\n not(pieceSet: PieceSet): PieceSet {\n const newPieceSet = new PieceAnnotation<boolean>(this.def, false);\n for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n for (let i = 0; i < orbitDef.numPieces; i++) {\n newPieceSet.stickerings.get(orbitName)![i] =\n !pieceSet.stickerings.get(orbitName)![i];\n }\n }\n return newPieceSet;\n }\n\n all(): PieceSet {\n return this.and(this.moves([])); // TODO: are the degenerate cases for and/or the wrong way around\n }\n\n move(moveSource: Move | string): PieceSet {\n const transformation = transformationForMove(\n this.def,\n experimentalIs(moveSource, Move)\n ? (moveSource as Move)\n : Move.fromString(moveSource as string),\n );\n const newPieceSet = new PieceAnnotation<boolean>(this.def, false);\n for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n for (let i = 0; i < orbitDef.numPieces; i++) {\n if (\n transformation[orbitName].permutation[i] !== i ||\n transformation[orbitName].orientation[i] !== 0\n ) {\n newPieceSet.stickerings.get(orbitName)![i] = true;\n }\n }\n }\n return newPieceSet;\n }\n\n moves(moveSources: (Move | string)[]): PieceSet[] {\n return moveSources.map((moveSource) => this.move(moveSource));\n }\n\n // orbits(orbitNames: string[]): PieceSet {\n // const pieceSet = new PieceAnnotation<boolean>(this.def, false);\n // for (const orbitName of orbitNames) {\n // pieceSet.stickerings.get(orbitName)!.fill(true);\n // }\n // return pieceSet;\n // }\n\n // trueCounts(pieceSet: PieceSet): Record<string, number> {\n // const counts: Record<string, number> = {};\n // for (const [orbitName, orbitDef] of Object.entries(this.def.orbits)) {\n // let count = 0;\n // for (let i = 0; i < orbitDef.numPieces; i++) {\n // if (pieceSet.stickerings.get(orbitName)![i]) {\n // count++;\n // }\n // }\n // counts[orbitName] = count;\n // }\n // return counts;\n // }\n}\n", "import type { TwistyPlayer } from \"../../twisty\";\nimport {\n PieceStickering,\n PuzzleStickering,\n StickeringManager,\n} from \"./appearance\";\n\ntype Stickerer = (\n puzzleStickering: PuzzleStickering,\n m: StickeringManager,\n) => void;\n\nlet globalCustomStickerer: Stickerer = () => {};\n\nfunction setGlobalCustomStickerer(stickerer: Stickerer): void {\n (async () => {\n globalCustomStickerer = stickerer;\n\n const players: TwistyPlayer[] = Array.from(\n document.body.querySelectorAll(\"twisty-player\"),\n );\n console.log(`Setting the custom stickering for ${players.length} players!`);\n const successPromises = [];\n for (const player of players) {\n successPromises.push(\n (async () => {\n const stickering =\n await player.experimentalModel.stickeringProp.get();\n player.experimentalStickering =\n stickering === \"experimental-global-custom-1\"\n ? \"experimental-global-custom-2\"\n : \"experimental-global-custom-1\";\n })(),\n );\n }\n await Promise.all(successPromises);\n console.log(\"Success!\");\n })();\n}\n\nexport function useGlobalCustomStickerer(\n puzzleStickering: PuzzleStickering,\n m: StickeringManager,\n): void {\n globalCustomStickerer(puzzleStickering, m);\n}\n\nif (\n globalThis.location &&\n new URL(location.href).searchParams.get(\"global-custom-stickerer\") === \"true\"\n) {\n (window as any).setGlobalCustomStickerer = setGlobalCustomStickerer;\n (window as any).PieceStickering = PieceStickering;\n console.log(\n \"Global custom stickerer enabled! (using: global-custom-stickerer=true)\",\n );\n console.log(\n \"Look here for inspiration:\",\n \"https://github.com/cubing/cubing.js/blob/81b5cab3e27d8defb39dd1e0a10bc9e8ba894d26/src/cubing/puzzles/stickerings/cube-stickerings.ts#L67\",\n );\n}\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n PuzzleAppearance,\n PuzzleStickering,\n StickeringManager,\n PieceSet,\n PieceStickering,\n} from \"./appearance\";\nimport { useGlobalCustomStickerer } from \"./global-custom-stickering-hack\";\n\n// TODO: cache calculations?\nexport async function cubeAppearance(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n const def = await puzzleLoader.def();\n const puzzleStickering = new PuzzleStickering(def);\n const m = new StickeringManager(def);\n\n const LL = (): PieceSet => m.move(\"U\");\n const orUD = (): PieceSet => m.or(m.moves([\"U\", \"D\"]));\n const E = (): PieceSet => m.not(orUD());\n const orLR = (): PieceSet => m.or(m.moves([\"L\", \"R\"]));\n const M = (): PieceSet => m.not(orLR());\n const orFB = (): PieceSet => m.or(m.moves([\"F\", \"B\"]));\n const S = (): PieceSet => m.not(orFB());\n\n const F2L = (): PieceSet => m.not(LL());\n\n const centerU = (): PieceSet => m.and([LL(), M(), S()]);\n\n const edgeFR = (): PieceSet =>\n m.and([m.and(m.moves([\"F\", \"R\"])), m.not(orUD())]);\n const cornerDFR = (): PieceSet => m.and(m.moves([\"D\", \"R\", \"F\"]));\n const slotFR = (): PieceSet => m.or([cornerDFR(), edgeFR()]);\n\n const CENTERS = (): PieceSet =>\n m.or([m.and([M(), E()]), m.and([M(), S()]), m.and([E(), S()])]);\n const EDGES = (): PieceSet =>\n m.or([\n m.and([M(), orUD(), orFB()]),\n m.and([E(), orLR(), orFB()]),\n m.and([S(), orUD(), orLR()]),\n ]);\n const CORNERS = (): PieceSet => m.not(m.or([CENTERS(), EDGES()]));\n const L6E = (): PieceSet => m.or([M(), m.and([LL(), EDGES()])]);\n\n function dimF2L(): void {\n puzzleStickering.set(F2L(), PieceStickering.Dim);\n }\n\n function setPLL(): void {\n puzzleStickering.set(LL(), PieceStickering.PermuteNonPrimary);\n puzzleStickering.set(centerU(), PieceStickering.Dim); // TODO: why is this needed?\n }\n\n function setOLL(): void {\n puzzleStickering.set(LL(), PieceStickering.IgnoreNonPrimary);\n puzzleStickering.set(centerU(), PieceStickering.Regular); // TODO: why is this needed?\n }\n\n function dimOLL(): void {\n puzzleStickering.set(LL(), PieceStickering.Ignoriented);\n puzzleStickering.set(centerU(), PieceStickering.Dim); // TODO: why is this needed?\n }\n\n switch (stickering) {\n case \"full\":\n break;\n case \"PLL\":\n dimF2L();\n setPLL();\n break;\n case \"CLS\":\n dimF2L();\n puzzleStickering.set(\n m.and(m.moves([\"D\", \"R\", \"F\"])),\n PieceStickering.Regular,\n );\n puzzleStickering.set(LL(), PieceStickering.Ignoriented);\n puzzleStickering.set(\n m.and([LL(), CORNERS()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"OLL\":\n dimF2L();\n setOLL();\n break;\n case \"COLL\":\n dimF2L();\n setPLL();\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"OCLL\":\n dimF2L();\n dimOLL();\n puzzleStickering.set(\n m.and([LL(), CORNERS()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"CLL\":\n dimF2L();\n puzzleStickering.set(\n m.not(m.and([CORNERS(), LL()])),\n PieceStickering.Dim,\n );\n break;\n case \"ELL\":\n dimF2L();\n puzzleStickering.set(LL(), PieceStickering.Dim);\n puzzleStickering.set(m.and([LL(), EDGES()]), PieceStickering.Regular);\n break;\n case \"ELS\":\n dimF2L();\n setOLL();\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Ignored);\n puzzleStickering.set(edgeFR(), PieceStickering.Regular);\n puzzleStickering.set(cornerDFR(), PieceStickering.Ignored);\n break;\n case \"LL\":\n dimF2L();\n break;\n case \"F2L\":\n puzzleStickering.set(LL(), PieceStickering.Ignored);\n break;\n case \"ZBLL\":\n dimF2L();\n puzzleStickering.set(LL(), PieceStickering.PermuteNonPrimary);\n puzzleStickering.set(centerU(), PieceStickering.Dim); // why is this needed?\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"ZBLS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n setOLL();\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Ignored);\n break;\n case \"WVLS\":\n // fallthrough\n case \"VLS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n setOLL();\n break;\n case \"LS\":\n dimF2L();\n puzzleStickering.set(slotFR(), PieceStickering.Regular);\n puzzleStickering.set(LL(), PieceStickering.Ignored);\n puzzleStickering.set(centerU(), PieceStickering.Dim);\n break;\n case \"EO\":\n puzzleStickering.set(CORNERS(), PieceStickering.Ignored);\n puzzleStickering.set(\n EDGES(),\n PieceStickering.OrientationWithoutPermutation,\n );\n break;\n case \"EOline\":\n puzzleStickering.set(CORNERS(), PieceStickering.Ignored);\n puzzleStickering.set(\n EDGES(),\n PieceStickering.OrientationWithoutPermutation,\n );\n puzzleStickering.set(m.and(m.moves([\"D\", \"M\"])), PieceStickering.Regular);\n break;\n case \"EOcross\":\n puzzleStickering.set(\n EDGES(),\n PieceStickering.OrientationWithoutPermutation,\n );\n puzzleStickering.set(m.move(\"D\"), PieceStickering.Regular);\n puzzleStickering.set(CORNERS(), PieceStickering.Ignored);\n break;\n case \"CMLL\":\n puzzleStickering.set(F2L(), PieceStickering.Dim);\n puzzleStickering.set(L6E(), PieceStickering.Ignored);\n puzzleStickering.set(m.and([LL(), CORNERS()]), PieceStickering.Regular);\n break;\n case \"L6E\":\n puzzleStickering.set(m.not(L6E()), PieceStickering.Dim);\n break;\n case \"L6EO\":\n puzzleStickering.set(m.not(L6E()), PieceStickering.Dim);\n puzzleStickering.set(\n L6E(),\n PieceStickering.OrientationWithoutPermutation,\n );\n puzzleStickering.set(\n m.and([CENTERS(), orUD()]),\n PieceStickering.OrientationStickers,\n ); // TODO: why is this needed?\n break;\n case \"Daisy\":\n puzzleStickering.set(m.all(), PieceStickering.Ignored);\n puzzleStickering.set(CENTERS(), PieceStickering.Dim);\n puzzleStickering.set(\n m.and([m.move(\"D\"), CENTERS()]),\n PieceStickering.Regular,\n );\n puzzleStickering.set(\n m.and([m.move(\"U\"), EDGES()]),\n PieceStickering.IgnoreNonPrimary,\n );\n break;\n case \"Cross\":\n puzzleStickering.set(m.all(), PieceStickering.Ignored);\n puzzleStickering.set(CENTERS(), PieceStickering.Dim);\n puzzleStickering.set(\n m.and([m.move(\"D\"), CENTERS()]),\n PieceStickering.Regular,\n );\n puzzleStickering.set(\n m.and([m.move(\"D\"), EDGES()]),\n PieceStickering.Regular,\n );\n break;\n case \"2x2x2\":\n puzzleStickering.set(\n m.or(m.moves([\"U\", \"F\", \"R\"])),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(\n m.and([m.or(m.moves([\"U\", \"F\", \"R\"])), CENTERS()]),\n PieceStickering.Dim,\n );\n break;\n case \"2x2x3\":\n puzzleStickering.set(m.all(), PieceStickering.Dim);\n puzzleStickering.set(\n m.or(m.moves([\"U\", \"F\", \"R\"])),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(\n m.and([m.or(m.moves([\"U\", \"F\", \"R\"])), CENTERS()]),\n PieceStickering.Dim,\n );\n puzzleStickering.set(\n m.and([m.move(\"F\"), m.not(m.or(m.moves([\"U\", \"R\"])))]),\n PieceStickering.Regular,\n );\n break;\n case \"Void Cube\":\n puzzleStickering.set(CENTERS(), PieceStickering.Invisible);\n break;\n case \"picture\":\n // fallthrough\n case \"invisible\":\n puzzleStickering.set(m.all(), PieceStickering.Invisible);\n break;\n case \"centers-only\":\n puzzleStickering.set(m.not(CENTERS()), PieceStickering.Ignored);\n break;\n case \"experimental-global-custom-1\":\n // fallthrough\n case \"experimental-global-custom-2\":\n useGlobalCustomStickerer(puzzleStickering, m);\n break;\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n puzzleStickering.set(m.and(m.moves([])), PieceStickering.Dim);\n }\n return puzzleStickering.toAppearance();\n}\n\nexport async function cubeStickerings(): Promise<ExperimentalStickering[]> {\n return [\n \"full\",\n \"PLL\",\n \"CLS\",\n \"OLL\",\n \"COLL\",\n \"OCLL\",\n \"ELL\",\n \"ELS\",\n \"LL\",\n \"F2L\",\n \"ZBLL\",\n \"ZBLS\",\n \"WVLS\",\n \"VLS\",\n \"LS\",\n \"EO\",\n \"EOline\",\n \"EOcross\",\n \"CMLL\",\n \"L6E\",\n \"L6EO\",\n \"Daisy\",\n \"Cross\",\n \"2x2x2\",\n \"2x2x3\",\n \"Void Cube\",\n \"picture\",\n \"invisible\",\n \"centers-only\",\n \"experimental-global-custom-1\",\n \"experimental-global-custom-2\",\n ];\n}\n", "import type { KPuzzleDefinition } from \"../../kpuzzle\";\nimport type { PuzzleGeometry } from \"../../puzzle-geometry\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../stickerings/cube-stickerings\";\n\n// TODO: modify this to handle TwistyPlayer options\nexport async function asyncGetPuzzleGeometry(\n puzzleName: string,\n): Promise<PuzzleGeometry> {\n const puzzleGeometry = await import(\"../../puzzle-geometry\");\n return puzzleGeometry.getPuzzleGeometryByName(puzzleName, {\n allMoves: true,\n orientCenters: true,\n addRotations: true,\n });\n}\n\n// TODO: can we cache the puzzleGeometry to avoid duplicate calls, without\n// wasting memory? Maybe just save the latest one for successive calls about the\n// same puzzle?\nexport async function asyncGetDef(\n puzzleName: string,\n): Promise<KPuzzleDefinition> {\n return (await asyncGetPuzzleGeometry(puzzleName)).writekpuzzle(true);\n}\n\nexport function genericPGPuzzleLoader(\n id: string,\n fullName: string,\n info?: {\n inventedBy?: string[];\n inventionYear?: number;\n },\n): PuzzleLoader {\n const puzzleLoader: PuzzleLoader = {\n id: id,\n fullName: fullName,\n def: async () => {\n return asyncGetDef(id);\n },\n svg: async () => {\n const pg = await asyncGetPuzzleGeometry(id);\n return pg.generatesvg();\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(id);\n },\n };\n if (info?.inventedBy) {\n puzzleLoader.inventedBy = info.inventedBy;\n }\n if (info?.inventionYear) {\n puzzleLoader.inventionYear = info.inventionYear;\n }\n return puzzleLoader;\n}\n\nexport function cubePGPuzzleLoader(\n id: string,\n fullName: string,\n info?: {\n inventedBy?: string[];\n inventionYear?: number;\n },\n): PuzzleLoader {\n const puzzleLoader: PuzzleLoader = genericPGPuzzleLoader(id, fullName, info);\n puzzleLoader.appearance = cubeAppearance.bind(cubeAppearance, puzzleLoader);\n puzzleLoader.stickerings = cubeStickerings;\n return puzzleLoader;\n}\n", "import type { ExperimentalStickering } from \"../../../twisty\";\nimport { asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../../stickerings/cube-stickerings\";\n\nexport const cube2x2x2: PuzzleLoader = {\n id: \"2x2x2\",\n fullName: \"2\u00D72\u00D72 Cube\",\n def: async () => {\n return (await import(\"./2x2x2.kpuzzle.json\")).cube2x2x2KPuzzle;\n },\n svg: async () => {\n return (await import(\"./2x2x2.kpuzzle.svg\")).default;\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(\"2x2x2\");\n },\n appearance: (stickering: ExperimentalStickering): Promise<PuzzleAppearance> =>\n cubeAppearance(cube2x2x2, stickering),\n stickerings: cubeStickerings,\n};\n", "// Include 3x3x3 in the main bundle for better performance.\nimport { experimentalCube3x3x3KPuzzle as cube3x3x3KPuzzle } from \"../../../kpuzzle\";\nimport type { ExperimentalStickering } from \"../../../twisty\";\nimport { asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n cubeAppearance,\n cubeStickerings,\n} from \"../../stickerings/cube-stickerings\";\n\nexport const cube3x3x3: PuzzleLoader = {\n id: \"3x3x3\",\n fullName: \"3\u00D73\u00D73 Cube\",\n inventedBy: [\"Ern\u0151 Rubik\"],\n inventionYear: 1974, // https://en.wikipedia.org/wiki/Rubik%27s_Cube#Conception_and_development\n def: async () => {\n // return await import(\"./3x3x3.kpuzzle.json\");\n return cube3x3x3KPuzzle;\n },\n svg: async () => {\n return (await import(\"./3x3x3.kpuzzle.svg\")).default;\n },\n llSVG: async () => {\n return (await import(\"./3x3x3-ll.kpuzzle.svg\")).default;\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(\"3x3x3\");\n },\n appearance: (stickering: ExperimentalStickering): Promise<PuzzleAppearance> =>\n cubeAppearance(cube3x3x3, stickering),\n stickerings: cubeStickerings,\n};\n", "import type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const clock: PuzzleLoader = {\n id: \"clock\",\n fullName: \"Clock\",\n inventedBy: [\"Christopher C. Wiggs\", \"Christopher J. Taylor\"],\n inventionYear: 1988, // Patent application year: https://www.jaapsch.net/puzzles/patents/us4869506.pdf\n def: async () => {\n return (await import(\"./clock.kpuzzle.json\")).clockKPuzzle;\n },\n svg: async () => {\n return (await import(\"./clock.kpuzzle.svg\")).default;\n },\n};\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport {\n PuzzleAppearance,\n PuzzleStickering,\n StickeringManager,\n PieceSet,\n PieceStickering,\n} from \"./appearance\";\n\nexport async function ftoStickering(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n const def = await puzzleLoader.def();\n const puzzleStickering = new PuzzleStickering(def);\n const m = new StickeringManager(def);\n\n const experimentalFTO_FC = (): PieceSet =>\n m.and([m.move(\"U\"), m.not(m.or(m.moves([\"F\", \"BL\", \"BR\"])))]);\n const experimentalFTO_F2T = (): PieceSet =>\n m.and([m.move(\"U\"), m.not(m.move(\"F\"))]);\n const experimentalFTO_SC = (): PieceSet =>\n m.or([\n experimentalFTO_F2T(),\n m.and([m.move(\"F\"), m.not(m.or(m.moves([\"U\", \"BL\", \"BR\"])))]),\n ]);\n const experimentalFTO_L2C = (): PieceSet =>\n m.not(\n m.or([\n m.and([m.move(\"U\"), m.move(\"F\")]),\n m.and([m.move(\"F\"), m.move(\"BL\")]),\n m.and([m.move(\"F\"), m.move(\"BR\")]),\n m.and([m.move(\"BL\"), m.move(\"BR\")]),\n ]),\n );\n const experimentalFTO_LBT = (): PieceSet =>\n m.not(\n m.or([\n m.and([m.move(\"F\"), m.move(\"BL\")]),\n m.and([m.move(\"F\"), m.move(\"BR\")]),\n m.and([m.move(\"BL\"), m.move(\"BR\")]),\n ]),\n );\n\n switch (stickering) {\n case \"full\":\n break;\n case \"experimental-fto-fc\":\n puzzleStickering.set(\n m.not(experimentalFTO_FC()),\n PieceStickering.Ignored,\n );\n break;\n case \"experimental-fto-f2t\":\n puzzleStickering.set(\n m.not(experimentalFTO_F2T()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_FC(), PieceStickering.Dim);\n break;\n case \"experimental-fto-sc\":\n puzzleStickering.set(\n m.not(experimentalFTO_SC()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_F2T(), PieceStickering.Dim);\n break;\n case \"experimental-fto-l2c\":\n puzzleStickering.set(\n m.not(experimentalFTO_L2C()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_SC(), PieceStickering.Dim);\n break;\n case \"experimental-fto-lbt\":\n puzzleStickering.set(\n m.not(experimentalFTO_LBT()),\n PieceStickering.Ignored,\n );\n puzzleStickering.set(experimentalFTO_L2C(), PieceStickering.Dim);\n break;\n case \"experimental-fto-l3t\":\n puzzleStickering.set(experimentalFTO_LBT(), PieceStickering.Dim);\n break;\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n puzzleStickering.set(m.and(m.moves([])), PieceStickering.Dim);\n }\n return puzzleStickering.toAppearance();\n}\n\nexport async function ftoStickerings(): Promise<ExperimentalStickering[]> {\n return [\n \"full\",\n \"experimental-fto-fc\",\n \"experimental-fto-f2t\",\n \"experimental-fto-sc\",\n \"experimental-fto-l2c\",\n \"experimental-fto-lbt\",\n \"experimental-fto-l3t\",\n ];\n}\n", "import type { PuzzleLoader } from \"../..\";\nimport type { ExperimentalStickering } from \"../../../twisty\";\nimport { asyncGetDef, asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n ftoStickering,\n ftoStickerings,\n} from \"../../stickerings/fto-stickerings\";\n\nexport const fto: PuzzleLoader = {\n id: \"fto\",\n fullName: \"Face-Turning Octahedron\",\n inventedBy: [\"Karl Rohrbach\", \"David Pitcher\"], // http://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1663\n inventionYear: 1983, // http://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1663\n def: async () => {\n return asyncGetDef(\"FTO\");\n },\n svg: async () => {\n const pg = await asyncGetPuzzleGeometry(\"FTO\");\n return pg.generatesvg();\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(\"FTO\");\n },\n appearance: (stickering: ExperimentalStickering): Promise<PuzzleAppearance> =>\n ftoStickering(fto, stickering),\n stickerings: ftoStickerings,\n};\n", "import type { ExperimentalStickering } from \"../../twisty\";\nimport type { PuzzleLoader } from \"../PuzzleLoader\";\nimport type { PuzzleAppearance } from \"./appearance\";\nimport { cubeAppearance } from \"./cube-stickerings\";\n\n// TODO: cache calculations?\nexport async function megaminxAppearance(\n puzzleLoader: PuzzleLoader,\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> {\n switch (stickering) {\n case \"full\":\n case \"F2L\":\n case \"LL\":\n return cubeAppearance(puzzleLoader, stickering);\n default:\n console.warn(\n `Unsupported stickering for ${puzzleLoader.id}: ${stickering}. Setting all pieces to dim.`,\n );\n }\n return cubeAppearance(puzzleLoader, \"full\");\n}\n\nexport async function megaminxStickerings(): Promise<ExperimentalStickering[]> {\n return [\"full\", \"F2L\", \"LL\"];\n}\n", "import type { ExperimentalStickering } from \"../../../twisty\";\nimport { genericPGPuzzleLoader } from \"../../async/async-pg3d\";\nimport type { PuzzleAppearance } from \"../../stickerings/appearance\";\nimport {\n megaminxAppearance,\n megaminxStickerings,\n} from \"../../stickerings/megaminx-stickerings\";\n\nconst megaminx = genericPGPuzzleLoader(\"megaminx\", \"Megaminx\", {\n // Too many simultaneous inventors to name.\n inventionYear: 1981, // Earliest date from https://www.jaapsch.net/puzzles/megaminx.htm\n});\n\n// TODO: loading the stickering code async.\nmegaminx.appearance = (\n stickering: ExperimentalStickering,\n): Promise<PuzzleAppearance> => megaminxAppearance(megaminx, stickering);\nmegaminx.stickerings = megaminxStickerings;\n\nexport { megaminx };\n", "import { asyncGetDef, asyncGetPuzzleGeometry } from \"../../async/async-pg3d\";\nimport type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const pyraminx: PuzzleLoader = {\n id: \"pyraminx\",\n fullName: \"Pyraminx\",\n inventedBy: [\"Uwe Meffert\"],\n inventionYear: 1970, // https://en.wikipedia.org/wiki/Pyraminx#Description\n def: async () => {\n return asyncGetDef(\"pyraminx\");\n },\n svg: async () => {\n return (await import(\"./pyraminx.kpuzzle.svg\")).default;\n },\n pg: async () => {\n return asyncGetPuzzleGeometry(\"pyraminx\");\n },\n};\n", "import type { PuzzleLoader } from \"../../PuzzleLoader\";\n\nexport const square1: PuzzleLoader = {\n id: \"square1\",\n fullName: \"Square-1\",\n inventedBy: [\"Karel Hr\u0161el\", \"Vojtech Kopsk\u00FD\"],\n inventionYear: 1990, // Czech patent application year: http://spisy.upv.cz/Patents/FullDocuments/277/277266.pdf\n def: async () => {\n return (await import(\"./sq1-hyperorbit.kpuzzle.json\")).sq1HyperOrbitKPuzzle;\n },\n svg: async () => {\n return (await import(\"./sq1-hyperorbit.kpuzzle.svg\")).default;\n },\n};\n", "export { customPGPuzzleLoader as experimentalCustomPGPuzzleLoader } from \"./customPGPuzzleLoader\";\nexport { experimentalCube3x3x3KPuzzle as experimentalCube3x3x3KPuzzle } from \"../kpuzzle\";\n\nexport { cubeAppearance as experimentalCubeAppearance } from \"./stickerings/cube-stickerings\";\n\nimport type { PuzzleID } from \"../twisty\";\nimport { cubePGPuzzleLoader, genericPGPuzzleLoader } from \"./async/async-pg3d\";\nimport { cube2x2x2 } from \"./implementations/2x2x2\";\nimport { cube3x3x3 } from \"./implementations/3x3x3\";\nimport { clock } from \"./implementations/clock\";\nimport { fto } from \"./implementations/fto\";\nimport { megaminx } from \"./implementations/megaminx\";\nimport { pyraminx } from \"./implementations/pyraminx\";\nimport { square1 } from \"./implementations/square1\";\nimport type { PuzzleLoader } from \"./PuzzleLoader\";\n\nexport type { PuzzleLoader };\n\nexport const puzzles: Record<string, PuzzleLoader> = {\n /******** Start of WCA Puzzles *******/\n \"3x3x3\": cube3x3x3,\n \"2x2x2\": cube2x2x2,\n \"4x4x4\": cubePGPuzzleLoader(\"4x4x4\", \"4\u00D74\u00D74 Cube\"),\n \"5x5x5\": cubePGPuzzleLoader(\"5x5x5\", \"5\u00D75\u00D75 Cube\"),\n \"6x6x6\": cubePGPuzzleLoader(\"6x6x6\", \"6\u00D76\u00D76 Cube\"),\n \"7x7x7\": cubePGPuzzleLoader(\"7x7x7\", \"7\u00D77\u00D77 Cube\"),\n \"40x40x40\": cubePGPuzzleLoader(\"40x40x40\", \"40\u00D740\u00D740 Cube\"),\n // 3x3x3 Blindfolded\n // 3x3x3 Fewest Moves\n // 3x3x3 One-Handed\n clock,\n \"megaminx\": megaminx,\n pyraminx,\n \"skewb\": genericPGPuzzleLoader(\"skewb\", \"Skewb\", {\n inventedBy: [\"Tony Durham\"], // https://www.jaapsch.net/puzzles/skewb.htm\n // inventionYear: 1982, // 1982 is actually the year of Hofstadter's column.\n }),\n square1,\n // 4x4x4 Blindfolded\n // 5x5x5 Blindfolded\n /******** End of WCA puzzles ********/\n \"fto\": fto,\n \"gigaminx\": genericPGPuzzleLoader(\"gigaminx\", \"Gigaminx\", {\n inventedBy: [\"Tyler Fox\"],\n inventionYear: 2006, // Earliest date from https://www.twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1475\n }),\n \"master_tetraminx\": genericPGPuzzleLoader(\n \"master tetraminx\",\n \"Master Tetraminx\",\n {\n inventedBy: [\"Katsuhiko Okamoto\"], // Using master pyraminx: https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1352\n inventionYear: 2002, // Using master pyraminx: https://twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1352\n },\n ),\n};\n\nexport { cube2x2x2, cube3x3x3 };\n\nexport { getFaceletAppearance as experimentalGetFaceletAppearance } from \"./stickerings/appearance\";\nexport type {\n FaceletMeshAppearance as ExperimentalFaceletMeshAppearance,\n PuzzleAppearance as ExperimentalPuzzleAppearance,\n} from \"./stickerings/appearance\";\n\ninterface WCAEventInfo {\n puzzleID: PuzzleID;\n eventName: string;\n}\n\nconst wcaEvents: Record<string, WCAEventInfo> = {\n \"333\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Cube\" },\n \"222\": { puzzleID: \"2x2x2\", eventName: \"2x2x2 Cube\" },\n \"444\": { puzzleID: \"4x4x4\", eventName: \"4x4x4 Cube\" },\n \"555\": { puzzleID: \"5x5x5\", eventName: \"5x5x5 Cube\" },\n \"666\": { puzzleID: \"6x6x6\", eventName: \"6x6x6 Cube\" },\n \"777\": { puzzleID: \"7x7x7\", eventName: \"7x7x7 Cube\" },\n \"333bf\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Blindfolded\" },\n \"333fm\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 Fewest Moves\" },\n \"333oh\": { puzzleID: \"3x3x3\", eventName: \"3x3x3 One-Handed\" },\n \"clock\": { puzzleID: \"clock\", eventName: \"Clock\" },\n \"minx\": { puzzleID: \"megaminx\", eventName: \"Megaminx\" },\n \"pyram\": { puzzleID: \"pyraminx\", eventName: \"Pyraminx\" },\n \"skewb\": { puzzleID: \"skewb\", eventName: \"Skewb\" },\n \"sq1\": { puzzleID: \"square1\", eventName: \"Square-1\" },\n \"444bf\": { puzzleID: \"4x4x4\", eventName: \"4x4x4 Blindfolded\" },\n \"555bf\": { puzzleID: \"5x5x5\", eventName: \"5x5x5 Blindfolded\" },\n \"333mb\": { puzzleID: \"3x3x3\", eventName: \" 3x3x3 Multi-Blind\" },\n};\n\nexport function wcaEventInfo(event: string): WCAEventInfo | null {\n return wcaEvents[event] ?? null;\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }