cubing 0.26.4 → 0.26.7

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 (74) hide show
  1. package/dist/esm/alg/index.js +1 -1
  2. package/dist/esm/bluetooth/index.js +11 -7
  3. package/dist/esm/bluetooth/index.js.map +2 -2
  4. package/dist/esm/{chunk-IW4IMXS5.js → chunk-ASOUBXFO.js} +27 -316
  5. package/dist/esm/chunk-ASOUBXFO.js.map +7 -0
  6. package/dist/esm/{chunk-ZNQAOJ4A.js → chunk-FCB447RN.js} +1 -2
  7. package/dist/esm/{chunk-ZNQAOJ4A.js.map → chunk-FCB447RN.js.map} +2 -2
  8. package/dist/esm/{chunk-TKUB3UH6.js → chunk-GLII3KIK.js} +8 -2
  9. package/dist/esm/chunk-GLII3KIK.js.map +7 -0
  10. package/dist/esm/{chunk-XENF236F.js → chunk-ITRA3DUQ.js} +2 -2
  11. package/dist/esm/{chunk-XENF236F.js.map → chunk-ITRA3DUQ.js.map} +0 -0
  12. package/dist/esm/chunk-J4SZZ5OP.js +240 -0
  13. package/dist/esm/chunk-J4SZZ5OP.js.map +7 -0
  14. package/dist/esm/{chunk-NGC5FA64.js → chunk-KSNW26OV.js} +18 -6
  15. package/dist/esm/chunk-KSNW26OV.js.map +7 -0
  16. package/dist/esm/{chunk-2Z7I5AC3.js → chunk-KT3AIQTR.js} +4 -4
  17. package/dist/esm/{chunk-2Z7I5AC3.js.map → chunk-KT3AIQTR.js.map} +1 -1
  18. package/dist/esm/{chunk-YRXW6WCD.js → chunk-LKISJU2L.js} +2 -57
  19. package/dist/esm/{chunk-YRXW6WCD.js.map → chunk-LKISJU2L.js.map} +3 -3
  20. package/dist/esm/{chunk-LETRSCIC.js → chunk-P637ZWHR.js} +4 -4
  21. package/dist/esm/{chunk-LETRSCIC.js.map → chunk-P637ZWHR.js.map} +0 -0
  22. package/dist/esm/{chunk-2KNZ3W2X.js → chunk-QK4WH7WZ.js} +7 -627
  23. package/dist/esm/chunk-QK4WH7WZ.js.map +7 -0
  24. package/dist/esm/chunk-YEXEZWAK.js +684 -0
  25. package/dist/esm/chunk-YEXEZWAK.js.map +7 -0
  26. package/dist/esm/kpuzzle/index.js +4 -6
  27. package/dist/esm/notation/index.js +4 -2
  28. package/dist/esm/protocol/index.js +4 -4
  29. package/dist/esm/puzzle-geometry/index.js +2 -2
  30. package/dist/esm/puzzles/index.js +4 -12
  31. package/dist/esm/scramble/index.js +2 -2
  32. package/dist/esm/search/index.js +6 -5
  33. package/dist/esm/{search-dynamic-sgs-side-events-DWRW3XUN.js → search-dynamic-sgs-side-events-OUCE5RN6.js} +7 -6
  34. package/dist/esm/{search-dynamic-sgs-side-events-DWRW3XUN.js.map → search-dynamic-sgs-side-events-OUCE5RN6.js.map} +1 -1
  35. package/dist/esm/{search-dynamic-sgs-unofficial-GM6G44QE.js → search-dynamic-sgs-unofficial-KS2IT3DM.js} +6 -5
  36. package/dist/esm/{search-dynamic-sgs-unofficial-GM6G44QE.js.map → search-dynamic-sgs-unofficial-KS2IT3DM.js.map} +1 -1
  37. package/dist/esm/{search-dynamic-solve-4x4x4-GH5TQ72U.js → search-dynamic-solve-4x4x4-6IIZNXXP.js} +6 -5
  38. package/dist/esm/{search-dynamic-solve-4x4x4-GH5TQ72U.js.map → search-dynamic-solve-4x4x4-6IIZNXXP.js.map} +1 -1
  39. package/dist/esm/{search-dynamic-solve-kilominx-7Y4UNPAG.js → search-dynamic-solve-kilominx-UEFJENHO.js} +2 -2
  40. package/dist/esm/{search-dynamic-solve-kilominx-7Y4UNPAG.js.map → search-dynamic-solve-kilominx-UEFJENHO.js.map} +0 -0
  41. package/dist/esm/{search-worker-inside-generated-string-F45TUE2M.js → search-worker-inside-generated-string-GNBQVERX.js} +27 -27
  42. package/dist/esm/search-worker-inside-generated-string-GNBQVERX.js.map +7 -0
  43. package/dist/esm/{search-worker-js-entry-HKWTUNTT.js → search-worker-js-entry-4A3O552B.js} +12 -11
  44. package/dist/esm/{search-worker-js-entry-HKWTUNTT.js.map → search-worker-js-entry-4A3O552B.js.map} +1 -1
  45. package/dist/esm/{search-worker-ts-entry-BQGURH6Z.js → search-worker-ts-entry-NUFPSU6U.js} +2 -2
  46. package/dist/esm/{search-worker-ts-entry-BQGURH6Z.js.map → search-worker-ts-entry-NUFPSU6U.js.map} +0 -0
  47. package/dist/esm/stream/index.js +1 -1
  48. package/dist/esm/twisty/index.js +104 -49
  49. package/dist/esm/twisty/index.js.map +3 -3
  50. package/dist/esm/{twisty-dynamic-3d-D5A3LR3B.js → twisty-dynamic-3d-YI5E4NWB.js} +9 -7
  51. package/dist/esm/twisty-dynamic-3d-YI5E4NWB.js.map +7 -0
  52. package/dist/types/{KPuzzleDefinition-a1b2c545.d.ts → KState-836cc3c7.d.ts} +91 -21
  53. package/dist/types/{PuzzleLoader-77346930.d.ts → TwizzleLink-4f0a162d.d.ts} +190 -134
  54. package/dist/types/alg/index.d.ts +1 -1
  55. package/dist/types/bluetooth/index.d.ts +3 -4
  56. package/dist/types/{bluetooth-puzzle-0d818529.d.ts → bluetooth-puzzle-b1d62cb5.d.ts} +1 -1
  57. package/dist/types/kpuzzle/index.d.ts +1 -7
  58. package/dist/types/notation/index.d.ts +2 -1
  59. package/dist/types/{outside-9857fc7e.d.ts → outside-a6c8f46b.d.ts} +2 -1
  60. package/dist/types/protocol/index.d.ts +2 -5
  61. package/dist/types/puzzle-geometry/index.d.ts +2 -2
  62. package/dist/types/puzzles/index.d.ts +5 -15
  63. package/dist/types/scramble/index.d.ts +2 -3
  64. package/dist/types/search/index.d.ts +2 -3
  65. package/dist/types/stream/index.d.ts +2 -3
  66. package/dist/types/twisty/index.d.ts +7 -10
  67. package/package.json +1 -1
  68. package/dist/esm/chunk-2KNZ3W2X.js.map +0 -7
  69. package/dist/esm/chunk-IW4IMXS5.js.map +0 -7
  70. package/dist/esm/chunk-NGC5FA64.js.map +0 -7
  71. package/dist/esm/chunk-TKUB3UH6.js.map +0 -7
  72. package/dist/esm/search-worker-inside-generated-string-F45TUE2M.js.map +0 -7
  73. package/dist/esm/twisty-dynamic-3d-D5A3LR3B.js.map +0 -7
  74. package/dist/types/KState-0ba4140d.d.ts +0 -70
@@ -0,0 +1,684 @@
1
+ import {
2
+ KPuzzle,
3
+ KState
4
+ } from "./chunk-QK4WH7WZ.js";
5
+ import {
6
+ Alg
7
+ } from "./chunk-FCB447RN.js";
8
+
9
+ // src/cubing/puzzles/stickerings/appearance.ts
10
+ function getFaceletAppearance(appearance, orbitName, pieceIdx, faceletIdx, hint) {
11
+ const orbitAppearance = appearance.orbits[orbitName];
12
+ const pieceAppearance = orbitAppearance.pieces[pieceIdx];
13
+ if (pieceAppearance === null) {
14
+ return regular;
15
+ }
16
+ const faceletAppearance = pieceAppearance.facelets[faceletIdx];
17
+ if (faceletAppearance === null) {
18
+ return regular;
19
+ }
20
+ if (typeof faceletAppearance === "string") {
21
+ return faceletAppearance;
22
+ }
23
+ if (hint) {
24
+ return faceletAppearance.hintAppearance ?? faceletAppearance.appearance;
25
+ }
26
+ return faceletAppearance.appearance;
27
+ }
28
+ var PieceAnnotation = class {
29
+ constructor(kpuzzle, defaultValue) {
30
+ this.stickerings = /* @__PURE__ */ new Map();
31
+ for (const [orbitName, orbitDef] of Object.entries(kpuzzle.definition.orbits)) {
32
+ this.stickerings.set(orbitName, new Array(orbitDef.numPieces).fill(defaultValue));
33
+ }
34
+ }
35
+ };
36
+ var regular = "regular";
37
+ var ignored = "ignored";
38
+ var oriented = "oriented";
39
+ var invisible = "invisible";
40
+ var dim = "dim";
41
+ var r = {
42
+ facelets: [regular, regular, regular, regular, regular]
43
+ };
44
+ var i = {
45
+ facelets: [ignored, ignored, ignored, ignored, ignored]
46
+ };
47
+ var o = {
48
+ facelets: [oriented, oriented, oriented, oriented, oriented]
49
+ };
50
+ var invisiblePiece = {
51
+ facelets: [invisible, invisible, invisible, invisible]
52
+ };
53
+ var riiii = {
54
+ facelets: [regular, ignored, ignored, ignored, ignored]
55
+ };
56
+ var drrrr = {
57
+ facelets: [dim, regular, regular, regular, regular]
58
+ };
59
+ var d = {
60
+ facelets: [dim, dim, dim, dim, dim]
61
+ };
62
+ var diiii = {
63
+ facelets: [dim, ignored, ignored, ignored, ignored]
64
+ };
65
+ var oiiii = {
66
+ facelets: [oriented, ignored, ignored, ignored, ignored]
67
+ };
68
+ function getPieceAppearance(pieceStickering) {
69
+ switch (pieceStickering) {
70
+ case "Regular" /* Regular */:
71
+ return r;
72
+ case "Dim" /* Dim */:
73
+ return d;
74
+ case "Ignored" /* Ignored */:
75
+ return i;
76
+ case "OrientationStickers" /* OrientationStickers */:
77
+ return o;
78
+ case "Invisible" /* Invisible */:
79
+ return invisiblePiece;
80
+ case "IgnoreNonPrimary" /* IgnoreNonPrimary */:
81
+ return riiii;
82
+ case "PermuteNonPrimary" /* PermuteNonPrimary */:
83
+ return drrrr;
84
+ case "Ignoriented" /* Ignoriented */:
85
+ return diiii;
86
+ case "OrientationWithoutPermutation" /* OrientationWithoutPermutation */:
87
+ return oiiii;
88
+ }
89
+ }
90
+ var PuzzleStickering = class extends PieceAnnotation {
91
+ constructor(kpuzzle) {
92
+ super(kpuzzle, "Regular" /* Regular */);
93
+ }
94
+ set(pieceSet, pieceStickering) {
95
+ for (const [orbitName, pieces] of this.stickerings.entries()) {
96
+ for (let i2 = 0; i2 < pieces.length; i2++) {
97
+ if (pieceSet.stickerings.get(orbitName)[i2]) {
98
+ pieces[i2] = pieceStickering;
99
+ }
100
+ }
101
+ }
102
+ return this;
103
+ }
104
+ toAppearance() {
105
+ const appearance = { orbits: {} };
106
+ for (const [orbitName, pieceStickerings] of this.stickerings.entries()) {
107
+ const pieces = [];
108
+ const orbitAppearance = {
109
+ pieces
110
+ };
111
+ appearance.orbits[orbitName] = orbitAppearance;
112
+ for (const pieceStickering of pieceStickerings) {
113
+ pieces.push(getPieceAppearance(pieceStickering));
114
+ }
115
+ }
116
+ return appearance;
117
+ }
118
+ };
119
+ var StickeringManager = class {
120
+ constructor(kpuzzle) {
121
+ this.kpuzzle = kpuzzle;
122
+ }
123
+ and(pieceSets) {
124
+ const newPieceSet = new PieceAnnotation(this.kpuzzle, false);
125
+ for (const [orbitName, orbitDef] of Object.entries(this.kpuzzle.definition.orbits)) {
126
+ pieceLoop:
127
+ for (let i2 = 0; i2 < orbitDef.numPieces; i2++) {
128
+ newPieceSet.stickerings.get(orbitName)[i2] = true;
129
+ for (const pieceSet of pieceSets) {
130
+ if (!pieceSet.stickerings.get(orbitName)[i2]) {
131
+ newPieceSet.stickerings.get(orbitName)[i2] = false;
132
+ continue pieceLoop;
133
+ }
134
+ }
135
+ }
136
+ }
137
+ return newPieceSet;
138
+ }
139
+ or(pieceSets) {
140
+ const newPieceSet = new PieceAnnotation(this.kpuzzle, false);
141
+ for (const [orbitName, orbitDef] of Object.entries(this.kpuzzle.definition.orbits)) {
142
+ pieceLoop:
143
+ for (let i2 = 0; i2 < orbitDef.numPieces; i2++) {
144
+ newPieceSet.stickerings.get(orbitName)[i2] = false;
145
+ for (const pieceSet of pieceSets) {
146
+ if (pieceSet.stickerings.get(orbitName)[i2]) {
147
+ newPieceSet.stickerings.get(orbitName)[i2] = true;
148
+ continue pieceLoop;
149
+ }
150
+ }
151
+ }
152
+ }
153
+ return newPieceSet;
154
+ }
155
+ not(pieceSet) {
156
+ const newPieceSet = new PieceAnnotation(this.kpuzzle, false);
157
+ for (const [orbitName, orbitDef] of Object.entries(this.kpuzzle.definition.orbits)) {
158
+ for (let i2 = 0; i2 < orbitDef.numPieces; i2++) {
159
+ newPieceSet.stickerings.get(orbitName)[i2] = !pieceSet.stickerings.get(orbitName)[i2];
160
+ }
161
+ }
162
+ return newPieceSet;
163
+ }
164
+ all() {
165
+ return this.and(this.moves([]));
166
+ }
167
+ move(moveSource) {
168
+ const transformation = this.kpuzzle.moveToTransformation(moveSource);
169
+ const newPieceSet = new PieceAnnotation(this.kpuzzle, false);
170
+ for (const [orbitName, orbitDef] of Object.entries(this.kpuzzle.definition.orbits)) {
171
+ for (let i2 = 0; i2 < orbitDef.numPieces; i2++) {
172
+ if (transformation.transformationData[orbitName].permutation[i2] !== i2 || transformation.transformationData[orbitName].orientation[i2] !== 0) {
173
+ newPieceSet.stickerings.get(orbitName)[i2] = true;
174
+ }
175
+ }
176
+ }
177
+ return newPieceSet;
178
+ }
179
+ moves(moveSources) {
180
+ return moveSources.map((moveSource) => this.move(moveSource));
181
+ }
182
+ orbits(orbitNames) {
183
+ const pieceSet = new PieceAnnotation(this.kpuzzle, false);
184
+ for (const orbitName of orbitNames) {
185
+ pieceSet.stickerings.get(orbitName).fill(true);
186
+ }
187
+ return pieceSet;
188
+ }
189
+ };
190
+
191
+ // src/cubing/puzzles/stickerings/puzzle-stickerings.ts
192
+ var experimentalStickerings = {
193
+ "full": { groups: { "3x3x3": "Stickering" } },
194
+ "OLL": { groups: { "3x3x3": "Last Layer" } },
195
+ "PLL": { groups: { "3x3x3": "Last Layer" } },
196
+ "LL": { groups: { "3x3x3": "Last Layer" } },
197
+ "COLL": { groups: { "3x3x3": "Last Layer" } },
198
+ "OCLL": { groups: { "3x3x3": "Last Layer" } },
199
+ "CLL": { groups: { "3x3x3": "Last Layer" } },
200
+ "ELL": { groups: { "3x3x3": "Last Layer" } },
201
+ "ZBLL": { groups: { "3x3x3": "Last Layer" } },
202
+ "LS": { groups: { "3x3x3": "Last Slot" } },
203
+ "ELS": { groups: { "3x3x3": "Last Slot" } },
204
+ "CLS": { groups: { "3x3x3": "Last Slot" } },
205
+ "ZBLS": { groups: { "3x3x3": "Last Slot" } },
206
+ "VLS": { groups: { "3x3x3": "Last Slot" } },
207
+ "WVLS": { groups: { "3x3x3": "Last Slot" } },
208
+ "F2L": { groups: { "3x3x3": "CFOP (Fridrich)" } },
209
+ "Daisy": { groups: { "3x3x3": "CFOP (Fridrich)" } },
210
+ "Cross": { groups: { "3x3x3": "CFOP (Fridrich)" } },
211
+ "EO": { groups: { "3x3x3": "ZZ" } },
212
+ "EOline": { groups: { "3x3x3": "ZZ" } },
213
+ "EOcross": { groups: { "3x3x3": "ZZ" } },
214
+ "CMLL": { groups: { "3x3x3": "Roux" } },
215
+ "L10P": { groups: { "3x3x3": "Roux" } },
216
+ "L6E": { groups: { "3x3x3": "Roux" } },
217
+ "L6EO": { groups: { "3x3x3": "Roux" } },
218
+ "2x2x2": { groups: { "3x3x3": "Petrus" } },
219
+ "2x2x3": { groups: { "3x3x3": "Petrus" } },
220
+ "Void Cube": { groups: { "3x3x3": "Miscellaneous" } },
221
+ "invisible": { groups: { "3x3x3": "Miscellaneous" } },
222
+ "picture": { groups: { "3x3x3": "Miscellaneous" } },
223
+ "centers-only": { groups: { "3x3x3": "Miscellaneous" } },
224
+ "experimental-centers-U": {},
225
+ "experimental-centers-U-D": {},
226
+ "experimental-centers-U-L-D": {},
227
+ "experimental-centers-U-L-B-D": {},
228
+ "experimental-centers": {},
229
+ "experimental-fto-fc": { groups: { fto: "Bencisco" } },
230
+ "experimental-fto-f2t": { groups: { fto: "Bencisco" } },
231
+ "experimental-fto-sc": { groups: { fto: "Bencisco" } },
232
+ "experimental-fto-l2c": { groups: { fto: "Bencisco" } },
233
+ "experimental-fto-lbt": { groups: { fto: "Bencisco" } },
234
+ "experimental-fto-l3t": { groups: { fto: "Bencisco" } }
235
+ };
236
+
237
+ // src/cubing/puzzles/implementations/dynamic/3x3x3/3x3x3.kpuzzle.json.ts
238
+ var cube3x3x3KPuzzleDefinition = {
239
+ name: "3x3x3",
240
+ orbits: {
241
+ EDGES: { numPieces: 12, numOrientations: 2 },
242
+ CORNERS: { numPieces: 8, numOrientations: 3 },
243
+ CENTERS: { numPieces: 6, numOrientations: 4 }
244
+ },
245
+ startStateData: {
246
+ EDGES: {
247
+ pieces: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
248
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
249
+ },
250
+ CORNERS: {
251
+ pieces: [0, 1, 2, 3, 4, 5, 6, 7],
252
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0]
253
+ },
254
+ CENTERS: {
255
+ pieces: [0, 1, 2, 3, 4, 5],
256
+ orientation: [0, 0, 0, 0, 0, 0]
257
+ }
258
+ },
259
+ moves: {
260
+ U: {
261
+ EDGES: {
262
+ permutation: [1, 2, 3, 0, 4, 5, 6, 7, 8, 9, 10, 11],
263
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
264
+ },
265
+ CORNERS: {
266
+ permutation: [1, 2, 3, 0, 4, 5, 6, 7],
267
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0]
268
+ },
269
+ CENTERS: {
270
+ permutation: [0, 1, 2, 3, 4, 5],
271
+ orientation: [1, 0, 0, 0, 0, 0]
272
+ }
273
+ },
274
+ y: {
275
+ EDGES: {
276
+ permutation: [1, 2, 3, 0, 5, 6, 7, 4, 10, 8, 11, 9],
277
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1]
278
+ },
279
+ CORNERS: {
280
+ permutation: [1, 2, 3, 0, 7, 4, 5, 6],
281
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0]
282
+ },
283
+ CENTERS: {
284
+ permutation: [0, 2, 3, 4, 1, 5],
285
+ orientation: [1, 0, 0, 0, 0, 3]
286
+ }
287
+ },
288
+ x: {
289
+ EDGES: {
290
+ permutation: [4, 8, 0, 9, 6, 10, 2, 11, 5, 7, 1, 3],
291
+ orientation: [1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0]
292
+ },
293
+ CORNERS: {
294
+ permutation: [4, 0, 3, 5, 7, 6, 2, 1],
295
+ orientation: [2, 1, 2, 1, 1, 2, 1, 2]
296
+ },
297
+ CENTERS: {
298
+ permutation: [2, 1, 5, 3, 0, 4],
299
+ orientation: [0, 3, 0, 1, 2, 2]
300
+ }
301
+ },
302
+ L: {
303
+ EDGES: {
304
+ permutation: [0, 1, 2, 11, 4, 5, 6, 9, 8, 3, 10, 7],
305
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
306
+ },
307
+ CORNERS: {
308
+ permutation: [0, 1, 6, 2, 4, 3, 5, 7],
309
+ orientation: [0, 0, 2, 1, 0, 2, 1, 0]
310
+ },
311
+ CENTERS: {
312
+ permutation: [0, 1, 2, 3, 4, 5],
313
+ orientation: [0, 1, 0, 0, 0, 0]
314
+ }
315
+ },
316
+ F: {
317
+ EDGES: {
318
+ permutation: [9, 1, 2, 3, 8, 5, 6, 7, 0, 4, 10, 11],
319
+ orientation: [1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0]
320
+ },
321
+ CORNERS: {
322
+ permutation: [3, 1, 2, 5, 0, 4, 6, 7],
323
+ orientation: [1, 0, 0, 2, 2, 1, 0, 0]
324
+ },
325
+ CENTERS: {
326
+ permutation: [0, 1, 2, 3, 4, 5],
327
+ orientation: [0, 0, 1, 0, 0, 0]
328
+ }
329
+ },
330
+ R: {
331
+ EDGES: {
332
+ permutation: [0, 8, 2, 3, 4, 10, 6, 7, 5, 9, 1, 11],
333
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
334
+ },
335
+ CORNERS: {
336
+ permutation: [4, 0, 2, 3, 7, 5, 6, 1],
337
+ orientation: [2, 1, 0, 0, 1, 0, 0, 2]
338
+ },
339
+ CENTERS: {
340
+ permutation: [0, 1, 2, 3, 4, 5],
341
+ orientation: [0, 0, 0, 1, 0, 0]
342
+ }
343
+ },
344
+ B: {
345
+ EDGES: {
346
+ permutation: [0, 1, 10, 3, 4, 5, 11, 7, 8, 9, 6, 2],
347
+ orientation: [0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 1]
348
+ },
349
+ CORNERS: {
350
+ permutation: [0, 7, 1, 3, 4, 5, 2, 6],
351
+ orientation: [0, 2, 1, 0, 0, 0, 2, 1]
352
+ },
353
+ CENTERS: {
354
+ permutation: [0, 1, 2, 3, 4, 5],
355
+ orientation: [0, 0, 0, 0, 1, 0]
356
+ }
357
+ },
358
+ D: {
359
+ EDGES: {
360
+ permutation: [0, 1, 2, 3, 7, 4, 5, 6, 8, 9, 10, 11],
361
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
362
+ },
363
+ CORNERS: {
364
+ permutation: [0, 1, 2, 3, 5, 6, 7, 4],
365
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0]
366
+ },
367
+ CENTERS: {
368
+ permutation: [0, 1, 2, 3, 4, 5],
369
+ orientation: [0, 0, 0, 0, 0, 1]
370
+ }
371
+ },
372
+ z: {
373
+ EDGES: {
374
+ permutation: [9, 3, 11, 7, 8, 1, 10, 5, 0, 4, 2, 6],
375
+ orientation: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
376
+ },
377
+ CORNERS: {
378
+ permutation: [3, 2, 6, 5, 0, 4, 7, 1],
379
+ orientation: [1, 2, 1, 2, 2, 1, 2, 1]
380
+ },
381
+ CENTERS: {
382
+ permutation: [1, 5, 2, 0, 4, 3],
383
+ orientation: [1, 1, 1, 1, 3, 1]
384
+ }
385
+ },
386
+ M: {
387
+ EDGES: {
388
+ permutation: [2, 1, 6, 3, 0, 5, 4, 7, 8, 9, 10, 11],
389
+ orientation: [1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0]
390
+ },
391
+ CORNERS: {
392
+ permutation: [0, 1, 2, 3, 4, 5, 6, 7],
393
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0]
394
+ },
395
+ CENTERS: {
396
+ permutation: [4, 1, 0, 3, 5, 2],
397
+ orientation: [2, 0, 0, 0, 2, 0]
398
+ }
399
+ },
400
+ E: {
401
+ EDGES: {
402
+ permutation: [0, 1, 2, 3, 4, 5, 6, 7, 9, 11, 8, 10],
403
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1]
404
+ },
405
+ CORNERS: {
406
+ permutation: [0, 1, 2, 3, 4, 5, 6, 7],
407
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0]
408
+ },
409
+ CENTERS: {
410
+ permutation: [0, 4, 1, 2, 3, 5],
411
+ orientation: [0, 0, 0, 0, 0, 0]
412
+ }
413
+ },
414
+ S: {
415
+ EDGES: {
416
+ permutation: [0, 3, 2, 7, 4, 1, 6, 5, 8, 9, 10, 11],
417
+ orientation: [0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0]
418
+ },
419
+ CORNERS: {
420
+ permutation: [0, 1, 2, 3, 4, 5, 6, 7],
421
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0]
422
+ },
423
+ CENTERS: {
424
+ permutation: [1, 5, 2, 0, 4, 3],
425
+ orientation: [1, 1, 0, 1, 0, 1]
426
+ }
427
+ },
428
+ u: {
429
+ EDGES: {
430
+ permutation: [1, 2, 3, 0, 4, 5, 6, 7, 10, 8, 11, 9],
431
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1]
432
+ },
433
+ CORNERS: {
434
+ permutation: [1, 2, 3, 0, 4, 5, 6, 7],
435
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0]
436
+ },
437
+ CENTERS: {
438
+ permutation: [0, 2, 3, 4, 1, 5],
439
+ orientation: [1, 0, 0, 0, 0, 0]
440
+ }
441
+ },
442
+ l: {
443
+ EDGES: {
444
+ permutation: [2, 1, 6, 11, 0, 5, 4, 9, 8, 3, 10, 7],
445
+ orientation: [1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0]
446
+ },
447
+ CORNERS: {
448
+ permutation: [0, 1, 6, 2, 4, 3, 5, 7],
449
+ orientation: [0, 0, 2, 1, 0, 2, 1, 0]
450
+ },
451
+ CENTERS: {
452
+ permutation: [4, 1, 0, 3, 5, 2],
453
+ orientation: [2, 1, 0, 0, 2, 0]
454
+ }
455
+ },
456
+ f: {
457
+ EDGES: {
458
+ permutation: [9, 3, 2, 7, 8, 1, 6, 5, 0, 4, 10, 11],
459
+ orientation: [1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0]
460
+ },
461
+ CORNERS: {
462
+ permutation: [3, 1, 2, 5, 0, 4, 6, 7],
463
+ orientation: [1, 0, 0, 2, 2, 1, 0, 0]
464
+ },
465
+ CENTERS: {
466
+ permutation: [1, 5, 2, 0, 4, 3],
467
+ orientation: [1, 1, 1, 1, 0, 1]
468
+ }
469
+ },
470
+ r: {
471
+ EDGES: {
472
+ permutation: [4, 8, 0, 3, 6, 10, 2, 7, 5, 9, 1, 11],
473
+ orientation: [1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0]
474
+ },
475
+ CORNERS: {
476
+ permutation: [4, 0, 2, 3, 7, 5, 6, 1],
477
+ orientation: [2, 1, 0, 0, 1, 0, 0, 2]
478
+ },
479
+ CENTERS: {
480
+ permutation: [2, 1, 5, 3, 0, 4],
481
+ orientation: [0, 0, 0, 1, 2, 2]
482
+ }
483
+ },
484
+ b: {
485
+ EDGES: {
486
+ permutation: [0, 5, 10, 1, 4, 7, 11, 3, 8, 9, 6, 2],
487
+ orientation: [0, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1]
488
+ },
489
+ CORNERS: {
490
+ permutation: [0, 7, 1, 3, 4, 5, 2, 6],
491
+ orientation: [0, 2, 1, 0, 0, 0, 2, 1]
492
+ },
493
+ CENTERS: {
494
+ permutation: [3, 0, 2, 5, 4, 1],
495
+ orientation: [3, 3, 0, 3, 1, 3]
496
+ }
497
+ },
498
+ d: {
499
+ EDGES: {
500
+ permutation: [0, 1, 2, 3, 7, 4, 5, 6, 9, 11, 8, 10],
501
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1]
502
+ },
503
+ CORNERS: {
504
+ permutation: [0, 1, 2, 3, 5, 6, 7, 4],
505
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0]
506
+ },
507
+ CENTERS: {
508
+ permutation: [0, 4, 1, 2, 3, 5],
509
+ orientation: [0, 0, 0, 0, 0, 1]
510
+ }
511
+ }
512
+ }
513
+ };
514
+ cube3x3x3KPuzzleDefinition.moves["Uw"] = cube3x3x3KPuzzleDefinition.moves["u"];
515
+ cube3x3x3KPuzzleDefinition.moves["Lw"] = cube3x3x3KPuzzleDefinition.moves["l"];
516
+ cube3x3x3KPuzzleDefinition.moves["Fw"] = cube3x3x3KPuzzleDefinition.moves["f"];
517
+ cube3x3x3KPuzzleDefinition.moves["Rw"] = cube3x3x3KPuzzleDefinition.moves["r"];
518
+ cube3x3x3KPuzzleDefinition.moves["Bw"] = cube3x3x3KPuzzleDefinition.moves["b"];
519
+ cube3x3x3KPuzzleDefinition.moves["Dw"] = cube3x3x3KPuzzleDefinition.moves["d"];
520
+ cube3x3x3KPuzzleDefinition.moves["Rv"] = cube3x3x3KPuzzleDefinition.moves["x"];
521
+ cube3x3x3KPuzzleDefinition.moves["Uv"] = cube3x3x3KPuzzleDefinition.moves["y"];
522
+ cube3x3x3KPuzzleDefinition.moves["Fv"] = cube3x3x3KPuzzleDefinition.moves["z"];
523
+ cube3x3x3KPuzzleDefinition.moves["Lv"] = {
524
+ EDGES: {
525
+ permutation: [2, 10, 6, 11, 0, 8, 4, 9, 1, 3, 5, 7],
526
+ orientation: [1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0]
527
+ },
528
+ CORNERS: {
529
+ permutation: [1, 7, 6, 2, 0, 3, 5, 4],
530
+ orientation: [2, 1, 2, 1, 1, 2, 1, 2]
531
+ },
532
+ CENTERS: {
533
+ permutation: [4, 1, 0, 3, 5, 2],
534
+ orientation: [2, 1, 0, 3, 2, 0]
535
+ }
536
+ };
537
+ cube3x3x3KPuzzleDefinition.moves["Dv"] = {
538
+ EDGES: {
539
+ permutation: [3, 0, 1, 2, 7, 4, 5, 6, 9, 11, 8, 10],
540
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1]
541
+ },
542
+ CORNERS: {
543
+ permutation: [3, 0, 1, 2, 5, 6, 7, 4],
544
+ orientation: [0, 0, 0, 0, 0, 0, 0, 0]
545
+ },
546
+ CENTERS: {
547
+ permutation: [0, 4, 1, 2, 3, 5],
548
+ orientation: [3, 0, 0, 0, 0, 1]
549
+ }
550
+ };
551
+ cube3x3x3KPuzzleDefinition.moves["Bv"] = {
552
+ EDGES: {
553
+ permutation: [8, 5, 10, 1, 9, 7, 11, 3, 4, 0, 6, 2],
554
+ orientation: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
555
+ },
556
+ CORNERS: {
557
+ permutation: [4, 7, 1, 0, 5, 3, 2, 6],
558
+ orientation: [1, 2, 1, 2, 2, 1, 2, 1]
559
+ },
560
+ CENTERS: {
561
+ permutation: [3, 0, 2, 5, 4, 1],
562
+ orientation: [3, 3, 3, 3, 1, 3]
563
+ }
564
+ };
565
+
566
+ // src/cubing/puzzles/customPGPuzzleLoader.ts
567
+ async function descAsyncGetPuzzleGeometry(desc) {
568
+ const puzzleGeometry = await import("./puzzle-geometry/index.js");
569
+ return puzzleGeometry.getPuzzleGeometryByDesc(desc, {
570
+ allMoves: true,
571
+ orientCenters: true,
572
+ addRotations: true
573
+ });
574
+ }
575
+ async function asyncGetKPuzzle(desc) {
576
+ const pg = await descAsyncGetPuzzleGeometry(desc);
577
+ const kpuzzleDefinition = pg.getKPuzzleDefinition(true);
578
+ kpuzzleDefinition.name = `description: ${desc}`;
579
+ const puzzleGeometry = await import("./puzzle-geometry/index.js");
580
+ const pgNotation = new puzzleGeometry.ExperimentalPGNotation(pg, pg.getOrbitsDef(true));
581
+ return new KPuzzle(kpuzzleDefinition, {
582
+ experimentalPGNotation: pgNotation
583
+ });
584
+ }
585
+ var nextCustomID = 1;
586
+ function customPGPuzzleLoader(desc, info) {
587
+ const customID = nextCustomID++;
588
+ let cachedKPuzzle = null;
589
+ const puzzleLoader = {
590
+ id: `custom-${customID}`,
591
+ fullName: info?.fullName ?? `Custom Puzzle (instance #${customID})`,
592
+ kpuzzle: async () => {
593
+ return cachedKPuzzle ?? (cachedKPuzzle = asyncGetKPuzzle(desc));
594
+ },
595
+ svg: async () => {
596
+ const pg = await descAsyncGetPuzzleGeometry(desc);
597
+ return pg.generatesvg();
598
+ },
599
+ pg: async () => {
600
+ return descAsyncGetPuzzleGeometry(desc);
601
+ }
602
+ };
603
+ if (info?.inventedBy) {
604
+ puzzleLoader.inventedBy = info.inventedBy;
605
+ }
606
+ if (info?.inventionYear) {
607
+ puzzleLoader.inventionYear = info.inventionYear;
608
+ }
609
+ return puzzleLoader;
610
+ }
611
+
612
+ // src/cubing/puzzles/cubing-private/index.ts
613
+ var experimental3x3x3KPuzzle = new KPuzzle(cube3x3x3KPuzzleDefinition);
614
+ cube3x3x3KPuzzleDefinition.experimentalIsStateSolved = experimentalIs3x3x3Solved;
615
+
616
+ // src/cubing/puzzles/implementations/dynamic/3x3x3/puzzle-orientation.ts
617
+ function puzzleOrientation3x3x3Idx(state) {
618
+ const idxU = state.stateData["CENTERS"].pieces[0];
619
+ const idxD = state.stateData["CENTERS"].pieces[5];
620
+ const unadjustedIdxL = state.stateData["CENTERS"].pieces[1];
621
+ let idxL = unadjustedIdxL;
622
+ if (idxU < unadjustedIdxL) {
623
+ idxL--;
624
+ }
625
+ if (idxD < unadjustedIdxL) {
626
+ idxL--;
627
+ }
628
+ return [idxU, idxL];
629
+ }
630
+ var puzzleOrientationCacheRaw = new Array(6).fill(0).map(() => {
631
+ return new Array(6);
632
+ });
633
+ var puzzleOrientationCacheInitialized = false;
634
+ function puzzleOrientation3x3x3Cache() {
635
+ if (!puzzleOrientationCacheInitialized) {
636
+ {
637
+ const uAlgs = ["", "z", "x", "z'", "x'", "x2"].map((s) => Alg.fromString(s));
638
+ const yAlg = new Alg("y");
639
+ for (const uAlg of uAlgs) {
640
+ let transformation = experimental3x3x3KPuzzle.algToTransformation(uAlg);
641
+ for (let i2 = 0; i2 < 4; i2++) {
642
+ transformation = transformation.applyAlg(yAlg);
643
+ const [idxU, idxL] = puzzleOrientation3x3x3Idx(transformation.toKState());
644
+ puzzleOrientationCacheRaw[idxU][idxL] = transformation.invert();
645
+ }
646
+ }
647
+ }
648
+ }
649
+ return puzzleOrientationCacheRaw;
650
+ }
651
+ function normalize3x3x3Orientation(state) {
652
+ const [idxU, idxL] = puzzleOrientation3x3x3Idx(state);
653
+ const orientationTransformation = puzzleOrientation3x3x3Cache()[idxU][idxL];
654
+ return state.applyTransformation(orientationTransformation);
655
+ }
656
+ function experimentalIs3x3x3Solved(state, options) {
657
+ if (options.ignorePuzzleOrientation) {
658
+ state = normalize3x3x3Orientation(state);
659
+ }
660
+ if (options.ignoreCenterOrientation) {
661
+ state = new KState(state.kpuzzle, {
662
+ EDGES: state.stateData.EDGES,
663
+ CORNERS: state.stateData.CORNERS,
664
+ CENTERS: {
665
+ pieces: state.stateData.CENTERS.pieces,
666
+ orientation: new Array(6).fill(0)
667
+ }
668
+ });
669
+ }
670
+ return !!state.experimentalToTransformation()?.isIdentityTransformation();
671
+ }
672
+
673
+ export {
674
+ getFaceletAppearance,
675
+ PuzzleStickering,
676
+ StickeringManager,
677
+ experimentalStickerings,
678
+ puzzleOrientation3x3x3Idx,
679
+ puzzleOrientation3x3x3Cache,
680
+ normalize3x3x3Orientation,
681
+ customPGPuzzleLoader,
682
+ experimental3x3x3KPuzzle
683
+ };
684
+ //# sourceMappingURL=chunk-YEXEZWAK.js.map