cubing 0.24.7 → 0.25.3

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 (118) hide show
  1. package/README.md +14 -5
  2. package/dist/esm/{2x2x2.sgs.json-KBCXHIZP.js → 2x2x2.sgs.json-MMXKAIKZ.js} +2 -2
  3. package/dist/esm/{2x2x2.sgs.json-KBCXHIZP.js.map → 2x2x2.sgs.json-MMXKAIKZ.js.map} +0 -0
  4. package/dist/esm/{3d-dynamic-inside-IIG5EJZP.js → 3d-dynamic-N4H7XJWX.js} +28 -26
  5. package/dist/esm/3d-dynamic-N4H7XJWX.js.map +7 -0
  6. package/dist/esm/{gwt-B7CBESZR.js → 3x3x3-min2phase-FPRJ5PCJ.js} +2 -2
  7. package/dist/esm/{gwt-B7CBESZR.js.map → 3x3x3-min2phase-FPRJ5PCJ.js.map} +1 -1
  8. package/dist/esm/{scramble_444-ZFKBLRUE.js → 444-solver-PV2GUWP2.js} +5 -5
  9. package/dist/esm/{scramble_444-ZFKBLRUE.js.map → 444-solver-PV2GUWP2.js.map} +1 -1
  10. package/dist/esm/bluetooth/index.js +1 -1
  11. package/dist/esm/{chunk-DMCRTYR4.js → chunk-5GJ5C7NZ.js} +31 -23
  12. package/dist/esm/chunk-5GJ5C7NZ.js.map +7 -0
  13. package/dist/esm/chunk-BEXHMXCT.js +9 -0
  14. package/dist/esm/chunk-BEXHMXCT.js.map +7 -0
  15. package/dist/esm/{chunk-KRL5KQQK.js → chunk-F5WNHV7V.js} +2 -2
  16. package/dist/esm/{chunk-KRL5KQQK.js.map → chunk-F5WNHV7V.js.map} +2 -2
  17. package/dist/esm/chunk-IVQ4ITE2.js +33 -0
  18. package/dist/esm/chunk-IVQ4ITE2.js.map +7 -0
  19. package/dist/esm/{chunk-T5KQKRR3.js → chunk-KJZNEDOV.js} +2 -2
  20. package/dist/esm/{chunk-T5KQKRR3.js.map → chunk-KJZNEDOV.js.map} +0 -0
  21. package/dist/esm/{chunk-MVJPIWT7.js → chunk-LMZIKLXW.js} +84 -29
  22. package/dist/esm/chunk-LMZIKLXW.js.map +7 -0
  23. package/dist/esm/{chunk-UOI5KUW4.js → chunk-NGA3FW7U.js} +4 -4
  24. package/dist/esm/{chunk-UOI5KUW4.js.map → chunk-NGA3FW7U.js.map} +2 -2
  25. package/dist/esm/{chunk-OOIEAACO.js → chunk-OH2FLVZM.js} +7 -2
  26. package/dist/esm/{chunk-OOIEAACO.js.map → chunk-OH2FLVZM.js.map} +2 -2
  27. package/dist/esm/{chunk-QMZKTP7F.js → chunk-QEDC2QTN.js} +2 -2
  28. package/dist/esm/{chunk-QMZKTP7F.js.map → chunk-QEDC2QTN.js.map} +0 -0
  29. package/dist/esm/{chunk-37EHU3GZ.js → chunk-RENZB7QN.js} +4 -2
  30. package/dist/esm/chunk-RENZB7QN.js.map +7 -0
  31. package/dist/esm/{chunk-V7BTHDW3.js → chunk-UNROETIO.js} +2 -2
  32. package/dist/esm/{chunk-V7BTHDW3.js.map → chunk-UNROETIO.js.map} +0 -0
  33. package/dist/esm/chunk-WDJDRVZZ.js +28 -0
  34. package/dist/esm/chunk-WDJDRVZZ.js.map +7 -0
  35. package/dist/esm/fto-solver-HI6NIV74.js +1537 -0
  36. package/dist/esm/fto-solver-HI6NIV74.js.map +7 -0
  37. package/dist/esm/{fto.sgs.json-USV4WNQJ.js → fto.dynamic-UHH65HEC.js} +8 -3
  38. package/dist/esm/fto.dynamic-UHH65HEC.js.map +7 -0
  39. package/dist/esm/kilominx.kpuzzle.svg-7XJBOKFU.js +83 -0
  40. package/dist/esm/kilominx.kpuzzle.svg-7XJBOKFU.js.map +7 -0
  41. package/dist/esm/master_tetraminx-solver-KBQJGW4A.js +729 -0
  42. package/dist/esm/master_tetraminx-solver-KBQJGW4A.js.map +7 -0
  43. package/dist/esm/{megaminx.sgs.json-KKR4VPHV.js → megaminx.sgs.json-3ZEDZMWF.js} +3 -3
  44. package/dist/esm/{megaminx.sgs.json-KKR4VPHV.js.map → megaminx.sgs.json-3ZEDZMWF.js.map} +0 -0
  45. package/dist/esm/puzzle-geometry/index.js +1 -1
  46. package/dist/esm/puzzles/index.js +3 -1
  47. package/dist/esm/{pyraminx.sgs.json-HMKDN3ZT.js → pyraminx.sgs.json-5IA2F65U.js} +3 -3
  48. package/dist/esm/{pyraminx.sgs.json-HMKDN3ZT.js.map → pyraminx.sgs.json-5IA2F65U.js.map} +0 -0
  49. package/dist/esm/scramble/index.js +6 -4
  50. package/dist/esm/search/index.js +6 -4
  51. package/dist/esm/{entry-FHL2XSAP.js → search-worker-js-entry-AXEFSQVG.js} +49 -66
  52. package/dist/esm/search-worker-js-entry-AXEFSQVG.js.map +7 -0
  53. package/dist/esm/search-worker-ts-entry-OOL7WATY.js +22 -0
  54. package/dist/esm/search-worker-ts-entry-OOL7WATY.js.map +7 -0
  55. package/dist/esm/{skewb.sgs.json-MWONK6HT.js → skewb.sgs.json-6NDFH63U.js} +3 -3
  56. package/dist/esm/{skewb.sgs.json-MWONK6HT.js.map → skewb.sgs.json-6NDFH63U.js.map} +0 -0
  57. package/dist/esm/{scramble_sq1-PQ2AYBFW.js → sq1-solver-P3IWWET7.js} +3 -3
  58. package/dist/esm/{scramble_sq1-PQ2AYBFW.js.map → sq1-solver-P3IWWET7.js.map} +1 -1
  59. package/dist/esm/twisty/index.js +55 -12
  60. package/dist/esm/twisty/index.js.map +3 -3
  61. package/dist/esm/worker-inside-generated-string-CSXWVF2Y.js +3522 -0
  62. package/dist/esm/worker-inside-generated-string-CSXWVF2Y.js.map +7 -0
  63. package/dist/types/puzzles/async/async-pg3d.d.ts +2 -0
  64. package/dist/types/puzzles/events.d.ts +8 -0
  65. package/dist/types/puzzles/implementations/kilominx/index.d.ts +2 -0
  66. package/dist/types/puzzles/implementations/kilominx/kilominx.kpuzzle.svg.d.ts +1 -0
  67. package/dist/types/puzzles/index.d.ts +6 -11
  68. package/dist/types/{esm-test-worker.d.ts → search/inside/search-worker-js-entry.d.ts} +0 -0
  69. package/dist/types/search/inside/{module-entry-path-getter.d.ts → search-worker-ts-entry-path-getter.d.ts} +0 -0
  70. package/dist/types/search/inside/{module-entry.d.ts → search-worker-ts-entry.d.ts} +0 -0
  71. package/dist/types/search/inside/solve/puzzles/fto.d.ts +1 -1
  72. package/dist/types/search/inside/solve/puzzles/{fto.sgs.json.d.ts → fto.dynamic.d.ts} +1 -0
  73. package/dist/types/search/inside/solve/puzzles/master_tetraminx.d.ts +2 -0
  74. package/dist/types/search/inside/worker-guard.d.ts +3 -0
  75. package/dist/types/search/worker-inside-generated-string.d.ts +1 -1
  76. package/dist/types/twisty/heavy-code-imports/3d.d.ts +1 -1
  77. package/dist/types/twisty/heavy-code-imports/dynamic-entries/{3d-dynamic-inside.d.ts → 3d-dynamic.d.ts} +0 -0
  78. package/dist/types/twisty/model/TwistyPlayerModel.d.ts +4 -0
  79. package/dist/types/twisty/model/props/TwistyPropDebugger.d.ts +1 -2
  80. package/dist/types/twisty/model/props/general/ArbitraryStringProp.d.ts +4 -0
  81. package/dist/types/twisty/model/props/puzzle/structure/PuzzleIDRequestProp.d.ts +1 -0
  82. package/dist/types/twisty/views/TwistyPlayer.d.ts +6 -0
  83. package/dist/types/twisty/views/TwistyPlayerSettable.d.ts +6 -0
  84. package/dist/types/twisty/views/twizzle/TwizzleLink.d.ts +1 -1
  85. package/dist/types/vendor/comlink-everywhere/inside/index.d.ts +4 -1
  86. package/dist/types/vendor/comlink-everywhere/node-adapter.d.ts +6 -0
  87. package/dist/types/vendor/comlink-everywhere/outside/index.d.ts +4 -2
  88. package/dist/types/vendor/cstimer/src/js/scramble/{scramble_444.d.ts → 444-solver.d.ts} +0 -0
  89. package/dist/types/vendor/min2phase/{gwt.d.ts → 3x3x3-min2phase.d.ts} +0 -0
  90. package/dist/types/vendor/sq12phase/{scramble_sq1.d.ts → sq1-solver.d.ts} +0 -0
  91. package/dist/types/vendor/xyzzy/fto-solver-original.d.ts +203 -0
  92. package/dist/types/vendor/xyzzy/fto-solver.d.ts +1 -0
  93. package/dist/types/vendor/xyzzy/kilosolver.d.ts +140 -0
  94. package/dist/types/vendor/xyzzy/master_tetraminx-solver.d.ts +1 -0
  95. package/dist/types/vendor/xyzzy/rediscrambler.d.ts +94 -0
  96. package/package.json +3 -3
  97. package/dist/esm/3d-dynamic-inside-IIG5EJZP.js.map +0 -7
  98. package/dist/esm/chunk-37EHU3GZ.js.map +0 -7
  99. package/dist/esm/chunk-BJIOROQC.js +0 -18
  100. package/dist/esm/chunk-BJIOROQC.js.map +0 -7
  101. package/dist/esm/chunk-DMCRTYR4.js.map +0 -7
  102. package/dist/esm/chunk-MVJPIWT7.js.map +0 -7
  103. package/dist/esm/entry-FHL2XSAP.js.map +0 -7
  104. package/dist/esm/esm-test-worker.js +0 -15
  105. package/dist/esm/esm-test-worker.js.map +0 -7
  106. package/dist/esm/fto.sgs.json-USV4WNQJ.js.map +0 -7
  107. package/dist/esm/module-entry-TKJ6ZAZB.js +0 -18
  108. package/dist/esm/module-entry-TKJ6ZAZB.js.map +0 -7
  109. package/dist/esm/node-SP4L2AKI.js +0 -12
  110. package/dist/esm/node-SP4L2AKI.js.map +0 -7
  111. package/dist/esm/node-W3AD4HBK.js +0 -39
  112. package/dist/esm/node-W3AD4HBK.js.map +0 -7
  113. package/dist/esm/worker-inside-generated-string-XYHIVIPG.js +0 -3447
  114. package/dist/esm/worker-inside-generated-string-XYHIVIPG.js.map +0 -7
  115. package/dist/types/search/esm-test-worker.d.ts +0 -3
  116. package/dist/types/search/inside/entry.d.ts +0 -1
  117. package/dist/types/vendor/comlink-everywhere/inside/node.d.ts +0 -1
  118. package/dist/types/vendor/comlink-everywhere/outside/node.d.ts +0 -2
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  randomUIntBelowFactory
3
- } from "./chunk-37EHU3GZ.js";
3
+ } from "./chunk-RENZB7QN.js";
4
4
  import "./chunk-WO2AXYFE.js";
5
5
 
6
- // src/cubing/vendor/sq12phase/scramble_sq1.js
6
+ // src/cubing/vendor/sq12phase/sq1-solver.js
7
7
  function FullCube_copy(obj, c) {
8
8
  obj.ul = c.ul;
9
9
  obj.ur = c.ur;
@@ -703,4 +703,4 @@ async function getRandomSquare1ScrambleString() {
703
703
  export {
704
704
  getRandomSquare1ScrambleString
705
705
  };
706
- //# sourceMappingURL=scramble_sq1-PQ2AYBFW.js.map
706
+ //# sourceMappingURL=sq1-solver-P3IWWET7.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/cubing/vendor/sq12phase/scramble_sq1.js"],
3
+ "sources": ["../../src/cubing/vendor/sq12phase/sq1-solver.js"],
4
4
  "sourcesContent": ["/*\n\nscramble_sq1.js\n\nSquare-1 Solver / Scramble Generator in JavaScript.\n\nCode by by Shuang Chen.\nCompiled to JavaScript using GWT.\n\n*/\n\nimport { randomUIntBelowFactory } from \"../random-uint-below\";\n\nfunction FullCube_copy(obj, c) {\n obj.ul = c.ul;\n obj.ur = c.ur;\n obj.dl = c.dl;\n obj.dr = c.dr;\n obj.ml = c.ml;\n}\n\nfunction FullCube_doMove(obj, move) {\n var temp;\n move <<= 2;\n if (move > 24) {\n move = 48 - move;\n temp = obj.ul;\n obj.ul = ((~~obj.ul >> move) | (obj.ur << (24 - move))) & 16777215;\n obj.ur = ((~~obj.ur >> move) | (temp << (24 - move))) & 16777215;\n } else if (move > 0) {\n temp = obj.ul;\n obj.ul = ((obj.ul << move) | (~~obj.ur >> (24 - move))) & 16777215;\n obj.ur = ((obj.ur << move) | (~~temp >> (24 - move))) & 16777215;\n } else if (move == 0) {\n temp = obj.ur;\n obj.ur = obj.dl;\n obj.dl = temp;\n obj.ml = 1 - obj.ml;\n } else if (move >= -24) {\n move = -move;\n temp = obj.dl;\n obj.dl = ((obj.dl << move) | (~~obj.dr >> (24 - move))) & 16777215;\n obj.dr = ((obj.dr << move) | (~~temp >> (24 - move))) & 16777215;\n } else if (move < -24) {\n move = 48 + move;\n temp = obj.dl;\n obj.dl = ((~~obj.dl >> move) | (obj.dr << (24 - move))) & 16777215;\n obj.dr = ((~~obj.dr >> move) | (temp << (24 - move))) & 16777215;\n }\n}\n\nfunction FullCube_getParity(obj) {\n var a, b, cnt, i, p;\n cnt = 0;\n obj.arr[0] = FullCube_pieceAt(obj, 0);\n for (i = 1; i < 24; ++i) {\n FullCube_pieceAt(obj, i) != obj.arr[cnt] &&\n (obj.arr[++cnt] = FullCube_pieceAt(obj, i));\n }\n p = 0;\n for (a = 0; a < 16; ++a) {\n for (b = a + 1; b < 16; ++b) {\n obj.arr[a] > obj.arr[b] && (p ^= 1);\n }\n }\n return p;\n}\n\nfunction FullCube_getShapeIdx(obj) {\n var dlx, drx, ulx, urx;\n urx = obj.ur & 1118481;\n urx |= ~~urx >> 3;\n urx |= ~~urx >> 6;\n urx = (urx & 15) | ((~~urx >> 12) & 48);\n ulx = obj.ul & 1118481;\n ulx |= ~~ulx >> 3;\n ulx |= ~~ulx >> 6;\n ulx = (ulx & 15) | ((~~ulx >> 12) & 48);\n drx = obj.dr & 1118481;\n drx |= ~~drx >> 3;\n drx |= ~~drx >> 6;\n drx = (drx & 15) | ((~~drx >> 12) & 48);\n dlx = obj.dl & 1118481;\n dlx |= ~~dlx >> 3;\n dlx |= ~~dlx >> 6;\n dlx = (dlx & 15) | ((~~dlx >> 12) & 48);\n return Shape_getShape2Idx(\n (FullCube_getParity(obj) << 24) |\n (ulx << 18) |\n (urx << 12) |\n (dlx << 6) |\n drx,\n );\n}\n\nfunction FullCube_getSquare(obj, sq) {\n var a, b;\n for (a = 0; a < 8; ++a) {\n obj.prm[a] = ~~((~~FullCube_pieceAt(obj, a * 3 + 1) >> 1) << 24) >> 24;\n }\n sq.cornperm = get8Perm(obj.prm);\n sq.topEdgeFirst = FullCube_pieceAt(obj, 0) == FullCube_pieceAt(obj, 1);\n a = sq.topEdgeFirst ? 2 : 0;\n for (b = 0; b < 4; a += 3, ++b)\n obj.prm[b] = ~~((~~FullCube_pieceAt(obj, a) >> 1) << 24) >> 24;\n sq.botEdgeFirst = FullCube_pieceAt(obj, 12) == FullCube_pieceAt(obj, 13);\n a = sq.botEdgeFirst ? 14 : 12;\n for (; b < 8; a += 3, ++b)\n obj.prm[b] = ~~((~~FullCube_pieceAt(obj, a) >> 1) << 24) >> 24;\n sq.edgeperm = get8Perm(obj.prm);\n sq.ml = obj.ml;\n}\n\nfunction FullCube_pieceAt(obj, idx) {\n var ret;\n idx < 6\n ? (ret = ~~obj.ul >> ((5 - idx) << 2))\n : idx < 12\n ? (ret = ~~obj.ur >> ((11 - idx) << 2))\n : idx < 18\n ? (ret = ~~obj.dl >> ((17 - idx) << 2))\n : (ret = ~~obj.dr >> ((23 - idx) << 2));\n return ~~((ret & 15) << 24) >> 24;\n}\n\nfunction FullCube_setPiece(obj, idx, value) {\n if (idx < 6) {\n obj.ul &= ~(0xf << ((5 - idx) << 2));\n obj.ul |= value << ((5 - idx) << 2);\n } else if (idx < 12) {\n obj.ur &= ~(0xf << ((11 - idx) << 2));\n obj.ur |= value << ((11 - idx) << 2);\n } else if (idx < 18) {\n obj.dl &= ~(0xf << ((17 - idx) << 2));\n obj.dl |= value << ((17 - idx) << 2);\n } else {\n obj.dr &= ~(0xf << ((23 - idx) << 2));\n obj.dr |= value << ((23 - idx) << 2);\n }\n}\n\nfunction FullCube_FullCube__Ljava_lang_String_2V() {\n this.arr = [];\n this.prm = [];\n}\n\nasync function FullCube_randomCube() {\n const randomUintBelow = await randomUIntBelowFactory();\n\n var f, i, shape, edge, corner, n_edge, n_corner, rnd, m;\n f = new FullCube_FullCube__Ljava_lang_String_2V();\n shape = Shape_ShapeIdx[randomUintBelow(3678)];\n corner = (0x01234567 << 1) | 0x11111111;\n edge = 0x01234567 << 1;\n n_corner = n_edge = 8;\n for (i = 0; i < 24; i++) {\n if (((shape >> i) & 1) == 0) {\n //edge\n rnd = randomUintBelow(n_edge) << 2;\n FullCube_setPiece(f, 23 - i, (edge >> rnd) & 0xf);\n m = (1 << rnd) - 1;\n edge = (edge & m) + ((edge >> 4) & ~m);\n --n_edge;\n } else {\n //corner\n rnd = randomUintBelow(n_corner) << 2;\n FullCube_setPiece(f, 23 - i, (corner >> rnd) & 0xf);\n FullCube_setPiece(f, 22 - i, (corner >> rnd) & 0xf);\n m = (1 << rnd) - 1;\n corner = (corner & m) + ((corner >> 4) & ~m);\n --n_corner;\n ++i;\n }\n }\n f.ml = randomUintBelow(2);\n //\tconsole.log(f);\n return f;\n}\n\nfunction FullCube() {}\n\nlet _ = (FullCube_FullCube__Ljava_lang_String_2V.prototype =\n FullCube.prototype);\n_.dl = 10062778;\n_.dr = 14536702;\n_.ml = 0;\n_.ul = 70195;\n_.ur = 4544119;\nfunction Search_init2(obj) {\n var corner, edge, i, j, ml, prun;\n FullCube_copy(obj.Search_d, obj.Search_c);\n for (i = 0; i < obj.Search_length1; ++i) {\n FullCube_doMove(obj.Search_d, obj.Search_move[i]);\n }\n FullCube_getSquare(obj.Search_d, obj.Search_sq);\n edge = obj.Search_sq.edgeperm;\n corner = obj.Search_sq.cornperm;\n ml = obj.Search_sq.ml;\n prun = Math.max(\n SquarePrun[(obj.Search_sq.edgeperm << 1) | ml],\n SquarePrun[(obj.Search_sq.cornperm << 1) | ml],\n );\n for (i = prun; i < obj.Search_maxlen2; ++i) {\n if (\n Search_phase2(\n obj,\n edge,\n corner,\n obj.Search_sq.topEdgeFirst,\n obj.Search_sq.botEdgeFirst,\n ml,\n i,\n obj.Search_length1,\n 0,\n )\n ) {\n for (j = 0; j < i; ++j) {\n FullCube_doMove(obj.Search_d, obj.Search_move[obj.Search_length1 + j]);\n //console.log(obj.Search_move[obj.Search_length1 + j]);\n }\n //console.log(obj.Search_d);\n //console.log(obj.Search_move);\n obj.Search_sol_string = Search_move2string(obj, i + obj.Search_length1);\n return true;\n }\n }\n return false;\n}\n\nfunction Search_move2string(obj, len) {\n var s = \"\";\n var top = 0,\n bottom = 0;\n for (var i = len - 1; i >= 0; i--) {\n var val = obj.Search_move[i];\n //console.log(val);\n if (val > 0) {\n val = 12 - val;\n top = val > 6 ? val - 12 : val;\n } else if (val < 0) {\n val = 12 + val;\n bottom = val > 6 ? val - 12 : val;\n } else {\n if (top == 0 && bottom == 0) {\n s += \" / \";\n } else {\n s += \"(\" + top + \", \" + bottom + \") / \";\n }\n top = bottom = 0;\n }\n }\n if (top !== 0 || bottom !== 0) {\n s += \"(\" + top + \", \" + bottom + \")\";\n }\n return s; // + \" (\" + len + \"t)\";\n}\n\nfunction Search_phase1(obj, shape, prunvalue, maxl, depth, lm) {\n var m, prunx, shapex;\n if (prunvalue == 0 && maxl < 4) {\n return maxl == 0 && Search_init2(obj);\n }\n if (lm != 0) {\n shapex = Shape_TwistMove[shape];\n prunx = ShapePrun[shapex];\n if (prunx < maxl) {\n obj.Search_move[depth] = 0;\n if (Search_phase1(obj, shapex, prunx, maxl - 1, depth + 1, 0)) {\n return true;\n }\n }\n }\n shapex = shape;\n if (lm <= 0) {\n m = 0;\n for (;;) {\n m += Shape_TopMove[shapex];\n shapex = ~~m >> 4;\n m &= 15;\n if (m >= 12) {\n break;\n }\n prunx = ShapePrun[shapex];\n if (prunx > maxl) {\n break;\n } else if (prunx < maxl) {\n obj.Search_move[depth] = m;\n if (Search_phase1(obj, shapex, prunx, maxl - 1, depth + 1, 1)) {\n return true;\n }\n }\n }\n }\n shapex = shape;\n if (lm <= 1) {\n m = 0;\n for (;;) {\n m += Shape_BottomMove[shapex];\n shapex = ~~m >> 4;\n m &= 15;\n if (m >= 6) {\n break;\n }\n prunx = ShapePrun[shapex];\n if (prunx > maxl) {\n break;\n } else if (prunx < maxl) {\n obj.Search_move[depth] = -m;\n if (Search_phase1(obj, shapex, prunx, maxl - 1, depth + 1, 2)) {\n return true;\n }\n }\n }\n }\n return false;\n}\n\nfunction Search_phase2(\n obj,\n edge,\n corner,\n topEdgeFirst,\n botEdgeFirst,\n ml,\n maxl,\n depth,\n lm,\n) {\n var botEdgeFirstx, cornerx, edgex, m, prun1, prun2, topEdgeFirstx;\n if (maxl == 0 && !topEdgeFirst && botEdgeFirst) {\n return true;\n }\n if (lm != 0 && topEdgeFirst == botEdgeFirst) {\n edgex = Square_TwistMove[edge];\n cornerx = Square_TwistMove[corner];\n if (\n SquarePrun[(edgex << 1) | (1 - ml)] < maxl &&\n SquarePrun[(cornerx << 1) | (1 - ml)] < maxl\n ) {\n obj.Search_move[depth] = 0;\n if (\n Search_phase2(\n obj,\n edgex,\n cornerx,\n topEdgeFirst,\n botEdgeFirst,\n 1 - ml,\n maxl - 1,\n depth + 1,\n 0,\n )\n ) {\n return true;\n }\n }\n }\n if (lm <= 0) {\n topEdgeFirstx = !topEdgeFirst;\n edgex = topEdgeFirstx ? Square_TopMove[edge] : edge;\n cornerx = topEdgeFirstx ? corner : Square_TopMove[corner];\n m = topEdgeFirstx ? 1 : 2;\n prun1 = SquarePrun[(edgex << 1) | ml];\n prun2 = SquarePrun[(cornerx << 1) | ml];\n while (m < 12 && prun1 <= maxl && prun1 <= maxl) {\n if (prun1 < maxl && prun2 < maxl) {\n obj.Search_move[depth] = m;\n if (\n Search_phase2(\n obj,\n edgex,\n cornerx,\n topEdgeFirstx,\n botEdgeFirst,\n ml,\n maxl - 1,\n depth + 1,\n 1,\n )\n ) {\n return true;\n }\n }\n topEdgeFirstx = !topEdgeFirstx;\n if (topEdgeFirstx) {\n edgex = Square_TopMove[edgex];\n prun1 = SquarePrun[(edgex << 1) | ml];\n m += 1;\n } else {\n cornerx = Square_TopMove[cornerx];\n prun2 = SquarePrun[(cornerx << 1) | ml];\n m += 2;\n }\n }\n }\n if (lm <= 1) {\n botEdgeFirstx = !botEdgeFirst;\n edgex = botEdgeFirstx ? Square_BottomMove[edge] : edge;\n cornerx = botEdgeFirstx ? corner : Square_BottomMove[corner];\n m = botEdgeFirstx ? 1 : 2;\n prun1 = SquarePrun[(edgex << 1) | ml];\n prun2 = SquarePrun[(cornerx << 1) | ml];\n while (m < (maxl > 3 ? 6 : 12) && prun1 <= maxl && prun1 <= maxl) {\n if (prun1 < maxl && prun2 < maxl) {\n obj.Search_move[depth] = -m;\n if (\n Search_phase2(\n obj,\n edgex,\n cornerx,\n topEdgeFirst,\n botEdgeFirstx,\n ml,\n maxl - 1,\n depth + 1,\n 2,\n )\n ) {\n return true;\n }\n }\n botEdgeFirstx = !botEdgeFirstx;\n if (botEdgeFirstx) {\n edgex = Square_BottomMove[edgex];\n prun1 = SquarePrun[(edgex << 1) | ml];\n m += 1;\n } else {\n cornerx = Square_BottomMove[cornerx];\n prun2 = SquarePrun[(cornerx << 1) | ml];\n m += 2;\n }\n }\n }\n return false;\n}\n\nfunction Search_solution(obj, c) {\n var shape;\n obj.Search_c = c;\n shape = FullCube_getShapeIdx(c);\n //console.log(shape);\n for (\n obj.Search_length1 = ShapePrun[shape];\n obj.Search_length1 < 100;\n ++obj.Search_length1\n ) {\n //console.log(obj.Search_length1);\n obj.Search_maxlen2 = Math.min(31 - obj.Search_length1, 17);\n if (\n Search_phase1(obj, shape, ShapePrun[shape], obj.Search_length1, 0, -1)\n ) {\n break;\n }\n }\n return obj.Search_sol_string;\n}\n\nfunction Search_Search() {\n this.Search_move = [];\n this.Search_d = new FullCube_FullCube__Ljava_lang_String_2V();\n this.Search_sq = new Square_Square();\n}\n\nfunction Search() {}\n\n_ = Search_Search.prototype = Search.prototype;\n_.Search_c = null;\n_.Search_length1 = 0;\n_.Search_maxlen2 = 0;\n_.Search_sol_string = null;\nlet Shape_$clinit_ran = false;\nfunction Shape_$clinit() {\n if (Shape_$clinit_ran) {\n return;\n }\n Shape_$clinit_ran = true;\n Shape_halflayer = [0, 3, 6, 12, 15, 24, 27, 30, 48, 51, 54, 60, 63];\n Shape_ShapeIdx = [];\n ShapePrun = [];\n Shape_TopMove = [];\n Shape_BottomMove = [];\n Shape_TwistMove = [];\n Shape_init();\n}\n\nfunction Shape_bottomMove(obj) {\n var move, moveParity;\n move = 0;\n moveParity = 0;\n do {\n if ((obj.bottom & 2048) == 0) {\n move += 1;\n obj.bottom = obj.bottom << 1;\n } else {\n move += 2;\n obj.bottom = (obj.bottom << 2) ^ 12291;\n }\n moveParity = 1 - moveParity;\n } while ((bitCount(obj.bottom & 63) & 1) != 0);\n (bitCount(obj.bottom) & 2) == 0 && (obj.Shape_parity ^= moveParity);\n return move;\n}\n\nfunction Shape_getIdx(obj) {\n var ret;\n ret =\n (binarySearch(Shape_ShapeIdx, (obj.top << 12) | obj.bottom) << 1) |\n obj.Shape_parity;\n return ret;\n}\n\nfunction Shape_setIdx(obj, idx) {\n obj.Shape_parity = idx & 1;\n obj.top = Shape_ShapeIdx[~~idx >> 1];\n obj.bottom = obj.top & 4095;\n obj.top >>= 12;\n}\n\nfunction Shape_topMove(obj) {\n var move, moveParity;\n move = 0;\n moveParity = 0;\n do {\n if ((obj.top & 2048) == 0) {\n move += 1;\n obj.top = obj.top << 1;\n } else {\n move += 2;\n obj.top = (obj.top << 2) ^ 12291;\n }\n moveParity = 1 - moveParity;\n } while ((bitCount(obj.top & 63) & 1) != 0);\n (bitCount(obj.top) & 2) == 0 && (obj.Shape_parity ^= moveParity);\n return move;\n}\n\nfunction Shape_Shape() {}\n\nfunction Shape_getShape2Idx(shp) {\n var ret;\n ret = (binarySearch(Shape_ShapeIdx, shp & 16777215) << 1) | (~~shp >> 24);\n return ret;\n}\n\nfunction Shape_init() {\n var count,\n depth,\n dl,\n done,\n done0,\n dr,\n i,\n idx,\n m,\n s,\n ul,\n ur,\n value,\n p1,\n p3,\n temp;\n count = 0;\n for (i = 0; i < 28561; ++i) {\n dr = Shape_halflayer[i % 13];\n dl = Shape_halflayer[~~(i / 13) % 13];\n ur = Shape_halflayer[~~(~~(i / 13) / 13) % 13];\n ul = Shape_halflayer[~~(~~(~~(i / 13) / 13) / 13)];\n value = (ul << 18) | (ur << 12) | (dl << 6) | dr;\n bitCount(value) == 16 && (Shape_ShapeIdx[count++] = value);\n }\n s = new Shape_Shape();\n for (i = 0; i < 7356; ++i) {\n Shape_setIdx(s, i);\n Shape_TopMove[i] = Shape_topMove(s);\n Shape_TopMove[i] |= Shape_getIdx(s) << 4;\n Shape_setIdx(s, i);\n Shape_BottomMove[i] = Shape_bottomMove(s);\n Shape_BottomMove[i] |= Shape_getIdx(s) << 4;\n Shape_setIdx(s, i);\n temp = s.top & 63;\n p1 = bitCount(temp);\n p3 = bitCount(s.bottom & 4032);\n s.Shape_parity ^= 1 & (~~(p1 & p3) >> 1);\n s.top = (s.top & 4032) | ((~~s.bottom >> 6) & 63);\n s.bottom = (s.bottom & 63) | (temp << 6);\n Shape_TwistMove[i] = Shape_getIdx(s);\n }\n for (i = 0; i < 7536; ++i) {\n ShapePrun[i] = -1;\n }\n ShapePrun[Shape_getShape2Idx(14378715)] = 0;\n ShapePrun[Shape_getShape2Idx(31157686)] = 0;\n ShapePrun[Shape_getShape2Idx(23967451)] = 0;\n ShapePrun[Shape_getShape2Idx(7191990)] = 0;\n done = 4;\n done0 = 0;\n depth = -1;\n while (done != done0) {\n done0 = done;\n ++depth;\n for (i = 0; i < 7536; ++i) {\n if (ShapePrun[i] == depth) {\n m = 0;\n idx = i;\n do {\n idx = Shape_TopMove[idx];\n m += idx & 15;\n idx >>= 4;\n if (ShapePrun[idx] == -1) {\n ++done;\n ShapePrun[idx] = depth + 1;\n }\n } while (m != 12);\n m = 0;\n idx = i;\n do {\n idx = Shape_BottomMove[idx];\n m += idx & 15;\n idx >>= 4;\n if (ShapePrun[idx] == -1) {\n ++done;\n ShapePrun[idx] = depth + 1;\n }\n } while (m != 12);\n idx = Shape_TwistMove[i];\n if (ShapePrun[idx] == -1) {\n ++done;\n ShapePrun[idx] = depth + 1;\n }\n }\n }\n }\n}\n\nfunction Shape() {}\n\n_ = Shape_Shape.prototype = Shape.prototype;\n_.bottom = 0;\n_.Shape_parity = 0;\n_.top = 0;\nvar Shape_BottomMove,\n Shape_ShapeIdx,\n ShapePrun,\n Shape_TopMove,\n Shape_TwistMove,\n Shape_halflayer;\nlet Square_$clinit_ran = false;\nfunction Square_$clinit() {\n if (Square_$clinit_ran) {\n return;\n }\n Square_$clinit_ran = true;\n SquarePrun = [];\n Square_TwistMove = [];\n Square_TopMove = [];\n Square_BottomMove = [];\n fact = [1, 1, 2, 6, 24, 120, 720, 5040];\n Cnk = [];\n for (var i = 0; i < 12; ++i) Cnk[i] = [];\n Square_init();\n}\n\nfunction Square_Square() {}\n\nfunction get8Perm(arr) {\n var i, idx, v, val;\n idx = 0;\n val = 1985229328;\n for (i = 0; i < 7; ++i) {\n v = arr[i] << 2;\n idx = (8 - i) * idx + ((~~val >> v) & 7);\n val -= 286331152 << v;\n }\n return idx & 65535;\n}\n\nfunction Square_init() {\n var check, depth, done, find, i, idx, idxx, inv, j, m, ml, pos, temp;\n for (i = 0; i < 12; ++i) {\n Cnk[i][0] = 1;\n Cnk[i][i] = 1;\n for (j = 1; j < i; ++j) {\n Cnk[i][j] = Cnk[i - 1][j - 1] + Cnk[i - 1][j];\n }\n }\n pos = [];\n for (i = 0; i < 40320; ++i) {\n set8Perm(pos, i);\n temp = pos[2];\n pos[2] = pos[4];\n pos[4] = temp;\n temp = pos[3];\n pos[3] = pos[5];\n pos[5] = temp;\n Square_TwistMove[i] = get8Perm(pos);\n set8Perm(pos, i);\n temp = pos[0];\n pos[0] = pos[1];\n pos[1] = pos[2];\n pos[2] = pos[3];\n pos[3] = temp;\n Square_TopMove[i] = get8Perm(pos);\n set8Perm(pos, i);\n temp = pos[4];\n pos[4] = pos[5];\n pos[5] = pos[6];\n pos[6] = pos[7];\n pos[7] = temp;\n Square_BottomMove[i] = get8Perm(pos);\n }\n for (i = 0; i < 80640; ++i) {\n SquarePrun[i] = -1;\n }\n SquarePrun[0] = 0;\n depth = 0;\n done = 1;\n while (done < 80640) {\n // console.log(done);\n inv = depth >= 11;\n find = inv ? -1 : depth;\n check = inv ? depth : -1;\n ++depth;\n OUT: for (i = 0; i < 80640; ++i) {\n if (SquarePrun[i] == find) {\n idx = ~~i >> 1;\n ml = i & 1;\n idxx = (Square_TwistMove[idx] << 1) | (1 - ml);\n if (SquarePrun[idxx] == check) {\n ++done;\n SquarePrun[inv ? i : idxx] = ~~(depth << 24) >> 24;\n if (inv) continue OUT;\n }\n idxx = idx;\n for (m = 0; m < 4; ++m) {\n idxx = Square_TopMove[idxx];\n if (SquarePrun[(idxx << 1) | ml] == check) {\n ++done;\n SquarePrun[inv ? i : (idxx << 1) | ml] = ~~(depth << 24) >> 24;\n if (inv) continue OUT;\n }\n }\n for (m = 0; m < 4; ++m) {\n idxx = Square_BottomMove[idxx];\n if (SquarePrun[(idxx << 1) | ml] == check) {\n ++done;\n SquarePrun[inv ? i : (idxx << 1) | ml] = ~~(depth << 24) >> 24;\n if (inv) continue OUT;\n }\n }\n }\n }\n }\n}\n\nfunction set8Perm(arr, idx) {\n var i, m, p, v, val;\n val = 1985229328;\n for (i = 0; i < 7; ++i) {\n p = fact[7 - i];\n v = ~~(idx / p);\n idx -= v * p;\n v <<= 2;\n arr[i] = ~~(((~~val >> v) & 7) << 24) >> 24;\n m = (1 << v) - 1;\n val = (val & m) + ((~~val >> 4) & ~m);\n }\n arr[7] = ~~(val << 24) >> 24;\n}\n\nfunction Square() {}\n\n_ = Square_Square.prototype = Square.prototype;\n_.botEdgeFirst = false;\n_.cornperm = 0;\n_.edgeperm = 0;\n_.ml = 0;\n_.topEdgeFirst = false;\nvar Square_BottomMove, Cnk, SquarePrun, Square_TopMove, Square_TwistMove, fact;\n\nfunction bitCount(x) {\n x -= (~~x >> 1) & 1431655765;\n x = ((~~x >> 2) & 858993459) + (x & 858993459);\n x = ((~~x >> 4) + x) & 252645135;\n x += ~~x >> 8;\n x += ~~x >> 16;\n return x & 63;\n}\n\nfunction binarySearch(sortedArray, key) {\n var high, low, mid, midVal;\n low = 0;\n high = sortedArray.length - 1;\n while (low <= high) {\n mid = low + (~~(high - low) >> 1);\n midVal = sortedArray[mid];\n if (midVal < key) {\n low = mid + 1;\n } else if (midVal > key) {\n high = mid - 1;\n } else {\n return mid;\n }\n }\n return -low - 1;\n}\n\n/*\n * Some helper functions.\n */\n\nvar square1Solver_initialized = false;\n\nvar square1SolverInitialize = function (doneCallback, _, statusCallback) {\n if (!square1Solver_initialized) {\n Shape_$clinit();\n Square_$clinit();\n }\n\n if (statusCallback) {\n statusCallback(\"Done initializing Square-1.\");\n }\n\n square1Solver_initialized = true;\n if (doneCallback != null) {\n doneCallback();\n }\n};\n\nvar square1SolverGetRandomPosition = async function () {\n if (!square1Solver_initialized) {\n square1SolverInitialize();\n }\n return FullCube_randomCube();\n};\n\nvar square1SolverGenerate = function (state) {\n var search_search = new Search_Search(); // Can this be factored out?\n return Search_solution(search_search, state);\n};\n\nvar square1SolverGetRandomScramble = async function () {\n var randomState = await square1SolverGetRandomPosition();\n var scrambleString = square1SolverGenerate(randomState);\n\n return {\n state: randomState,\n scramble_string: scrambleString,\n };\n};\n\nexport async function getRandomSquare1ScrambleString() {\n return (await square1SolverGetRandomScramble()).scramble_string;\n}\n"],
5
5
  "mappings": "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",
6
6
  "names": []
@@ -10,7 +10,7 @@ import {
10
10
  TwistyPropDerived,
11
11
  TwistyPropSource,
12
12
  proxy3D
13
- } from "../chunk-OOIEAACO.js";
13
+ } from "../chunk-OH2FLVZM.js";
14
14
  import {
15
15
  countAnimatedLeaves,
16
16
  countMoves
@@ -20,7 +20,7 @@ import {
20
20
  cubeAppearance,
21
21
  customPGPuzzleLoader,
22
22
  puzzles
23
- } from "../chunk-MVJPIWT7.js";
23
+ } from "../chunk-LMZIKLXW.js";
24
24
  import "../chunk-Y32HHZUY.js";
25
25
  import {
26
26
  Alg,
@@ -518,12 +518,12 @@ var colorMaps = {
518
518
  "yellow": "#888800"
519
519
  },
520
520
  oriented: {
521
- "white": "#ff88ff",
522
- "orange": "#ff88ff",
523
- "limegreen": "#ff88ff",
524
- "red": "#ff88ff",
525
- "rgb(34, 102, 255)": "#ff88ff",
526
- "yellow": "#ff88ff"
521
+ "white": "#44ddcc",
522
+ "orange": "#44ddcc",
523
+ "limegreen": "#44ddcc",
524
+ "red": "#44ddcc",
525
+ "rgb(34, 102, 255)": "#44ddcc",
526
+ "yellow": "#44ddcc"
527
527
  },
528
528
  ignored: {
529
529
  "white": "#444444",
@@ -1175,9 +1175,7 @@ var DragTracker = class extends EventTarget {
1175
1175
  __privateAdd(this, _lazyListenersRegistered, false);
1176
1176
  target.addEventListener("pointerdown", this.onPointerDown.bind(this));
1177
1177
  this.target.addEventListener("contextmenu", (e) => {
1178
- if (e.buttons & 2) {
1179
- e.preventDefault();
1180
- }
1178
+ e.preventDefault();
1181
1179
  });
1182
1180
  this.target.addEventListener("touchmove", (e) => e.preventDefault());
1183
1181
  this.target.addEventListener("dblclick", (e) => e.preventDefault());
@@ -2656,6 +2654,7 @@ var VisualizationStrategyProp = class extends TwistyPropDerived {
2656
2654
  switch (inputs.puzzleID) {
2657
2655
  case "clock":
2658
2656
  case "square1":
2657
+ case "kilominx":
2659
2658
  return "2D";
2660
2659
  case "3x3x3":
2661
2660
  switch (inputs.visualizationRequest) {
@@ -3745,6 +3744,13 @@ var SetupTransformationProp = class extends SimpleTwistyPropSource {
3745
3744
  }
3746
3745
  };
3747
3746
 
3747
+ // src/cubing/twisty/model/props/general/ArbitraryStringProp.ts
3748
+ var ArbitraryStringProp = class extends SimpleTwistyPropSource {
3749
+ getDefaultValue() {
3750
+ return null;
3751
+ }
3752
+ };
3753
+
3748
3754
  // src/cubing/twisty/model/TwistyPlayerModel.ts
3749
3755
  var TwistyPlayerModel = class {
3750
3756
  constructor() {
@@ -3773,6 +3779,9 @@ var TwistyPlayerModel = class {
3773
3779
  this.timestampRequest = new TimestampRequestProp();
3774
3780
  this.viewerLink = new ViewerLinkProp();
3775
3781
  this.visualizationFormat = new VisualizationFormatProp();
3782
+ this.title = new ArbitraryStringProp();
3783
+ this.videoURL = new URLProp();
3784
+ this.competitionID = new ArbitraryStringProp();
3776
3785
  this.foundationStickerSprite = new SpriteProp({
3777
3786
  spriteURL: this.foundationStickerSpriteURL
3778
3787
  });
@@ -4003,6 +4012,24 @@ var TwistyPlayerSettable = class extends ManagedCustomElement {
4003
4012
  get visualization() {
4004
4013
  throw err("visualization");
4005
4014
  }
4015
+ set experimentalTitle(title) {
4016
+ this.experimentalModel.title.set(title);
4017
+ }
4018
+ get experimentalTitle() {
4019
+ throw err("experimentalTitle");
4020
+ }
4021
+ set experimentalVideoURL(videoURL) {
4022
+ this.experimentalModel.videoURL.set(videoURL);
4023
+ }
4024
+ get experimentalVideoURL() {
4025
+ throw err("experimentalVideoURL");
4026
+ }
4027
+ set experimentalCompetitionID(competitionID) {
4028
+ this.experimentalModel.competitionID.set(competitionID);
4029
+ }
4030
+ get experimentalCompetitionID() {
4031
+ throw err("experimentalCompetitionID");
4032
+ }
4006
4033
  set viewerLink(viewerLinkPage) {
4007
4034
  this.experimentalModel.viewerLink.set(viewerLinkPage);
4008
4035
  }
@@ -4097,6 +4124,9 @@ var twistyPlayerAttributeMap = {
4097
4124
  "back-view": "backView",
4098
4125
  "viewer-link": "viewerLink",
4099
4126
  "experimental-move-press-input": "experimentalMovePressInput",
4127
+ "experimental-title": "experimentalTitle",
4128
+ "experimental-video-url": "experimentalVideoURL",
4129
+ "experimental-competition-id": "experimentalCompetitionID",
4100
4130
  "camera-latitude": "cameraLatitude",
4101
4131
  "camera-longitude": "cameraLongitude",
4102
4132
  "camera-distance": "cameraDistance",
@@ -5091,6 +5121,12 @@ var twizzleLinkCSS = new CSSSource(`
5091
5121
  padding: 0.25em 0.5em;
5092
5122
  }
5093
5123
 
5124
+ .heading.title {
5125
+ background: rgb(255, 245, 235);
5126
+ font-size: 150%;
5127
+ white-space: pre;
5128
+ }
5129
+
5094
5130
  twisty-player {
5095
5131
  width: 100%;
5096
5132
  resize: vertical;
@@ -5160,7 +5196,10 @@ function getConfigFromURL(prefix = "", url = location.href) {
5160
5196
  "setup-anchor": "experimental-setup-anchor",
5161
5197
  "puzzle": "puzzle",
5162
5198
  "stickering": "experimental-stickering",
5163
- "puzzle-description": "experimental-puzzle-description"
5199
+ "puzzle-description": "experimental-puzzle-description",
5200
+ "title": "experimental-title",
5201
+ "video-url": "experimental-video-url",
5202
+ "competition": "experimental-competition-id"
5164
5203
  };
5165
5204
  const params = new URL(url).searchParams;
5166
5205
  const config = {};
@@ -5219,6 +5258,9 @@ var TwizzleLink = class extends ManagedCustomElement {
5219
5258
  ...config,
5220
5259
  viewerLink: isExplorer ? "experimental-twizzle-explorer" : "auto"
5221
5260
  }));
5261
+ if (config.experimentalTitle) {
5262
+ this.addHeading(config.experimentalTitle).classList.add("title");
5263
+ }
5222
5264
  if (config.experimentalSetupAlg) {
5223
5265
  this.addHeading("Setup");
5224
5266
  const setupAlgDiv = this.addElement(document.createElement("div"));
@@ -5236,6 +5278,7 @@ var TwizzleLink = class extends ManagedCustomElement {
5236
5278
  const headingDiv = this.addElement(document.createElement("div"));
5237
5279
  headingDiv.classList.add("heading");
5238
5280
  headingDiv.textContent = text;
5281
+ return headingDiv;
5239
5282
  }
5240
5283
  };
5241
5284
  _cssElem = new WeakMap();